首页 > 解决方案 > 性能方面,我是否应该使用 AVAudioEngine 来获得多种音效?

问题描述

性能方面,使用AVAudioPlayerNode实例是否更好

A. 一个AVAudioEngine实例,我将多个音效连接到它的混音器

AVAudioEngineB.每个音效的单独实例?

我使用 AVAudioEngine 的原因是因为我正在使用 AVAudioUnitVaryspeed 进行一些音频处理,但是每个音效都可以(并且是)独立的,所以我想知道是否有人知道什么是最好的?

每个效果都有一个 AVAudioEngine 及其节点是否可以,或者我应该管理单个引擎实例并在声音播放时连接/断开节点?

标签: iosswiftavaudioengine

解决方案


AVAudioEngine您应该管理所有效果和播放器都连接到的单个实例,并在声音播放时连接/断开节点。

由于性能开销,拥有多个AVAudioEngine实例不是问题,但是因为实时管理它们会变得太复杂,让它们都响应AVAudioSession.routeChangeNotificationand AVAudioSession.interruptionNotification,保持所有玩家同步,使用测试每个玩家renderOffline, 等等。

我建议您观看 WWDC 2014 Session 502 - AVAudioEngine in Practice,以了解此 API 的良好介绍。他们提出的一个用例与您的非常相似——他们只使用一个AVAudioEngine实例:-)


推荐阅读