Java 在mp3文件中查找
我正在使用java开发mp3播放器,通过读取文件、解码帧和播放音频。但是,我希望通过seeking支持我的应用程序。对于CBR,这很容易,因为我可以大致计算应该跳过多少字节。例如:以128 kbps搜索50秒,大约是Java 在mp3文件中查找,java,audio,audio-player,Java,Audio,Audio Player,我正在使用java开发mp3播放器,通过读取文件、解码帧和播放音频。但是,我希望通过seeking支持我的应用程序。对于CBR,这很容易,因为我可以大致计算应该跳过多少字节。例如:以128 kbps搜索50秒,大约是(50/0.026)*417。但这不适用于VBR,因为比特率不是恒定的 有没有什么方法可以计算在不解码所有帧的情况下,我应该在VBR中跳过多少字节?您可以将mp3文件解码到缓冲区,然后从缓冲区进行播放(边播放边计算帧)。我通过计算VBR文件的平均比特率解决了我的问题。 这可以通过将文
(50/0.026)*417
。但这不适用于VBR,因为比特率不是恒定的
有没有什么方法可以计算在不解码所有帧的情况下,我应该在VBR中跳过多少字节?您可以将mp3文件解码到缓冲区,然后从缓冲区进行播放(边播放边计算帧)。我通过计算VBR文件的平均比特率解决了我的问题。 这可以通过将文件长度除以歌曲持续时间的位来实现。
avg=size*8/duration
然后作为CBR进行搜索,但使用平均比特率而不是恒定比特率计算帧大小。前提是缓冲区有足够的可用内存。现代电脑上的单曲也是如此,而低端智能手机上的播客就不多了。问题是如何在这些音乐流中准确查找时间戳。