【发布时间】:2011-01-21 04:00:24
【问题描述】:
短版:将数据编码为 MP3(最好是 AAC/Ogg/WMA) 到一个 Java 数组或 ByteBuffer 中,然后我可以 操纵?
我正在整理一个程序,该程序有减速和加速 声音文件作为其功能之一。这适用于 WAV 文件, 这是一个标头加上需要发送到的确切二进制数据 扬声器,现在我需要为 MP3 实现它(理想情况下,这个 也会支持 AAC、Ogg 和 WMA,但因为这些不太受欢迎 格式,这不是必需的)。 Android 不公开接口 解码 MP3 而不播放它,所以我需要创建它 界面。
虽然我对其他人持开放态度,但会出现三个选项:
1) 编写我自己的解码器。我已经有一个功能帧检测器 我希望用于选项(3),现在只需要 实现霍夫曼解码表。
2) 使用 JLayer 或等效的 Java 库来处理 解码。我不完全清楚许可证的后果 在这里。
3) 连接到 libmedia 库/MediaPlayerService。这是什么 SoundPool 确实如此,而且该服务的使用量让我相信 虽然它正式不稳定,但实施并不顺利 任何地方。这意味着编写 JNI 代码来连接服务,但是 我发现那是一个很深的兔子洞。表面上,我是 sp 模板有问题。
【问题讨论】:
-
你成功解码音频数据了吗?如果是这样,你是怎么做到的?
标签: android audio mp3 decoding