Я пытаюсь использовать API MediaCodec на Android для декодирования потока AAC. (Это необработанный AAC.) Я попытался использовать MediaFormat.createAudioFormat() для создания объекта формата для передачи в MediaCodec.configure(), но при использовании AAC (аудио/mp4a-latm) я продолжал получать ошибки. (Хотя он работает с MP3 (аудио/mpeg)...)
Наконец, я создал MediaExtractor для файла AAC и посмотрел на создаваемый им объект формата. Я видел, что он включает ключ «csd-0» для ByteBuffer, состоящего из двух байтов, оба со значением 0x12. Если я включу этот ключ и значение в объект формата, который я использовал для настройки кодека AAC, все будет работать.
Кто-нибудь знает, что происходит? В документации указано, что я не должен настраивать этот ключ. У кого-нибудь есть указатель на примеры MediaCodec для декодирования файлов AAC без использования MediaExtractor для создания объекта формата?