java – android最快的解码mp3到pcm数据的方法

在我的应用程序中,我需要将mp3文件解码为pcm缓冲区.这是很多数据,所以当我读取并解码时,我将其下采样到单声道22050Hz.

目前我正在使用javazoom jlayer decoder http://www.javazoom.net/javalayer/javalayer.html

它的工作速度很慢,30秒用于在运行模式下解码3分钟的歌曲,在调试模式下老化.在我使用libmpg的Windows机器上,我可以在大约1秒内完成.

是否有更快的方式,任何人都知道肯定更快?我不想浪费时间实现另一种方法,如果它没有明显更快.谢谢.

顺便说一下,在我的应用程序中,我需要将整个内容下载到内存中的pcm缓冲区,所以我对简单播放mp3文件的东西不感兴趣.

最佳答案 这是你在Android中使用Native的时刻!

– 使用NDK并找到一个快速的c / c库(它们比jlayer快20倍,例如18秒内9min sogn)

– 有些库可以是有用的:

http://www.mpg123.de/

www underbit.com/products/mad/

www oracle.com/technetwork/java/javase/download-137625.html(不确定这个支持MP3toPCM)

lame.sourceforge.net/about.php(这个在github上有一个android开源项目,我希望对你非常有用!
https://github.com/intervigilium/liblame)

点赞