In Android TextToSpeech, wie kommt es, dass wir wissen, entweder Sprache ist fertig. Ich möchte das Symbol nach Beendigung der Sprachausgabe ändern. Ich habe tts.speak() im Button Onclick Listener deklariert. Ich benutze Thread postdelayed Handler, um das Symbol nach einiger Zeit zu ändern. aber der zu lesende Text ändert sich zu verschiedenen Zeiten. Es hat nicht funktioniert. CheckThememart(), ChangeThemeStop() sind Funktionen, um das Symbol zu ändern.TextToSpeech API
i erklärte folgendes in OnCreate():
tts = new TextToSpeech(getContext(), new
TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if (status != TextToSpeech.ERROR) {
tts.setLanguage(Locale.UK);
tts.speak("",TextToSpeech.QUEUE_FLUSH,null);
}
Knopf-OnClickListener:
if (!tts.isSpeaking()) {
CheckThemeStart();
tts.speak(plainText, TextToSpeech.QUEUE_FLUSH, null);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//change icon after spoken
CheckThemeStop();
}
}, 15000);
} else {
CheckThemeStop();
tts.stop();
}
Haben Sie setOnutteranceProgressListener getestet? –
Mögliche Duplikate von [Wie zu wissen, wenn TTS fertig ist?] (Https://stackoverflow.com/questions/4658376/how-to-know-when-tts-is-finished) –
Ich versuchte mit setOnUtterenceProgressListener. aber es hat nicht geklappt, erklärte ich die unten neben tts.speak(): tts.setOnUtteranceCompletedListener (neu TextToSpeech.OnUtteranceCompletedListener() { \t \t \t \t \t \t \t @Override \t \t \t \t \t \t \t Öffentlichkeit nichtig onUtteranceCompleted (String utteranceId) { \t \t \t \t \t \t \t \t CheckThemeStop(); \t \t \t \t \t \t \t} \t \t \t \t \t \t}) –