Использование JAudioTagger, чтобы получить длительность трека? - PullRequest
1 голос
/ 22 февраля 2012

Я пытаюсь использовать JAudioTagger в медиаплеере, например, в приложении, чтобы получить метаданные для каждой песни, но я не вижу поля для продолжительности трека.Я уверен, что должен быть один, но я не могу найти его, и пара поисков ничего не нашла.Я смотрю на: http://www.jthink.com/jaudiotagger/tagmapping.html и на документы Java.

У кого-нибудь есть идеи?Спасибо за любую помощь!

Ответы [ 2 ]

7 голосов
/ 11 июля 2012

Как указывалось в предыдущем ответе, длина дорожки не сохраняется в теге, но может быть получена из самого аудио, поэтому она доступна через объект audioheader, а не сам тег, т. Е.

AudioFile audioFile = AudioFileIO.readFile("/somefile.mp3");
System.out.println(audioFile.getAudioHeader().getTrackLength());

Если это mp3, вы все можете получить выходную длину дорожки nicel в формате мм: сс

System.out.println((Mp3AudioHeader)audioFile.getHeader().getTrackLengthAsString());

или

new MP3File("/somefile.mp3").getMP3AudioHeader().getTrackLengthAsString();
2 голосов
/ 22 февраля 2012

Для большинства форматов длина отсутствует в теге.

Многие библиотеки (и медиапроигрыватели), такие как TagLib, оценивают это для вас, вычисляя длину в секундах в несколько сотен килобайт файла (битрейт) и увеличивая их. Иногда это идет не так, как надо, но, что удивительно, все работает нормально.

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