AUAudioUnit和AudioUnit之间有什么区别?

3
我看到了WDC 2016会议关于Core Audio的内容,从29分钟开始Doug Wyatt讲解了实时音频。由于我正在开发一个高性能的音频应用程序,所以我需要这样做。
然而,我注意到他使用了AUAudioUnit,但在我的C语言应用程序中(我更喜欢使用C/C++编写音频代码,并遵循Chris Adamson的建议)。
所以我有三个问题:
  • AudioUnit和AUAudioUnit有什么区别? 据我所知,读到“音频单元是在AudioComponent.h中定义的类型为AudioComponentInstance”,而AUAudioUnit则是其包装类。

  • 为什么我不能在C/C++项目中使用AUAudioUnit?这只是Swift的事情吗?

  • 如果是的话,我应该继续在C/C++中开发我的音频单元图和节点,还是应该切换到Swift类AUAudiounit?

1个回答

3

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头文件将非常有帮助。其中有很多有用的信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接