【发布时间】:2015-04-26 16:24:42
【问题描述】:
这是一个关于MP3文件格式的问题。
我一直在寻找获得 MP3 持续时间的方法。由于我使用 JLayer SPI 解码 MP3,我发现在音频源是文件的情况下这是可能的。
AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(source);
Long microseconds = (Long) fileFormat.properties().get("duration");
System.out.println(microseconds);
但是,当我使用类似的代码和完全相同的 MP3 并将源更改为 URL 时,JLayer 不提供持续时间:
AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(source.toURI().toURL());
Long microseconds = (Long) fileFormat.properties().get("duration");
System.out.println(microseconds);
这是一个重要的区别,因为我想播放的一些音乐将来自 URL 而不是本地文件。
我怀疑这是由于文件格式的限制。
这引出了一个非常简单的问题。是否可以在整个文件下载之前知道 MP3 的持续时间?
【问题讨论】:
标签: audio mp3 duration file-format jlayer