Rob*_*ski 29 mp3 android decode android-ndk
我们正在实施Android手机程序,播放从互联网流式传输的音频.这是我们的大致工作:
到目前为止,我们的目标设备是Droid和Nexus One.在Nexus One上一切都很棒,但在Droid上MP3解码速度太慢了.如果我们把Droid放在负载下,音频播放就会开始跳过.我们不允许将MP3数据解码为SD卡,但我知道这不是我们的问题.
我们没有编写自己的MP3解码器,而是使用了MPADEC(http://sourceforge.net/projects/mpadec/).它是免费的,很容易与我们的程序集成.我们用NDK编译它.
在使用各种分析工具进行详尽分析后,我们确信这个解码器落后了.
以下是我们正在考虑的选项:
找到我们可以使用Android NDK编译的另一个MP3解码器.此MP3解码器必须经过优化才能在移动ARM设备上运行,或者可能使用仅整数数学或其他一些优化来提高性能.
由于内置的Android MediaPlayer服务将采用URL,我们可能能够在我们的程序中实现一个小型HTTP服务器,并使用解密的MP3为MediaPlayer提供服务.这样我们就可以利用内置的MP3解码器.
通过NDK访问内置MP3解码器.我不知道这是否可行.
有没有人对我们如何加速MP3解码有任何建议?
- Rob Sz
我没有尝试过这个,但我相信你可以给媒体播放器一个文件描述符:
public void setDataSource (FileDescriptor fd, long offset, long length)
Run Code Online (Sandbox Code Playgroud)
也许您可以将解密的 mp3 写入文件并使用文件描述符播放它。假设您提前知道文件长度,这甚至可能适用于流媒体。如果它有效的话,它会比做一个本地主机网络服务器简单得多。
| 归档时间: |
|
| 查看次数: |
13790 次 |
| 最近记录: |