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);
}
}
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