AUAudioUnit和AudioUnit

时间:2017-06-02 08:57:41

标签: swift avfoundation core-audio audiotoolbox

我看到了关于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 个答案:

答案 0 :(得分:2)

1)我认为描述AUAudioUnit和AudioUnit之间区别的最好方法是AUAudioUnit是一个Objective-C类,而AudioUnit是一组(C / C ++)API,它们共同作为AudioUnit框架。 (BTW AudioUnit现在是AudioToolbox框架的一部分)

2)AUAudioUnit是一个Objective-C类。我不知道是否可以从C / C ++链接到objc,但如果是这样,那就不容易了。根据你的潜在问题,可能甚至不是最好的事情。

3)这实际上取决于您对应用程序的意图。 CoreAudio&中有很多C / C ++ API。 AudioToolBox框架包括AudioComponent.h。所以,如果你正在寻找的东西,你可以直接在你的C / C ++应用程序中使用它。

我将非常乐于帮助您了解CoreAudio& AudioToolbox标头直接。那里有很多有用的信息。