SpeechRecognizer类包括诸如isRecognitionAvailable(),startListening()和stopListening()之类的方法,但是没有方法来检查它是否当前正在侦听。
我也检查了RecognitionListener类,它也没有这样的“isListening()”方法。
任何想法为什么?(例如,它无用/无意义,应用程序员太容易实现等)
如果确实没有SDK API来提供此功能,那么实现这种“isListening()”方法的最佳方法是什么?
是否像在onReadyForSpeech()中设置布尔值并在onEndOfSpeech()中清除它一样简单?
或者我是否需要更复杂的东西,例如柜台......甚至是Atomic柜台?
答案 0 :(得分:4)
首先,定义“倾听”。它是从你的观点开始的吗?
我认为这两种(有效和有用)方案之间的区别是将实现留给API用户的原因。
然后,正如@HoanNguyen所说,在RecognitionListener中声明一个布尔数据成员:
注意:正如@HoanNguyen正确指出的那样,在调用stopListening()之后立即重置该布尔值是不正确的。
答案 1 :(得分:-1)
你知道什么时候打电话给startListening()
,你知道什么时候打电话给stopListening()
。为什么你需要一个听众?
只需设置一个标志,告诉自己你所处的状态(听或不听)。