带有 RemoteIO 的虚拟仪器应用程序录音功能
Posted
技术标签:
【中文标题】带有 RemoteIO 的虚拟仪器应用程序录音功能【英文标题】:Virtual Instrument App Recording Functionality With RemoteIO 【发布时间】:2011-05-18 21:37:24 【问题描述】:我正在为 ios 开发一个虚拟乐器应用程序,并尝试实现一个录音功能,以便该应用程序可以录制和播放用户使用乐器制作的音乐。我目前正在使用基于 OpenAL 的 CocosDenshion 声音引擎(我自己的一些技巧涉及淡入淡出等)。从我在网上的研究看来,我有两种选择:
-
记录用户的输入(即以什么音量播放了哪些音符),以便应用可以重新创建声音(但这不能共享/通过电子邮件发送)。
使用 AudioUnits 特别是 RemoteIO 破解我自己的低级声音引擎,以便我手动混合所有声音并手动填充最终输出缓冲区,从而可以将所述缓冲区保存到文件中。这将能够通过电子邮件等方式共享。
我已经实现了一个 RemoteIO 回调来渲染输出缓冲区,希望它能给我以前在缓冲区中播放的数据,但可惜缓冲区总是全 00。
所以我的问题是:有没有比我上面的选项 2 更简单的方法来嗅探/收听我的应用发送给扬声器的内容?
提前感谢您的帮助!
【问题讨论】:
【参考方案1】:我认为你应该使用 remoteIO,几个月前我有一个类似的项目,想尽可能避免 remoteIO 和音频单元,但最后,在我编写了大量代码并阅读了大量来自第三方的文档之后图书馆(包括 cocosdenshion)我最终还是使用了音频单元。不仅如此,设置和使用它并不难。但是,如果您正在寻找一个库来为您完成大部分工作,那么您应该寻找一个写在核心音频未打开 al 之上的库。
【讨论】:
好的,谢谢!如果我想保存音频输出,看起来就像是 remoteio。 很高兴能提供帮助,我谈到的那个项目花了很长时间,因为我试图避免 remoteIO,声音很难处理,完全控制和低延迟非常好。 你们有没有我以前使用的代码示例来开始类似的需要,以捕获应用程序的音频输出并将其写入文件?【参考方案2】:您可能想看看AudioCopy framework。它做了很多您似乎正在寻找的事情,并且可以让您免于重新发明一些***。
【讨论】:
感谢您的回复!我看过 AudioCopy,它似乎需要一个源文件才能工作,它不能只嗅探应用程序的音频输出(除非我误解了它的工作原理)。以上是关于带有 RemoteIO 的虚拟仪器应用程序录音功能的主要内容,如果未能解决你的问题,请参考以下文章
带有 AirPods 的 iOS11 上的 RemoteIO
最实用的虚拟声卡-Windows安装虚拟声卡(有效解决PR音频输入,AU录音,obs多音频原控制等问题)
最实用的虚拟声卡-Windows安装虚拟声卡(有效解决PR音频输入,AU录音,obs多音频原控制等问题)