Video Converter for .NET (C#) FFMpeg wrapper

http://www.nrecosite.com/video_converter_net.aspx

Document: http://www.nrecosite.com/doc/NReco.VideoConverter/

Nuget: https://www.nuget.org/packages/NReco.VideoConverter/

Install-Package NReco.VideoConverter

获取MP3声音长度

http://stackoverflow.com/questions/13722501/easiest-way-to-get-mp3-duration-and-size

方法1: 通过NAudio

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

方法2: 通过Shell32 DLL

public class Mp3Service    {        /// <summary>        /// 根据mp3文件的绝对路径和属性名称获得属性值        /// </summary>        /// <param name="filePath"></param>        /// <param name="attributeName">如:播放时间、文件大小、比特率</param>        /// <returns></returns>        public static string GetFileAttribute(string filePath, string attributeName)        {            //TagLib.File file = new AudioFile(filePath);            string attributeVal = "";            List<string> 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;        }        /// <summary>        /// 获得mp3文件的详细信息        /// </summary>        /// <param name="strPath"></param>        /// <returns></returns>        public static List<string> GetMp3FileDetailInfo(string strPath)        {            List<string> fileInfoArr = new List<string>();            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;        }    }

更多相关文章

  1. 使用Java代码在应用层获取Android系统属性
  2. Android 如何修改APK的默认名称
  3. Android 之listview \gridview 属性设置
  4. Android属性之build.prop生成过程分析!!!!!!!!!!!!!!!

随机推荐

  1. Android(安卓)– 自定义Loading圆点
  2. 【Android病毒分析报告】 - Obad
  3. Android:如何设计一个完全不可见的Activi
  4. Android(安卓)错误案例
  5. Android(安卓)review Android中的测试
  6. Android内容提供者源码
  7. Android(安卓)中WebView 视频自动播放
  8. android获取各路径下的文件流
  9. Android(安卓)通过AudioTrack播放CAF音频
  10. Android:证书生成与应用