Ответы, предоставленные в Как получить общее количество звуковых файлов в 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 файла?