【发布时间】:2018-03-29 22:33:24
【问题描述】:
在 Android TextToSpeech 中,我们怎么知道语音已经完成。我想在演讲结束后更改图标。我在 Button Onclick Listener 中声明了 tts.speak()。我使用线程后延迟处理程序在一段时间后更改图标。但是阅读的文字在不同的时间会有所不同。它没有成功。 CheckThemestart(),ChangeThemeStop() 是改变图标的函数。
我在 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);
}
Button-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 了吗?
-
我尝试使用 setOnUtterenceProgressListener。但它没有成功,我在 tts.speak() 旁边声明了以下内容: tts.setOnUtteranceCompletedListener(new TextToSpeech.OnUtteranceCompletedListener() { @Override public void onUtteranceCompleted(String utteranceId) { CheckThemeStop(); } })