如何在Android内解码Android中的MP3?

时间:2012-06-25 14:28:05

标签: android mp3 decode

我正在开发一款可让用户选择MP3音频文件的应用。然后我的应用程序处理该文件。

对于此处理,应用程序需要解码音频文件以获取原始PCM输出。

要解码MP3,我有两个选择:

  1. 使用Android系统解码MP3并获取PCM数据。
  2. 在手机上自行解码MP3,无需支付MP3许可费。
  3. 我的问题是#1在技术上是否可行?对于#2,手机上的MP3许可证是否也涵盖了应用程序?

3 个答案:

答案 0 :(得分:2)

据我所知,没有Android提供的解码MP3的方法。

我过去曾使用JLayer,可以推荐用于MP3处理。将NDK与c ++库一起使用可能会更快,但是如果你想保留Java,那就是我使用的。它仍然比实时更快,大约30秒,以平均比特率3分钟MP3解码所有帧。那是Galaxy S(1GHz),所以任何更新的手机都更快。

就许可而言,我无法帮助你。 JLayer本身就是LGPL,但MP3牌照的世界比使用机油更为模糊。经过几天寻找具体的答案,我就放弃了,做了。对于那些甚至首先拥有执照的人来说,整个世界似乎存在分歧。

答案 1 :(得分:2)

Android系统现在可以解码mp3文件,请参阅here它描述Android平台提供的媒体编解码器,容器和网络协议支持。

MedieCodec是一个非常强大的框架,用于编码和解码媒体文件。

答案 2 :(得分:0)

选项1绝对不可能(除非您想要定位ICS +设备并愿意编写本机C代码以使用OpenSL解码MP3)。 Geobits对jLayer的推荐是一个很好的建议。在大多数情况下,处理jLayer是一件轻而易举的事。这是一篇很好的博文,可以提供帮助:http://mindtherobot.com/blog/624/android-audio-play-an-mp3-file-on-an-audiotrack/