好的,所以我尝试使用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文件)。

07-24 09:48