我一直在使用 AVAudioRecorder 在 iPhone 上录制音频,但文件太大而无法上传到 EDGE 网络上的服务器。我发现如果我可以将音频压缩为 AMR 格式,与原始 PCM 音频文件相比,它的大小会大大减小。
我找到了一个用纯 C 编写的 AMR 编码和解码库(3GPP AMR 浮点语音编解码器)。我现在可以使用这个库将 WAVE 转换为 AMR,但是,iPhone 上的编码过程太长了。我必须等待 22 秒才能对 1 分钟的 Wave 文件进行编码。
我确实需要与编码一起录制以消除编码等待,但 AVAudioRecorder 仅通过创建新文件提供录制功能。似乎唯一的方法是使用 AudioQueue,它通过内存缓冲区提供记录。
问题是我不知道如何集成音频队列和 AMR 库这两个东西。谁能帮帮我?