日期:2014-05-17  浏览次数:20965 次

获取MP3文件的总时长
请教一下大家  怎么获取MP3文件的时长
下面这个方法是不行的  shell32 这个命名空间引用不了

谢谢大家  明天来给分 

/C# 获取mp3文件的歌曲时间长度

//添加命名空间:
    using Shell32;
    using System.Text.RegularExpressions;
//添加引用:COM组件的Microsoft Shell Controls And Automation

string dirName = Path.GetDirectoryName(SongPath);
SongName = Path.GetFileName(SongPath);//获得歌曲名称
FileInfo fInfo = new FileInfo(SongPath);
ShellClass sh = new ShellClass();
Folder dir = sh.NameSpace(dirName);
FolderItem item = dir.ParseName(SongName);
SongTime = Regex.Match(dir.GetDetailsOf(item, -1), "\\d:\\d{2}:\\d{2}").Value;//获取歌曲时间

------解决方案--------------------
这里有控制mp3播放的基本方法,也包含获取总时长
------解决方案--------------------
    string file = @"E:\滴答.mp3";
            ShellClass sh = new ShellClass();
            Folder dir = sh.NameSpace(Path.GetDirectoryName(file));
            FolderItem item = dir.ParseName(Path.GetFileName(file));
            string str = dir.GetDetailsOf(item, 27) ;
            MessageBox.Show(str);


首先引用COM组件
Microsoft Shell Controls And Automation

代码里
using Shell32;

------解决方案--------------------
引用:
这个贴为毛就这样沉了,还没给出我想要的答案额,让我怎么给分

可以“无满意答案结贴”的,这样就不会使用分。

楼主如果不是做winform程序,可以用Dewplayer:下载地址http://www.alsacreations.fr/dl/dewplayer.zip,官方网站:http://www.alsacreations.fr/dewplayer.html
------解决方案--------------------
歌曲时长=文件大小/位率×8