ios - 性能方面,我是否应该使用 AVAudioEngine 来获得多种音效?
问题描述
性能方面,使用AVAudioPlayerNode
实例是否更好
A. 一个AVAudioEngine
实例,我将多个音效连接到它的混音器
AVAudioEngine
B.每个音效的单独实例?
我使用 AVAudioEngine 的原因是因为我正在使用 AVAudioUnitVaryspeed 进行一些音频处理,但是每个音效都可以(并且是)独立的,所以我想知道是否有人知道什么是最好的?
每个效果都有一个 AVAudioEngine 及其节点是否可以,或者我应该管理单个引擎实例并在声音播放时连接/断开节点?
解决方案
AVAudioEngine
您应该管理所有效果和播放器都连接到的单个实例,并在声音播放时连接/断开节点。
由于性能开销,拥有多个AVAudioEngine
实例不是问题,但是因为实时管理它们会变得太复杂,让它们都响应AVAudioSession.routeChangeNotification
and AVAudioSession.interruptionNotification
,保持所有玩家同步,使用测试每个玩家renderOffline
, 等等。
我建议您观看 WWDC 2014 Session 502 - AVAudioEngine in Practice,以了解此 API 的良好介绍。他们提出的一个用例与您的非常相似——他们只使用一个AVAudioEngine
实例:-)
推荐阅读
- angular6 - 角度可观察
服务返回一个字符串(而不是 ObjectModel 类型的对象) - python - 更改直方图刻度大小
- ember.js - 记录已保存到服务器,但响应没有 id,您的记录也没有
- javascript - 欧芹自定义验证器在第一次点击时没有响应
- json - Flutter - 从 JSON 源创建列表变量
- amazon-web-services - 在浏览器中查看 apigateway 文档的本机方式
- java - Liferay 7如何使用页面布局ID将单个页面从登台站点发布到实时站点?
- python - 如果键值匹配,则解析 JSON 数据并在 Python 中打印键值
- android - 单击按钮时更新/刷新片段
- c - 使用文件的管道输入,无法通过管道获取文件名而不是文件内容