ios - AudioKit 生命周期混乱
问题描述
我无法解决这个问题。我到处(正确地)读到 Audiokit 生命周期应该在一个单例中管理,并远离视图控制器的生命周期。然后我检查了所有示例项目的代码,发现有点令人困惑
AudioKit.start()
总是被调用ViewDidload
。但无论如何,那不是我真正的问题..
我有多个AKMicrophone
以不同方式使用的 ViewController。例如,它们需要不同的类别、不同的 AKSettings,有些必须是普通麦克风,而有些则需要带有效果和混音器的一长串初始化(就像“录音机”示例项目一样)。
我在这里有两个相关的问题:
我在 Github 上读到,当我们更改路由或类别时,我们需要重新初始化 AudioKit。但在这种情况下,我们真的在哪里做呢?就我而言,我真的只能想到“
ViewWillAppear
”。(如果麦克风需要在不需要单击按钮的情况下开始收听,则使用不同的设置)真正的问题是我该如何正确地做到这一点?例如,在我的项目中,AKMicrophone 的设置就像“Recorder”示例一样,但在Singleton类中。当我切换到另一个 ViewController 时,它需要一个“普通”的 AKMicrohone 在视图出现后立即出现。如何从链中删除所有这些混音器和延迟?这不仅仅是更改某些 AKSetting 和重新启动引擎的问题。
解决方案
推荐阅读
- java - 使用 ping/pong 在连接丢失时断开 Websocket 会话
- asp.net - 在chrome中单击“确定”时阻止确认未点击项目命令
- powershell - 比较数组值是否包含字符串
- python-3.x - 从离散数据中找到相等的频率
- reactjs - Post 控制器仅识别来自 postman 的“from-data”或“x-www-form-urlencoded”发送的参数
- dart - 如何知道用户是否看到了颤振图像
- html - 使 img 在所有设备上都有响应
- neo4j - Neo4j 密码查询、计数节点和双向关系
- oracle - 使用 Oracle 使用 INSERT 查询返回值
- sql - 如何使用触发器减少 APEX 上的计数和计算以确保计数不低于 0