我正在编写一个可以生成音乐的应用。我正在使用OpenAL:修改增益;修改音调;混合音频;并播放产生的音频。我现在需要录制正在播放的音频。据我所知,OpenAL不允许您录制输出音频。我发现的其他选项是使用音频单元。然而,因为我需要混合/音调/获取音频并记录它,似乎我需要编写所有音频处理,以便我可以访问输出缓冲区。它是否正确?或者我可以使用不同的iOS API来执行此操作。如果没有,那么是否已经有第三方解决方案让我记录输出(付费解决方案很好)?
答案 0 :(得分:1)
你是对的。
音频单元是唯一允许应用程序处理然后录制音频的iOS公共API。
尝试记录OpenAL输出可能违反了Apple禁止使用非公共API的规则。
替代方案可能是完全重写您在RemoteIO音频单元顶部运行所需的OpenAL部分(某些部分可能有开源)。
答案 1 :(得分:0)
最好的方法可能是Core Audio,因为它可以为您提供所需的灵活性。请查看Extended Audio File Services参考页。
使用和扩展音频文件,您应该能够设置文件格式和音频流缓冲区以发送最终的混合输出,然后使用ExtAudioFileWrite()
函数将样本写入文件。