我正在开发一款可让用户选择MP3音频文件的应用。然后我的应用程序处理该文件。
对于此处理,应用程序需要解码音频文件以获取原始PCM输出。
要解码MP3,我有两个选择:
我的问题是#1在技术上是否可行?对于#2,手机上的MP3许可证是否也涵盖了应用程序?
答案 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/