我有兴趣在Android平台上进行一些音乐分析。为此,我想将任意MP3解析为PCM数据。我环顾四周,似乎没有一种简单的方法可以做到这一点。我尝试过的一个解决方案是使用jLayer。这种方法很有效,但它的速度非常慢,可以在播放歌曲的同时对其进行解码。
我知道Android上存在MP3解码器,谷歌在支持的媒体类型下表示自己。有没有人知道如何使用Android解码器解码MP3而不实际播放?我想做的就是将这些位从DAC转移出来并将它们存储在某个缓冲区中。
或者,有没有人使用NDK和MAD之类的东西取得任何成功?绩效收益是否良好?
答案 0 :(得分:2)
您可以编译和使用LAME解码器。它在ARM上运行良好。而且由于它的C / C ++,性能会更好。
大多数ARM平台上的硬件解码器都面向播放。所以不会给你完美的PCM。例如,为了避免抖动,如果负载很高,它将跳过一些数据。
关于编译LAME的说明是: