『QQ:1353814576』

C# NAudio获取mp3时长和大小


使用NAudio 获取mp3 时长以及大小

1.引用NAudio 库 (网络下载NAudio.dll项目引用 或者NuGet直接安装引用)

2.代码如下

public class Mp3File  
    {  
        /// <summary>  
        /// Mp3文件地址  
        /// </summary>  
        /// <param name="fileName"></param>  
        public Mp3File(string fileName)  
        {  
            using (Mp3FileReader mp3FileReader = new Mp3FileReader(fileName))  
            {  
                Duration = mp3FileReader.TotalTime;  
                mp3FileReader.Dispose();  
            }  
            FileInfo fileInfo = new FileInfo(fileName);  
            FileSize = this.SizeFormat(fileInfo.Length);  
        }  
  
        /// <summary>  
        /// 时长  
        /// </summary>  
        public TimeSpan Duration  
        {  
            get; private set;  
        }  
  
        /// <summary>  
        /// 大小  
        /// </summary>  
        public string FileSize  
        {  
            get; private set;  
        }  
  
        const int GB = 1024 * 1024 * 1024;  
        const int MB = 1024 * 1024;  
        const int KB = 1024;
        //文件大小单位转换
        string SizeFormat(long len)  
        {  
            if (len / GB >= 1)  
            {  
                return Math.Round(len / (float)GB, 2)+" GB";  
            }  
            if (len / MB >= 1)  
            {  
                return Math.Round(len / (float)MB, 2) + " MB";  
            }  
            if (len / KB >= 1)  
            {  
                return Math.Round(len / (float)KB, 2)+" KB";  
            }  
            return "--";  
        }  
    }

//调用例子

///解析时长  
Mp3File mp3File = new Mp3File("mp3文件地址");
mp3File.FileSize //文件大小
mp3File.Duration //音频时长