Android Speechrecognizer stopListening()无效?

前端之家收集整理的这篇文章主要介绍了Android Speechrecognizer stopListening()无效?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

调用startListening()之后,在Android上使用SpeechRecognizer.stopListening()时遇到问题.它似乎没有任何效果.继续处理音频,并返回识别结果,就像没有调用stopListening()一样.

还有其他人有类似的问题吗?我可能做错了吗?

一个可能的线索:在调用stopListening()之后,立即使用SpeechRecognizer.ERROR_CLIENT调用onError().也许这意味着停止调用失败了?

在检测到语音开始之前或正在处理语音时调用stopListening()时,都会出现此问题.

startListening()和stopListening()都是从主线程调用的.

至少在两个不同的设备上测试了Android 5和6.

最佳答案
解释中的stopListening()按预期运行.此调用不会阻止识别器在此之前处理语音输入.

预计它将使用SpeechRecognizer.ERROR_CLIENT调用onError().如果您不希望将此作为“错误”处理,那么在您调用stopListening()的代码添加一个简单的布尔值:

deliberatelyCalledStop = true;

然后在错误处理中,您将知道这是否已被抛出作为预期结果,您可以忽略它.

为了关闭识别服务并忽略到目前为止检测到的所有语音输入,您需要调用

recognizer.cancel();
recognizer.destroy(); // if you want to destroy it

These methods将实现您想要的.

请注意,在撰写本文时,Google的识别服务存在一些相当大的错误.

我建议你阅读我的答案to this question,然后查看我已经报告过的the gist of the bugs.

猜你在找的Android相关文章