gpt4 book ai didi

ios - 在不停止 AudioKit 的情况下停止 AKMicrophone

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:15:37 26 4
gpt4 key购买 nike

我有一个应用程序,我只想从一个特定的屏幕进行录制。在所有其他屏幕上,我不想大部分时间都在录音,这样当应用程序在后台时音频仍然可以播放,而没有红色的录音栏。我能够做到这一点的唯一方法是停止 AudioKit (AudioKit.stop()) 但我很确定 AudioKit 的启动和停止会导致一些非常随机的难以追踪的崩溃。我也试过在麦克风上调用停止,并将输入启用设置为 false,但这也没有用。

我知道有一个类似的问题AudioKit: Can I disable an AKMicrophone without calling AudioKit.stop()?

但答案没有解决这个问题。

有没有办法在不停止引擎的情况下停止接收来自麦克风的输入?

最佳答案

这在一定程度上取决于您断开麦克风的目标。如果您只是想停止处理输入并更改 AVAudioSession 类别以便红色条消失,您可以设置 AKSettings.audioInputEnabled = false 但随后您需要更新 AVAudioSession 的类别。目前据我所知,没有停止/启动 AudioKit 的好方法,尽管在不重新启动引擎的情况下更改类别应该是可能的。乍一看似乎有效的一个 hack 是分配 AudioKit.output = AudioKit.output 以触发 didSet 副作用,该副作用将通过 updateSessionCategoryAndOptions 更新类别()

您总是可以绕过 AudioKit 并尝试直接设置共享 AVAudioSession 的类别。我正在研究为 AudioKit 创建一个 PR 以公开 updateSessionCategoryAndOptions() 但与此同时,您始终可以在您自己的分支中公开此功能并运行 build_frameworks.sh。无论如何,这不是很好的解决方案,但这是一个有效的用例,AudioKit 应该在未来提供更好的支持!

关于ios - 在不停止 AudioKit 的情况下停止 AKMicrophone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47803341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com