Получить длины файлов MP3 - PullRequest
0 голосов
/ 02 марта 2012

У меня есть 20 файлов главы mp3 в списке (на каждую аудиокнигу) в WPF c #, который мне нужно проанализировать, чтобы получить длины.

В настоящее время я зацикливаюсь на следующем коде, который крайне неэффективен

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 голосов
/ 02 марта 2012

Я бы попробовал прочитать ID3 tags в файлах MP3. Это позволит вам быстрее получать нужные данные.

Это library содержит все, что вам нужно, но вопрос в том, находится ли он в ID3 tag или вам нужно отсканировать файл (что занимает много времени). http://sourceforge.net/projects/csid3lib/

Эта библиотека также может быть полезна. http://sourceforge.net/projects/mpg123net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...