3

SpeechRecognizerクラスには、isRecognitionAvailable()、startListening()、stopListening()などのメソッドが含まれていますが、現在リッスンしているかどうかを確認するメソッドはありませ

私もRecognitionListenerクラスをチェックしましたが、そのような「isListening()」メソッドもありません。

なぜですか?(たとえば、役に立たない/意味がない、アプリプログラマーによる実装が簡単すぎるなど)

この関数を提供するSDKAPIが実際にない場合、そのような「isListening()」メソッドを実装するための最良の方法は何ですか?

onReadyForSpeech()でブール値を設定し、onEndOfSpeech()でクリアするのと同じくらい簡単ですか?

それとも、カウンターやアトミックカウンターなど、もっと洗練されたものが必要ですか?

4

2 に答える 2

4

まず、「リスニング」を定義します。それはあなたのポイントから始まりますか?

  • startListening()と呼ばれますか?
  • onReadyForSpeech()を受け取りましたか?

これらの2つの(有効で有用な)シナリオの違いが、実装をAPIユーザーに任せる理由だと思います。

次に、@ HoanNguyenが言ったように、RecognitionListenerでブールデータメンバーを宣言します。

  • startListening()を呼び出した直後、またはonReadyForSpeech()を入力した直後に設定します。あなたに電話ですよ...
  • onResults()、onError()でリセットし、SpeechRecognizer.cancel()を呼び出し た直後にリセットします。

注:@HoanNguyenが正しく指摘しているように、stopListening()を呼び出した直後にブール値をリセットするのは正しくありません。

于 2013-03-26T21:07:29.337 に答える
-1

いつ電話したか、いつ電話startListening()したかがわかりますstopListening()。なぜリスナーが必要なのですか?

フラグを設定するだけで、現在の状態(聞いているかどうか)を確認できます。

于 2013-03-25T19:49:34.443 に答える