首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >录音后AVAudioEngine块语音识别

录音后AVAudioEngine块语音识别
EN

Stack Overflow用户
提问于 2016-12-13 00:36:51
回答 1查看 1.2K关注 0票数 3

我正在尝试运行苹果SpeakToMe:使用语音识别与来自他们的网站在这里的AVAudioEngine示例。我的问题是,当您停止AVAudioEngine和SpeechRecognizer时,您就不能再使用系统声音。

,您如何释放AVAudioEngine和SpeechRecognizer,使声音在录制停止后再次工作?

为了重复这一点:

  • 下载示例代码
  • 向故事板添加一个UITextField。
  • 运行项目并键入文本字段(您会注意到您可以听到键入事件的声音)。
  • 然后开始录音,停止录音
  • 再次键入文本字段(现在没有声音)

更新

这只发生在一个真正的设备上,而不是在模拟器上。

EN

回答 1

Stack Overflow用户

发布于 2016-12-13 01:26:42

经过几个小时的调试,我发现了一个未发布的对象,引起了问题。在他们的示例代码中,他们没有发布AVAudioSession。这会导致声音通道被阻塞。

修复方法是使AVAudioSession成为一个属性:

代码语言:javascript
复制
private var audioSession : AVAudioSession?

然后在停止录制时将audioSession.active设置为false:

代码语言:javascript
复制
if let audioSession = audioSession {
    do {
        try audioSession.setActive(false, with: .notifyOthersOnDeactivation)
    } catch {
        // handle error
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41111963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档