获取MP3文件长度

时间:2012-03-02 15:55:04

标签: c# wpf performance mp3

我在WPF c#中的列表(每个有声读物)中有20个mp3章节文件,我需要解析它来获取长度。

我目前正在循环使用以下非常低效的代码

MediaElement currentmp3 = new MediaElement();

currentmp3.UnloadedBehavior = MediaState.Manual;
currentmp3.LoadedBehavior = MediaState.Manual;

currentmp3.MediaOpened += new RoutedEventHandler(currentMp3_MediaOpened);
currentmp3.Source = new Uri(filename);
currentmp3.Play();
currentmp3.Pause();

currentmp3.UpdateLayout();
// if i dont add this it doesnt give the time.
Thread.Sleep(1000);

if (currentmp3.NaturalDuration.HasTimeSpan)
    chapter.ChapterLength = currentmp3.NaturalDuration.TimeSpan;

currentmp3.Stop();

处理最多需要30秒。

有关如何提高性能的建议或任何知道可以更快地完成相同工作的本地/第三方工具的人吗?

1 个答案:

答案 0 :(得分:0)

我会尝试阅读ID3 tags文件中的MP3。这应该可以让您更快地获得所需的数据。

library包含您应该需要的所有内容,但问题是它是否在ID3 tag中,或者您是否需要扫描文件(这需要时间)。 http://sourceforge.net/projects/csid3lib/

这个库可能也很有用。 http://sourceforge.net/projects/mpg123net/