2013-03-21 156 views
3

我正在编写生成音乐的应用程序。我使用OpenAL来:修改收益;修改音调;混合音频;并播放结果音频。我现在需要在播放音频时录制它。我知道OpenAL不会让您录制输出音频。我发现的其他选项是使用音频单元。但是因为我需要混音/音调/增益音频并将其录制,似乎我需要编写所有音频处理,以便可以访问输出缓冲区。它是否正确?或者,我可以使用不同的iOS API来执行此操作。如果没有,那么是否有第三方解决方案可以让我记录输出(付费解决方案是否正常)?objective-c录制音频会话输出

回答

1

你是对的。

音频单元是唯一允许应用程序处理并录制音频的iOS公共API。

尝试记录OpenAL输出可能违反了Apple使用非公共API的规则。

另一种方法可能是完全重写RemoteIO音频单元顶部所需的OpenAL部分(可能有些部分是开源的)。

0

要走的最佳方式很可能是Core Audio,因为它会为您提供尽可能多的灵活性。查看Extended Audio File Services参考页面。

使用和扩展音频文件,您应该能够设置文件格式和音频流缓冲区,以发送最终混合输出,然后使用ExtAudioFileWrite()函数将样本写入文件。