Как я могу получить общее время 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-файла?

Ответы на вопрос(5)

Ваш ответ на вопрос