我正在为 iOS 开发一个虚拟乐器应用程序,并尝试实现一个录音功能,以便该应用程序可以录制和播放用户使用乐器制作的音乐。我目前正在使用基于 OpenAL 的 CocosDenshion 声音引擎(我自己的一些技巧涉及淡入淡出等)。从我在网上的研究看来,我有两种选择:
- 记录用户的输入(即以什么音量播放了哪些音符),以便应用程序可以重新创建声音(但这不能共享/通过电子邮件发送)。
- 使用 AudioUnits & 特别是 RemoteIO 破解我自己的低级声音引擎,以便我手动混合所有声音并手动填充最终输出缓冲区,因此可以将所述缓冲区保存到文件中。这将能够通过电子邮件等共享。
我已经实现了一个 RemoteIO 回调来渲染输出缓冲区,希望它能给我以前在缓冲区中播放的数据,但可惜缓冲区总是全 00。
所以我的问题是:有没有比我上面的选项 2 更简单的方法来嗅探/收听我的应用程序发送给扬声器的内容?
在此先感谢您的帮助!