Android TextToSpeech에서 어떻게 연설이 완료되었는지 알 수 있습니다. 연설이 끝난 후 아이콘을 변경하고 싶습니다. Button Onclick Listener에서 tts.speak()을 선언했습니다. 나는 스레드 postdelayed 처리기를 사용하여 잠시 후 아이콘을 변경합니다. 그러나 읽는 텍스트는 다른 시간에 다른 변화를 보입니다. 그것은 효과가 없습니다. CheckThemestart(), ChangeThemeStop()은 아이콘을 변경하는 함수입니다.TextToSpeech API
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를 :
내가는에서 OnCreate()에서 다음과 같은 선언 TTS 시작 및 종료 시간과 오류 처리에 대한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에()를 선언 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}) –