2017-03-01 2 views
0

저는 TTS (TTS)를 사용하여 말해야하는 Android 앱을 쓰고 있습니다.화면이 잠길 때 Android TTS 음성 합성 오류가 발생했습니다.

tts.speak("Some text", TextToSpeech.QUEUE_ADD, null, UTT_ID); 

화면이 켜지면 완벽하게 작동합니다.

화면이 꺼져있는 경우, 작업은 화면을 깨우면 (생성시) 화면에 표시되고 의도적으로 표시됩니다. 이 작업은

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
       WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON | 
       WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

으로 이루어집니다.

그러나 화면이 꺼져있을 때 활동이 만들어지고 표시되면 ... TTS (텍스트 음성 변환)로 소리가 나지 않습니다.

로그를 보면, 내가

TTS  : synthesizeWithoutLoadingVoice() failed 

이 오류 메시지가 아무것도 포기하지 인터넷 검색을 참조하십시오. 누구나 내가 뭘 잘못했는지 알아?

+0

아래의 답변이 작동하지 않는 경우 코드를 게시해야합니다. – brandall

답변

1

앱의 onResume 기능에서 TTS를 재생성 해보세요. 즉, TTS의 init() 함수를 onResume()으로 이동하는 것입니다.

+0

감사합니다! 이 작동합니다. 사실, onResume 또는 onCreate (내 사용 사례의 경우)에서 TTS 엔진을 초기화해도 문제가 없습니다. 이전의 문제는 많은 액티비티에서 공유 할 싱글 톤 TTS 개체를 만들었다는 것입니다. 그 활동의 일부가 일시 중지되면 분명히 그 물건이 무효화되거나 나쁜 상태가 된 것 같습니다. 기본적으로 새로운 활동이 포 그라운드로 올 때마다 TTS 엔진을 다시 초기화하면됩니다. – thammaknot

관련 문제