AUAudioUnit和AVAudioUnit API看起来非常相似,
有什么关系呢?什么时候使用哪一个?
发布于 2015-12-09 17:41:31
AVAudioUnit作为AVAudioEngine中的节点进行连接。AUAudioUnit通常连接在AUGraph中。功能应该是相似的,因为两者都是音频单元,但在iOS中使用AVAudioEngine是音频控制的现代方式,因此AVAudioUnits背后有一个更现代化的API。
我确信有一些用例可以优先使用其中一个,但我建议您使用AVAudioUnits,除非您需要它们不提供的特定功能。AUAudioUnits及其处理图的可定制性非常好,但根据我的经验,它会带来陡峭的学习曲线和更多的代码。我花了很多个不眠之夜来检查我的AUGraphs,但AVAudioEngine对我很好。
此外,在附加到AVAudioEngine之前,AVAudioNodes以及AVAudioUnits不起作用,但是您可以使用渲染回调在没有AUGraph的情况下设置AUAudioUnits。
发布于 2016-05-21 23:48:10
请注意,AUAudioUnit代表一个V3音频单元,即使它以“AU”开头。它在iOS 9中可用。较旧的API也以'AU‘开头(例如AUSampler),但它们是V2。
一般来说,在你的应用程序中你应该使用AVAudioUnit。请注意,它仅在iOS 8+中可用。如上所述,您可以使用AVAudioNode类轻松地设置AVAudioEngine。您不能使用AUAudioUnit做到这一点。
如果你正在编写你自己的音频单元,你应该通过子类化来使用AUAudioUnit。
编辑:如果您想要显示V3音频单元的viewController,也可以使用AUAudioUnit。
https://stackoverflow.com/questions/34174150
复制相似问题