在Android中播放包含AAC(在MP4容器中)的内存缓冲区是否有合理的方法?我无法将此缓冲区写入磁盘......必须从内存中播放。
似乎我唯一的选择是手动解码到PCM并使用AudioTrack,因为Android不会暴露任何播放非PCM内存缓冲区的API。 OpenSL ES支持内存源,但Android没有实现这一点。
答案 0 :(得分:0)
我能找到的唯一方法就是(如我的问题所示)手动解码AAC。有一些Android软件包可以做到这一点,或许ffmpeg
是经过最充分测试和众所周知的。 ffmpeg
可以简化为AAC解码器,因此内存需求非常小(尽管将解码器引入已有本机的设备是令人沮丧的)。
AAC解码为PCM后,可以用Java(AudioTrack
)或本机(OpenSL ES)播放。本机选项的播放延迟明显较低,如果这对您很重要。