请教一下大家  怎么获取MP3文件的时长
下面这个方法是不行的  shell32 这个命名空间引用不了谢谢大家  明天来给分 /C# 获取mp3文件的歌曲时间长度//添加命名空间:
    using Shell32;
    using System.Text.RegularExpressions;
//添加引用:COM组件的Microsoft Shell Controls And Automationstring 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;//获取歌曲时间

解决方案 »

  1.   

    首先感谢你的回答 ,这个方法我也看到过, 但我的程序是需要在CE模拟器中运行的,而在CE中,winmm。dll这个文件找不到,那该怎么办呢
      

  2.   

        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;
      

  3.   

    可以“无满意答案结贴”的,这样就不会使用分。楼主如果不是做winform程序,可以用Dewplayer:下载地址http://www.alsacreations.fr/dl/dewplayer.zip,官方网站:http://www.alsacreations.fr/dewplayer.html
      

  4.   

    哎,还是结贴算了,大家难得来这回答一场,最近公司要我做汽车仪表上面的显示界面软件,这个MP3播放搞的烦死了,到现在还没弄好。CE和window系统不一样,里面很多东西都没有……
      

  5.   


    谢谢你的代码,只要修改引用里面的shell32属性嵌入互操作类型改为false就能用了