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; } }