在Android上播放AAC缓冲区

时间:2013-11-20 23:35:09

标签: android audio aac

在Android中播放包含AAC(在MP4容器中)的内存缓冲区是否有合理的方法?我无法将此缓冲区写入磁盘......必须从内存中播放。

似乎我唯一的选择是手动解码到PCM并使用AudioTrack,因为Android不会暴露任何播放非PCM内存缓冲区的API。 OpenSL ES支持内存源,但Android没有实现这一点。

1 个答案:

答案 0 :(得分:0)

我能找到的唯一方法就是(如我的问题所示)手动解码AAC。有一些Android软件包可以做到这一点,或许ffmpeg是经过最充分测试和众所周知的。 ffmpeg可以简化为AAC解码器,因此内存需求非常小(尽管将解码器引入已有本机的设备是令人沮丧的)。

AAC解码为PCM后,可以用Java(AudioTrack)或本机(OpenSL ES)播放。本机选项的播放延迟明显较低,如果这对您很重要。