1

アンドロイドのpocketsphinx音声認識機能を使用しているパーソナルアシスタントで働いています。これは、特別な言葉が聞かれるたびに私のアプリが動作する方法です。パーソナルアシスタントが返答して仕事をします。私はマイクのリリースにいくつか問題がありました。それがバグかどうかはわかりません。マイクがまだその単語を探していて、テキストを使って答えるアプリケーションを閉じると、ときどき発生するだけです。画面が消えていても。ビデオを録音しようとすると、マイクは別のアプリケーションで使用されています。だから私は再びマイアプリを開いて、マイクを解放するためにアプリを閉じる必要があります。私の知る限り、リソースを解放するライフサイクルはonStop、onPause、およびonDestroyだけです。それは誤動作している私の携帯電話にすることはできません私は2つの異なる携帯電話でアプリケーションをテストし、まだ時々それは彼らのボットで起こる。どんな助けもありがとう。 これは、マイク、カメラ、およびテキストを音声から解放する方法です。事前に感謝他のアプリのためにマイクロフォンが公開されないことがあります

private edu.cmu.pocketsphinx.SpeechRecognizer recognizer; 



    @Override 
      public void onPause() { 
       super.onPause(); 
      if (tts != null) { 
       tts.shutdown(); 
       } 
       if (camera != null) { 
        camera.release(); 
        camera = null; 
       } 
       if (recognizer != null) { 
        recognizer.stop(); 
        recognizer.cancel(); 
        recognizer.shutdown(); 
        recognizer = null; 
       } 

      } 

     @Override 
      protected void onStop() { 
       super.onStop(); 
      if (tts != null) { 
       tts.shutdown(); 
       } 
       if (camera != null) { 
        camera.release(); 
        camera = null; 
       } 
       if (recognizer != null) { 
        recognizer.cancel(); 
        recognizer.shutdown(); 
        recognizer = null; 
       } 
      } 
    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     if (tts != null) { 
      tts.shutdown(); 
     } 
     if (camera != null) { 
      camera.release(); 
      camera = null; 
     } 
     if (recognizer != null) { 
      recognizer.cancel(); 
      recognizer.shutdown(); 
     } 

    } 
+0

onPauseの停止後にキャンセルするのはおそらく良い考えではありません。 –

答えて

1

ここにonbackpressedメソッドをオーバーライドして、そこにurレコーダーの停止コードを投稿してください。最後に最後にyouticivity.finishを追加します。 これはバックを押すと直ちにウル活動を破壊し、レコーダーを停止する必要があります

+0

私は今それを試みます。私はそれを試してあなたに知らせます。 onbackpressedのようなホームボタンプレスの方法もありますか?ありがとう – sptBot

+0

onUserLeaveHint()を試してみてください。これは、電話に出席し、ホーンボタンなどを押すなど、中断されているアプリのインスタンスを取ります。 –

+0

私はすでにonBackPressedメソッドを実装しています。私はしばらくの間、オンパレスをテストしなければならないでしょう。私はそれが時々起こると言ったように。マイクがどこにリリースされていないかを調べようとしています。私はonStop、onPause、onDestroyが他のアプリのリソースを解放するのに十分であると思った。 onUserLeaveHint()は、[リンク](https://stackoverflow.com/questions/6612058/android-onbackpressed-onuserleavehint)@AndyWの回答に基づいてonBackpressedも処理しますか? – sptBot

関連する問題