android - 在 Android 上播放 AAC 缓冲区

标签 android audio aac

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

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

最佳答案

我能找到的唯一方法是(如我的问题所示)手动解码 AAC。有一些适用于 Android 的软件包可以做到这一点,也许 ffmpeg是最受考验和最知名的。 ffmpeg可以简化为仅 AAC 解码器,因此内存需求非常小(尽管将解码器引入 native 已有解码器的设备令人沮丧)。

一旦 AAC 被解码为 PCM,就可以在 Java (AudioTrack) 或 native (OpenSL ES) 中播放。如果这对您很重要,那么原生选项的播放延迟明显较低。

关于android - 在 Android 上播放 AAC 缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109443/

相关文章:

javascript - 解析云 : Remove installation

android - 我如何在 listView 中使用按钮,这样当我单击该按钮时,我可以获得该选定项目并对其运行查询?

java - 如何在Java中生成音效?

c++ - 通过c++触发主板蜂鸣器生成莫尔斯码

html - 是否可以用HTML5播放SHOUTcast提供的AAC?

android - 使用 Volley 发送带有 JSON 数据的 POST 请求

android - 是否从 Activity java 文件正确启动 Kotlin 协程?

flash - 如何在 AS3 中播放库中的声音?

audio - mpeg2-ts aac PTS

android - AACObject ELD数据包的AAC ADTS