2012-03-02 14 views
0

私は長さを得るために解析する必要があるWPF C#でリスト(オーディオブックごと)に20個のmp3チャプターファイルを持っています。MP3ファイルの長さを取得

私は現在、それを処理するために、30秒までかかる

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(); 

非常に非効率的である次のコードの周りにループしています。

パフォーマンスを向上させる方法や、同じ仕事をより迅速に行うことができるネイティブ/サードパーティのユーティリティを認識している人はいらっしゃいますか?

+0

この情報はおそらくファイル形式で保存されます。おそらく、ID3タグを読み取ることができるライブラリを探します。 – eandersson

+0

タイトルの「C#」​​のようなタグを保持してください。代わりに、それらをタグに入れておきます。 –

+0

可能な複製:http://stackoverflow.com/questions/1214040/how-to-get-the-length-of-a-mp3-in-c-sharp – vulkanino

答えて

0

私はID3 tagsMP3ファイルに読み込もうとします。これにより、必要なデータをより迅速に取得できます。

このlibraryには、必要なものがすべて含まれていますが、それがID3 tagにあるかどうか、またはファイルをスキャンする必要があるかどうかです(時間がかかります)。 http://sourceforge.net/projects/csid3lib/

このライブラリも便利です。 http://sourceforge.net/projects/mpg123net/

関連する問題