2017-06-02 38 views
1

我看到了关于Core Audio的WDC 2016 conference,从29分钟开始Doug Wyatt谈论实时音频。由于我正在开发具有高性能的音频应用程序,因此我需要这样做。AUAudioUnit和AudioUnit有什么区别

但是我注意到他使用了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++或者我应该切换到斯威夫特类AUAudiounit

回答

2

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标题。那里有很多有用的信息。