Записывайте файлы AMR на iPhone

Я использовал AVAudioRecorder для записи аудио на iPhone, но файл слишком велик для загрузки на сервер в сети EDGE. Я обнаружил, что если бы я мог сжать аудио в формат AMR, размер был бы значительно уменьшен по сравнению с исходным аудиофайлом PCM.

Я нашел библиотеку кодирования и декодирования AMR (3GPP AMR Floating-Point Speech Codec), написанную на чистом C. Я могу преобразовать WAVE в AMR, используя эту библиотеку, однако процесс кодирования на iPhone слишком долгий. Мне нужно подождать 22 секунды, чтобы закодировать 1-минутный файл Wave.

Мне действительно нужно записывать вместе с кодированием, чтобы исключить ожидание кодирования, но AVAudioRecorder предоставляет возможность записи только путем создания новых файлов. Кажется, единственный способ сделать это - использовать AudioQueue, который обеспечивает запись через буфер памяти.

Проблема в том, что я не знаю, как интегрировать эти две вещи, аудио-очередь и библиотеку AMR. Может ли кто-нибудь мне помочь?


person nonamelive    schedule 11.08.2011    source источник


Ответы (1)


Core Audio имеет встроенную поддержку 3GPP / AMR. Используйте ExtAudioFile или более низкий уровень AudioConverter.

person Peter Hosey    schedule 11.08.2011