RemoteIO的虚拟仪器应用程序记录功能

时间:2011-05-18 21:37:25

标签: ios openal recording audiounit

我正在开发适用于iOS的虚拟乐器应用程序,并尝试实现录制功能,以便应用程序可以录制和播放用户使用乐器制作的音乐。我目前正在使用基于OpenAL的CocosDenshion声音引擎(有一些我自己的黑客涉及淡入淡出等)。从我对网络的研究看来,我有两个选择:

  1. 记录用户的输入(即以哪个音量播放哪些音符),以便应用可以重新创建声音(但不能共享/通过电子邮件发送)。
  2. 使用AudioUnits& Hack来破解我自己的低级声音引擎特别是RemoteIO,这样我手动混合所有声音并手动填充最终输出缓冲区,因此可以将所述缓冲区保存到文件中。这将可以通过电子邮件等分享。
  3. 我已经实现了一个RemoteIO回调来渲染输出缓冲区,希望它能给我以前在缓冲区中播放的数据,但是缓冲区总是都是00。

    所以我的问题是:是否有一种更容易的方式来嗅/听我的应用发送到扬声器的内容比上面的选项2?

    提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可能需要查看AudioCopy framework。它会做很多你正在寻找的东西,并且会让你免于重新发明一些轮子。

答案 1 :(得分:0)

我认为你应该使用remoteIO,几个月前我有一个类似的项目,并希望尽可能地避免使用remoteIO和音频设备,但最后,在我写了大量代码并从第三方阅读了大量文档之后库(包括cocosdenshion)我最终还是使用了音频单元。更重要的是,设置和使用并不困难。但是,如果您正在寻找一个可以为您完成大部分工作的库,那么您应该寻找一个不会打开的核心音频顶部的文件。