ios - 当我需要自定义音频效果时是否需要处理音频单元,或者我可以依赖音频队列服务吗?

标签 ios core-audio audiounit audioqueueservices audioqueue

据我了解,音频队列服务是比使用音频单元的音频单元更高级别的 API。 OpenAL 还使用音频单元。所以 Audio Units 是 iOS 中最低级别的音频 API。

我需要录制声音,然后将自定义过滤器应用于音频流并进行播放。 Audio Queue Services 似乎很适合录音,也可以用来回放。但我仍然不确定他们是否允许将自己的算法应用于音频流,就像 AURemoteIO 音频单元那样。

最佳答案

根据我个人的——有时是痛苦的——经验,我会说将 AudioQueue 用于流式应用程序。对于其他任何事情,请使用 AudioUnit。后者可能级别较低,但我没有看到复杂性有太大差异。

老实说,AudioUnit 似乎更易于使用。

理论上,有了 AudioUnit,您应该能够使用其他插件来应用效果。然而,在 iOS 5 之前,AURemoteIO 是唯一可用的 AudioUnit。显然 iOS 5 有更多功能。我还没有机会检查。

如果您通过对缓冲区运行算法来手动执行此操作,您应该能够找到相当多的开源 DSP 代码。还有商业应用程序。一个非常好的库是用于变调和时间拉伸(stretch)的 Dirac DSP 库。

这里有一篇关于使用 AURemoteIO 来回答这个问题的很棒的教程:

Stopping and Quickly Replaying an AudioQueue

关于ios - 当我需要自定义音频效果时是否需要处理音频单元,或者我可以依赖音频队列服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944572/

相关文章:

ios - 音频闪避后音乐变得更柔和?

ios - 如何将 Objective-C 静态扩展库链接/嵌入到 Xcode 13 项目中?

iphone - 如何确定外接耳机是否已连接到 iPhone?

iphone - 了解 AurioTouch

audio - 减少 AVCaptureSession 中的音频延迟/延迟?

iphone - 通过iPhone中的Web服务上传pdf文件(从文档目录)吗?

IOS:在没有 iphone/ipad 邮件应用程序的情况下发送邮件

ios - iOS 上的低延迟音频输出问题(又名如何击败 AUAudioUnit SampleRate、MaximumFramesToRender 和 ioBufferDuration 提交)

ios - 为什么一些非常老的 AudioToolbox APIs (AudioComponentDescription) 现在只支持 iOS 10.0+?

iphone - 如何录制/保存iPhone应用程序中正在播放的音频?