在Android TextToSpeech中,我们怎么知道Speech是否完成。演讲结束后我想改变图标。我在Button Onclick Listener中声明了tts.speak()。我使用线程postdelayed处理程序一段时间后更改图标。但是要阅读的文本在不同的时间会有所不同。它没有解决。 CheckThemestart(),ChangeThemeStop()是改变图标的函数。TextToSpeech API
我宣布的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.speak(): tts.setOnUtteranceCompletedListener(新 TextToSpeech.OnUtteranceCompletedListener(){ \t \t \t \t \t \t \t @覆盖 \t \t \t \t \t \t \t公众void 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}) –