0
어떤 이유로 나는 onutteranceCompleted에서 PhoneCallListener를 포함하는 메소드를 호출 할 수 없습니다. 오류 메시지가 없으며 스크립트 실행을 중지하는 것 같습니다. 일부 로그를 추가했으며 PhoneCallListener를 사용하여 setUpPhone의 "여기"로그인에 도달합니다. PhoneCallListener가 없으면 최종 로그 "전화 설정"에 도달합니다. 다음은 구현 된 코드 예입니다. PhoneCallListener가 실행을 중지하는 이유onUtteranceCompleted는 PhoneCallListener를 허용하지 않습니다
@Override
public void onInit(int status)
{
if(status == TextToSpeech.SUCCESS)
{
tts.setOnUtteranceCompletedListener(this);
int result = tts.setLanguage(Locale.US);
if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)
{
//Language not supported
}
else
{
speakOut();
}
}
}
private void speakOut()
{
HashMap<String, String> myHashAlarm = new HashMap<String, String>();
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "Text to Speech");
tts.speak("blah blah", TextToSpeech.QUEUE_FLUSH, myHashAlarm);
}
@Override
public void onDestroy()
{
if(tts != null)
{
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
public void onUtteranceCompleted(String utteranceId)
{
Log.i("TEST", utteranceId);
setUpPhone();
Log.i("TEST", "phone set up"); //this is never reached
}
private void setUpPhone()
{
Log.i("TEST", "here");
PhoneCallListener phoneListener = new PhoneCallListener(); //If I remove this line, the log "phone set up" displays.
}