Воспроизвести буфер AAC на Android

1

Есть ли разумный способ воспроизведения буфера памяти, содержащего AAC (в контейнере MP4) в Android? Я не могу записать этот буфер на диск... он должен быть воспроизведен из памяти.

Похоже, что мой единственный вариант - декодировать в PCM вручную и использовать AudioTrack, поскольку Android не предоставляет API, который воспроизводит буферы памяти, отличные от PCM. OpenSL ES поддерживает источники памяти, но Android не реализует это.

Теги:
audio
aac

1 ответ

0
Лучший ответ

Единственный способ найти, что это (как указано в моем вопросе), вручную декодировать AAC. Есть несколько пакетов для Android, которые делают это, возможно, ffmpeg является самым проверенным и хорошо известным. ffmpeg можно отделить до только AAC-декодера, так что потребность в памяти довольно мала (хотя это разочаровывает введение декодера в устройство, которое уже имеет один изначально).

Как только AAC декодируется в PCM, его можно воспроизводить на Java (AudioTrack) или изначально (OpenSL ES). Задержка воспроизведения заметно ниже для опции native, если это имеет значение для вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню