【发布时间】:2016-11-27 19:55:12
【问题描述】:
如果要在某个时间位置启动.mp3文件的InputStream,如何使用InputStream.skip()方法计算要跳过的字节数?
我可以访问以下数据: 您想在几秒钟内开始的点
- mp3 的采样率
- mp3 的样本大小
- mp3 的帧率
- mp3 的帧大小
我已尝试搜索描述如何计算它的公式/算法,但我找不到它。有没有人知道怎么做?
-编辑
我尝试过执行帧大小 * 帧率 * 位置(秒),但相差 10 倍。当歌曲中跳到 50 秒时,将其除以 10 时仍会相差 3 秒,跳过较大的块时甚至更多。
【问题讨论】:
-
@teppic 不,我正在使用 JLayer
-
链接的答案描述了Jlayer的使用。
-
@teppic 链接的答案没有提供任何关于在 mp3 文件中搜索的内容。除此之外,提供的链接使用我没有使用的 MP3SPI。没有 MP3SPI 的代码很快就不同了。
-
This answer might help,特别是 BpmDJ 的作者通过一些示例链接到 git 存储库 (随机访问解码器的 git 存储库可以从 git://yellowcouch 获得.org/home/git/JLayerDemos.git/)