0

ユーザーの発話を聞いているインテントを止めることはできますか? たとえば、次のリスナーがあります。

  @Override
            public boolean onTouch(View v, MotionEvent event) {
                Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                switch(event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "es");
                        intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());
                        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
                        intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1);
                        return true;
                    case MotionEvent.ACTION_UP:
                        //Code to stop listening user speech

                        return true; 
            }

私の考えでは、Whatsapp のマイク ボタンのように、ユーザーが特定のボタンを押し続けて、アプリが音声を聞くようにする必要があります。

編集

@brandallが私に指示したことはすでに試したと思います。コードの変更は次のとおりです。

  public boolean onTouch(View v, MotionEvent event) {
                    SpeechRecognizer speechRecognizer = createSpeechRecognizer(context);
                    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
                    switch(event.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "es");
                            intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName());
                            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH);
                            intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1);
                            speechRecognizer.startListening(intent);
                            startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE);
                            return true; 
                        case MotionEvent.ACTION_UP:
                            speechRecognizer.stopListening();
                            return true;
                    }
                    return false;
                }

            });
4

0 に答える 0