【问题标题】:Virtual Instrument App Recording Functionality With RemoteIO带有 RemoteIO 的虚拟仪器应用程序录音功能
【发布时间】:2011-05-18 21:37:24
【问题描述】:

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

  1. 记录用户的输入(即以什么音量播放了哪些音符),以便应用可以重新创建声音(但这不能共享/通过电子邮件发送)。
  2. 使用 AudioUnits 特别是 RemoteIO 破解我自己的低级声音引擎,以便我手动混合所有声音并手动填充最终输出缓冲区,从而可以将所述缓冲区保存到文件中。这将能够通过电子邮件等方式共享。

我已经实现了一个 RemoteIO 回调来渲染输出缓冲区,希望它能给我以前在缓冲区中播放的数据,但可惜缓冲区总是全 00。

所以我的问题是:有没有比我上面的选项 2 更简单的方法来嗅探/收听我的应用发送给扬声器的内容?

提前感谢您的帮助!

【问题讨论】:

    标签: ios openal recording audiounit


    【解决方案1】:

    我认为你应该使用 remoteIO,几个月前我有一个类似的项目,想尽可能避免 remoteIO 和音频单元,但最后,在我编写了大量代码并阅读了大量来自第三方的文档之后图书馆(包括 cocosdenshion)我最终还是使用了音频单元。不仅如此,设置和使用它并不难。但是,如果您正在寻找一个库来为您完成大部分工作,那么您应该寻找一个写在核心音频未打开 al 之上的库。

    【讨论】:

    • 好的,谢谢!如果我想保存音频输出,看起来就像是 remoteio。
    • 很高兴能提供帮助,我谈到的那个项目花了很长时间,因为我试图避免 remoteIO,声音很难处理,完全控制和低延迟非常好。
    • 你们有没有我以前使用的代码示例来开始类似的需要,以捕获应用程序的音频输出并将其写入文件?
    【解决方案2】:

    您可能想看看AudioCopy framework。它做了很多您似乎正在寻找的事情,并且可以让您免于重新发明一些轮子。

    【讨论】:

    • 感谢您的回复!我看过 AudioCopy,它似乎需要一个源文件才能工作,它不能只嗅探应用程序的音频输出(除非我误解了它的工作原理)。
    猜你喜欢
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 2018-04-21
    • 2011-01-23
    • 2023-02-01
    • 1970-01-01
    相关资源
    最近更新 更多