问题描述
一起使用
A。一个AVAudioEngine
实例,我将多个声音效果连接到其调音台
B。每个音效都有单独的AVAudioEngine
实例吗?
我使用AVAudioEngine的原因是因为我正在使用AVAudioUnitvaryspeed进行一些音频处理,但是每种音效可以(并且是)独立的,所以我想知道是否有人知道最好的?
可以为每个效果配备一个AVAudioEngine及其节点吗?还是应该管理一个引擎实例并在播放声音时连接/断开节点?
解决方法
您应该管理一个连接了所有效果器和播放器的AVAudioEngine
实例,并在声音播放时连接/断开节点。
拥有多个AVAudioEngine
实例并不是一个问题,这是因为会增加性能,但是因为它太复杂而无法实时管理所有实例,让它们都对AVAudioSession.routeChangeNotification
和{ {1}},保持所有玩家同步,使用AVAudioSession.interruptionNotification
测试每个玩家,依此类推。
我建议您观看WWDC 2014 Session 502-实践中的AVAudioEngine,以获取对该API的良好介绍。他们提出的一种用例与您的非常相似–他们仅使用一个renderOffline
实例:-)