Как я получаю общее время mp3 файла в Java?

Ответы обеспечили в том, Как я получаю общее время звукового файла в Java? работайте хорошо на wav файлы, но не на mp3 файлы.

Они (учитывая файл):

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long frames = audioInputStream.getFrameLength();
double durationInSeconds = (frames+0.0) / format.getFrameRate();  

и:

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioFormat format = audioInputStream.getFormat();
long audioFileLength = file.length();
int frameSize = format.getFrameSize();
float frameRate = format.getFrameRate();
float durationInSeconds = (audioFileLength / (frameSize * frameRate));

Они дают тот же корректный результат для wav файлов, но неправильные и различные результаты для mp3 файлов.

Какая-либо идея, что я должен сделать для получения продолжительности mp3 файла?

14
задан Community 23 May 2017 в 11:45
поделиться

3 ответа

Использование MP3SPI :

private static void getDurationWithMp3Spi(File file) throws UnsupportedAudioFileException, IOException {

    AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(file);
    if (fileFormat instanceof TAudioFileFormat) {
        Map<?, ?> properties = ((TAudioFileFormat) fileFormat).properties();
        String key = "duration";
        Long microseconds = (Long) properties.get(key);
        int mili = (int) (microseconds / 1000);
        int sec = (mili / 1000) % 60;
        int min = (mili / 1000) / 60;
        System.out.println("time = " + min + ":" + sec);
    } else {
        throw new UnsupportedAudioFileException();
    }

}
14
ответ дан 1 December 2019 в 13:32
поделиться

Вот подробное объяснение структуры файла MP3

http://www.autohotkey.com/forum/topic29420.html

2
ответ дан 1 December 2019 в 13:32
поделиться

Я старомоден в этом, но я всегда просто получаю спецификации для MP3, пишу функцию, которая ищет нужные биты, и выясняю это.

Если Winamp может определить это, читая битовый поток MP3 файла, то и я могу, верно?

И ты можешь, я верю в тебя, приятель!

-2
ответ дан 1 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: