AUAudioUnit和AudioUnit有啥区别
Posted
技术标签:
【中文标题】AUAudioUnit和AudioUnit有啥区别【英文标题】:What is the difference between AUAudioUnit and AudioUnitAUAudioUnit和AudioUnit有什么区别 【发布时间】:2017-06-02 08:57:40 【问题描述】:我看到了关于 Core Audio 的 WDC 2016 conference,并从 29 分钟 Doug Wyatt 开始谈论实时音频。因为我正在开发一个高性能的音频应用程序,所以我需要这样做。
但我注意到他使用了AUAudioUnit
,但在我的 C 应用程序中(我更喜欢使用 C/C++ 进行音频代码,我遵循Chris Adamson advices)。
所以我有 3 个问题:
AudioUnit 和 AUAudioUnit 有什么区别?
据我所知,我阅读了An audio unit is of type AudioComponentInstance as defined in AudioComponent.h
,而 AUAudioUnit 将是它的包装类。
为什么我不能在 C/C++ 项目中使用 AUAudioUnit?它只是一个 Swift 的东西吗?
如果是,我应该继续使用 C/C++ 开发我的音频单元图和节点,还是应该切换到 Swift 类 AUAudiounit
【问题讨论】:
【参考方案1】:1) 我认为描述 AUAudioUnit 和 AudioUnit 之间区别的最佳方式是 AUAudioUnit 是一个 Objective-C 类,而 AudioUnit 是一组 (C/C++) API,它们共同充当 AudioUnit 框架。 (顺便说一句,AudioUnit 现在是 AudioToolbox 框架的一部分)
2) AUAudioUnit 是一个 Objective-C 类。我不知道是否可以从 C/C++ 链接到 objc,但如果是这样,那将不是很容易做到。根据您的潜在问题,可能甚至不是最好的办法。
3) 这实际上取决于您打算如何处理您的应用程序。 CoreAudio & AudioToolBox 框架中有很多 C/C++ API,包括 AudioComponent.h。因此,如果这就是您正在寻找的内容,您可以直接在您的 C/C++ 应用程序中完美地使用它。
直接查看 CoreAudio 和 AudioToolbox 标头对我很有帮助。里面有很多有用的信息。
【讨论】:
以上是关于AUAudioUnit和AudioUnit有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
AUAudioUnit & AudioUnitGetProperty、AudioUnitSetProperty
在自定义 AUAudioUnit 中查找爆裂声和爆裂声的原因
iOS 上的低延迟音频输出问题(又名如何击败 AUAudioUnit sampleRate、maximumFramesToRender 和 ioBufferDuration 提交)