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