博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#处理Android Audio and Video
阅读量:5062 次
发布时间:2019-06-12

本文共 2270 字,大约阅读时间需要 7 分钟。

Video Converter for .NET (C#) FFMpeg wrapper

 

Document:

 

Nuget:

Install-Package NReco.VideoConverter

 

获取MP3声音长度

方法1: 通过NAudio

Mp3FileReader reader = new Mp3FileReader("filename.mp3");TimeSpan duration = reader.TotalTime;

方法2: 通过Shell32 DLL

public class Mp3Service    {        ///         /// 根据mp3文件的绝对路径和属性名称获得属性值        ///         ///         /// 如:播放时间、文件大小、比特率        /// 
public static string GetFileAttribute(string filePath, string attributeName) { //TagLib.File file = new AudioFile(filePath); string attributeVal = ""; List
fileInfoArr = GetMp3FileDetailInfo(filePath); if (System.Web.HttpContext.Current != null) { System.Web.HttpContext.Current.Trace.Write("AuduioFileInfo", JsonConvert.SerializeObject(fileInfoArr)); } switch (attributeName) { case "播放时间": if (fileInfoArr.Count > 28) attributeVal = fileInfoArr[28]; break; case "文件大小": if (fileInfoArr.Count > 2) attributeVal = fileInfoArr[2]; break; case "比特率": if (fileInfoArr.Count > 29) attributeVal = fileInfoArr[29]; break; } return attributeVal; } ///
/// 获得mp3文件的详细信息 /// ///
///
public static List
GetMp3FileDetailInfo(string strPath) { List
fileInfoArr = new List
(); Shell32.Shell sh = new Shell32.Shell(); Folder dir = sh.NameSpace(Path.GetDirectoryName(strPath)); FolderItem item = dir.ParseName(Path.GetFileName(strPath)); for (int i = -1; i < 50; i++) { // 0检索项的名称。 // 1检索项的大小。 // 2检索条目的类型。 // 3检索项最后修改日期和时间。 // 4检索项的属性。 // -1项检索信息提示信息。 fileInfoArr.Add(dir.GetDetailsOf(item, i)); } return fileInfoArr; } }

转载于:https://www.cnblogs.com/niusys/p/4305529.html

你可能感兴趣的文章
java string(转)
查看>>
__all__有趣的属性
查看>>
写博客
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
ios封装静态库技巧两则
查看>>
Educational Codeforces Round 46 (Rated for Div. 2)
查看>>
Abstract Factory Pattern
查看>>
C# 实现Bresenham算法(vs2010)
查看>>
基于iSCSI的SQL Server 2012群集测试(一)--SQL群集安装
查看>>
list 容器 排序函数.xml
查看>>
存储开头结尾使用begin tran,rollback tran作用?
查看>>
Activity启动过程中获取组件宽高的五种方式
查看>>
java导出Excel表格简单的方法
查看>>
SQLite数据库简介
查看>>
利用堆实现堆排序&amp;优先队列
查看>>
Mono源码学习笔记:Console类(四)
查看>>
Android学习路线(十二)Activity生命周期——启动一个Activity
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>