我正在尝试使用来自their website here的Apple SpeakToMe:使用语音识别和AVAudioEngine 样本。我的问题是,当您停止AVAudioEngine和SpeechRecognizer时,您将无法再使用系统声音。
如何释放AVAudioEngine和SpeechRecognizer,以便在录制停止后声音再次起作用?
要复制此内容:
更新
这只发生在真实设备上 - 而不是在模拟器上。
答案 0 :(得分:5)
经过数小时的调试后,我遇到了未发布的对象导致问题。在他们的示例代码中,他们不会释放AVAudioSession。这会导致声道被阻挡。
修复方法是使AVAudioSession成为一个属性:
private var audioSession : AVAudioSession?
然后在停止录制时将audioSession.active
设置为false:
if let audioSession = audioSession {
do {
try audioSession.setActive(false, with: .notifyOthersOnDeactivation)
} catch {
// handle error
}
}