2016-07-28 17 views
0

Ich habe eine Schaltfläche, die, wenn gedrückt wird, möchte ich ein "korrektes" Sound spielen, bevor Text to Speech verwendet wird. Während der Text-zu-Sprache-Vorgang jedoch beginnt, bevor der "richtige" Sound wiedergegeben wird, werden die beiden Sounds überlappend wiedergegeben. Wie kann ich Text-zu-Sprache starten, wenn der 'richtige' Sound abgespielt wurde? Jede Hilfe wird geschätzt. Danke vielmals!!Holen Sie den Sound vollständig zu spielen, bevor Sie Text zu Sprache verwenden

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

ich verwendet habe, 'requestAudioFocus' Musik zu pausieren, verwenden tts, dann wieder zu starten, könnte es hilfreich https://developer.android.com/training/managing-audio/audio-focus für Sie sein. html – pizzaisdavid

Antwort