zoukankan      html  css  js  c++  java
  • C#处理Android Audio and Video

    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;
            }
        }
  • 相关阅读:
    剑指offer——用两个栈实现队列
    根据前序和中序重建二叉树、后序和中序重建二叉树
    归并排序
    排序
    快速排序(java版)
    List
    单链表的基本操作
    集合
    数组
    结构体
  • 原文地址:https://www.cnblogs.com/niusys/p/4305529.html
Copyright © 2011-2022 走看看