Android TextToSpeechでは、どのように音声が終了したかわかります。私は演説が終わった後にアイコンを変えたい。 Button Onclick Listenerでtts.speak()を宣言しました。私はある時間後にアイコンを変更するためにスレッドのポスト遅延ハンドラを使用しました。しかし、読んでいるテキストは異なる時代に違っています。それはうまくいきませんでした。 CheckThemestart()、ChangeThemeStop()はアイコンを変更する関数です。TextToSpeech API
i)は(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);
}
ボタン-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();
}
setOnUtteranceProgressListenerを試しましたか? –
[TTSがいつ終了したかを知る方法]?(https://stackoverflow.com/questions/4658376/how-to-know-when-tts-is-finished) –
私はsetOnUtterenceProgressListenerで試しました。 tts.setOnUtteranceCompletedListener(新しい TextToSpeech.OnUtteranceCompletedListener(){ \t \t \t \t \t \t \t @Override \t \t \t \t \t \t \t公共:それは働いたdidntの、私は以下の次のtts.speakに()を宣言しましたボイドonUtteranceCompleted(文字列utteranceId){ \t \t \t \t \t \t \t \t CheckThemeStop(); \t \t \t \t \t \t \t} \t \t \t \t \t \t}) –