2012-02-19 6 views
1

私は、テキスト読み上げアプリケーションで作業しており、onUtteranceCompletedはトリガーされません。Androidの音声テキスト:onUtteranceCompleted()が実行されない

public class MyActivity extends Activity implements OnInitListener, OnUtteranceCompletedListener { 

     private TextToSpeech tts; 
     private HashMap<String, String> hashAudio; 

     public void onInit(int status) { 
      if (status == TextToSpeech.SUCCESS) { 

       //defining hashAudio, its music! 
       this.hashAudio = new HashMap<String, String>(); 
       this.hashAudio.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC)); 
       this.tts.setOnUtteranceCompletedListener(this); 

       this.readEnglish(); 
      } 
     } 


    public void readEnglish(){ 
      Log.v("MESSAGE", "reading english"); //gets shown 

      this.hashAudio.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "english"); 
      this.tts.setLanguage(Locale.US); 
      this.tts.speak("TEST", TextToSpeech.QUEUE_FLUSH, this.hashAudio); 
      //gets read 
     } 

    public void onUtteranceCompleted(String uttId) { 
      Log.v("MESSAGE", "Uterrance Completed"); 
      //never see this message 
     } 

は、誰もがなぜ知っているだろう: ここに私のコードのいくつかはありますか?私も慎重にAndroidのドキュメントを読んだ。:(私はいくつかのソリューションをここでいくつかのトピックを行ってきたが、何も働いていない:(。

ので、私は自分自身をそれを考え出したあなたに[OK]を

答えて

3

ありがとう、私のコードでの唯一の問題は、ハッシュマップがインスタンス化された後

this.tts.setOnUtteranceCompletedListener(this); 

が呼び出されたことだったので、最終的なコードは次のようになります。

this.tts.setOnUtteranceCompletedListener(this); 
this.hashAudio = new HashMap<String, String>(); 
this.hashAudio.put(TextToSpeech.Engine.KEY_PARAM_STREAM,String.valueOf(AudioManager.STREAM_MUSIC)); 
関連する問題