在性能方面,我应该使用 AVAudioEngine 来获得多种音效吗?
performance wise, should I use AVAudioEngine for multiple sound effects yes or no?
性能方面,使用 AVAudioPlayerNode
实例和
是否更好
一个。一个 AVAudioEngine
实例,我将多个音效连接到它的混音器
乙。每个音效的 AVAudioEngine
的单独实例?
我之所以使用 AVAudioEngine 是因为我正在使用 AVAudioUnitVaryspeed 进行一些音频处理,但是每个音效都可以(并且是)独立的,所以我想知道是否有人知道什么是最好的?
是否可以为每个效果使用 AVAudioEngine 及其节点,或者我应该管理单个引擎实例并在播放声音时连接/断开节点?
您应该管理一个 AVAudioEngine
实例,您的所有效果器和播放器都连接到该实例,并且在声音播放时管理 connect/disconnect 个节点。
由于性能开销,拥有多个 AVAudioEngine
实例不是问题,但因为实时管理它们会变得太复杂,让它们都响应 AVAudioSession.routeChangeNotification
和 AVAudioSession.interruptionNotification
,保持所有玩家同步,使用 renderOffline
测试每个玩家,等等。
我建议您观看 WWDC 2014 Session 502 - AVAudioEngine in Practice,以获得对此的良好介绍 API。他们提出的一个用例与您的非常相似——他们只使用一个 AVAudioEngine
实例 :-)
性能方面,使用 AVAudioPlayerNode
实例和
一个。一个 AVAudioEngine
实例,我将多个音效连接到它的混音器
乙。每个音效的 AVAudioEngine
的单独实例?
我之所以使用 AVAudioEngine 是因为我正在使用 AVAudioUnitVaryspeed 进行一些音频处理,但是每个音效都可以(并且是)独立的,所以我想知道是否有人知道什么是最好的?
是否可以为每个效果使用 AVAudioEngine 及其节点,或者我应该管理单个引擎实例并在播放声音时连接/断开节点?
您应该管理一个 AVAudioEngine
实例,您的所有效果器和播放器都连接到该实例,并且在声音播放时管理 connect/disconnect 个节点。
由于性能开销,拥有多个 AVAudioEngine
实例不是问题,但因为实时管理它们会变得太复杂,让它们都响应 AVAudioSession.routeChangeNotification
和 AVAudioSession.interruptionNotification
,保持所有玩家同步,使用 renderOffline
测试每个玩家,等等。
我建议您观看 WWDC 2014 Session 502 - AVAudioEngine in Practice,以获得对此的良好介绍 API。他们提出的一个用例与您的非常相似——他们只使用一个 AVAudioEngine
实例 :-)