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