在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}) –