好的,所以我尝试使用ID3标签来获取持续时间,还尝试使用JMF media player.getDuration()。
player.getDuration().getSeconds()
该文件是VBR。 JMF内部是否有任何轻量级的库或东西可以用来解决此问题。
谢谢。
最佳答案
我使用JAudioTagger实现此目的。下面的代码将为您提供MP3曲目的持续时间。
int duration = 0;
try {
AudioFile audioFile = AudioFileIO.read(new File("file.mp3"));
duration = audioFile.getAudioHeader().getTrackLength();
} catch (Exception e) {
e.printStackTrace();
}
您也可以将audioFile.getAudioHeader()强制转换为MP3AudioHeader并使用方法getPreciseTrackLength()获得更精确的持续时间。但是,这(我认为)仅适用于MP3文件,不适用于其他格式(例如WAV文件)。