AUAudioUnit和AVAudioUnit API看起来非常相似,
有什么区别?什么时候使用哪一个?
答案 0 :(得分:3)
AVAudioUnit作为AVAudioEngine中的节点连接。 AUAudioUnit通常连接在AUGraph中。功能应该类似,因为两者都是音频单元,但使用AVAudioEngine是iOS中现代的音频控制方式,因此AVAudioUnits背后有更现代化的API。
我确信有一些用例可以优先于另一个,但我会说使用AVAudioUnits,除非你需要的东西是他们不提供的。 AUAudioUnits的可定制性及其处理图非常棒,但根据我的经验,学习曲线陡峭,代码更多。我花了很多不眠之夜来检查我的AUGraphs,但AVAudioEngine对我很好。
此外,AVAudioNodes和AVAudioUnits在连接到AVAudioEngine之前不起作用,但是你可以在没有使用渲染回调的AUGraph的情况下设置AUAudioUnits。
答案 1 :(得分:3)
请注意,AUAudioUnit
表示V3音频单元,即使它以' AU'开头。它在iOS 9中可用。较旧的API也以' AU'开头。 (例如AUSampler)但它们是V2。
通常在您的应用中,您应该使用AVAudioUnit
。请注意,它仅适用于iOS 8+。如上所述,您可以使用AVAudioNode
类轻松设置AVAudioEngine
。您无法使用AUAudioUnit
。
如果您正在编写自己的音频单元,则应通过继承它来使用AUAudioUnit
。
编辑:如果您打算显示V3音频单元的viewController,也可以使用AUAudioUnit
。