2016-07-28 47 views
0

我有一個按鈕,當按下時,我希望在使用文本到語音之前播放「正確」的聲音。但是,文本到語音在「正確」聲音播放之前開始,因此兩個聲音重疊。一旦「正確」的聲音播放完畢,我怎樣才能將文字轉換成語音?任何幫助表示讚賞。非常感謝!!在使用文本到語音前獲取聲音完成播放

public void onClick(View view){ 

     Button btn = (Button) view; 
     TextView tv = (TextView) findViewById(R.id.animal_text); 
     textViewString = tv.getText().toString(); 
     final MediaPlayer mp = MediaPlayer.create(this, R.raw.correct); 

     if (btn.getText().equals(textViewString)) { 

      mp.start(); 

      Resources res = getResources(); 
      String[] myString = res.getStringArray(R.array.englishAnimalArray); 
      String q = myString[r_generator.nextInt(myString.length)]; 
      tv.setText(q); 
      textViewString = tv.getText().toString(); 
      if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { 
       tts.speak(textViewString, TextToSpeech.QUEUE_FLUSH, null); 
      } else { 
       tts.speak(textViewString, TextToSpeech.QUEUE_FLUSH, null, null); 
      } 
     } 
+0

我用'requestAudioFocus'暫停音樂,使用TTS,然後恢復音樂,可能會對你有所幫助https://developer.android.com/training/managing-audio/audio-focus。 HTML – pizzaisdavid

回答