2017-03-01 165 views
0

我正在編寫一個需要使用文本轉語音(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  : synthesizeWithoutLoadingVoice() failed 

谷歌搜索此錯誤信息給什麼。 任何人都知道我在這裏做錯了什麼?

+0

如果以下答案不起作用,您需要發佈您的代碼 – brandall

回答

1

嘗試在應用程序的onResume函數中重新創建TTS。那就是將TTS的init()函數移動到onResume()。

+0

謝謝!這工作。 事實上,初始化onResume或onCreate中的TTS引擎(對於我的用例)工作正常。 之前的問題是我創建了一個單獨的TTS對象,以便在許多活動中共享。很明顯,一旦某些活動暫停,對象就會失效或進入不良狀態。 所以,基本上,每當新的活動進入前臺時,您只需要重新初始化TTS引擎。 – thammaknot