Есть ли способ декодировать аудиофайл AMR в Android и иметь доступ к исходным аудиоданным? MediaCodec доступен только для API 16 и выше. Мне нужно что-то, что будет работать на Android 2.2 и выше.Декодировать аудиофайл AMR в Android
0
A
ответ
1
Я думаю, что на платформах 2.X для этого нет встроенного API. Вместо этого вы можете использовать двоичные файлы ffmpeg
.
С быстрым поиском найден this precompiled version of ffmpeg
for Android
2.2.
Вы можете поместить исполняемый файл в свою прикладную папку raw
и использовать Runtime.getRuntime().exec()
для его выполнения.
Чтобы преобразовать AMR
файл WAV
с ffmpeg
вы можете сделать что-то вроде этого:
ffmpeg -i file.amr file.wav
и конвертировать WAV в сырой PCM вы можете сделать следующее: (взятый из here)
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
Это очень большой пакет - более 9 мб. Это полнофункциональное приложение для обработки звука. Overkill для моего приложения размером всего 2 мб. – AndroidDev