3

我正在编写一个生成音乐的应用程序。我正在使用 OpenAL 来: 修改增益;修改音高;混合音频;并播放生成的音频。我现在需要录制正在播放的音频。我了解 OpenAL 不允许您录制输出音频。我发现的其他选择是使用音频单元。但是,因为我需要混合/音高/增益音频并录制它,所以我似乎需要编写所有音频处理,以便可以访问输出缓冲区。它是否正确?或者我可以使用不同的 iOS API 来执行此操作。如果没有,那么是否已经有第 3 方解决方案可以让我记录输出(付费解决方案很好)?

4

2 回答 2

1

你是对的。

Audio Units 是唯一允许应用程序处理和录制音频的 iOS 公共 API。

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

另一种方法可能是完全重写在 RemoteIO 音频单元之上运行的您需要的 OpenAL 部分(某些部分可能是开源的)。

于 2013-03-22T03:49:41.773 回答
0

最好的方法可能是 Core Audio,因为它可以为您提供所需的灵活性。查看扩展音频文件服务参考页面。

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

于 2013-03-21T23:11:08.373 回答