在我的應用程序,我稱之爲TextToSpeech.getLanguage()實例文字轉語音(根據logcat的〜800毫秒)後好了,但它有時(並不總是)返回null,儘管在系統的文字轉語音設置正確設置語言:爲什麼TextToSpeech.getLanguage()*有時*會返回null?
System Settings > Language & input >
Text-to-speech output > Google Text-to-speech > English (United Kingdom)
這隻發生在果凍豆(Android 4.1.1)。 在Android 2.2中不會發生。
這是一個已知的Android錯誤? 或者我做錯了什麼?
我實例,順便說一句,文字轉語音在我的應用程式和主要活動:
new TextToSpeech(this, this);
而且兩者實例化和調用TextToSpeech.getLanguage()都在同一個線程(因此調用的順序是保證)製成。
或回調後任何時間表示TTS服務已完成初始化。 – alanv
@alanv你是絕對正確的,他需要在onInit()中設置一個標誌爲true,並且在調用getLanguage()之前檢查這個標誌是否爲true() –
@alanv我實際上在onInit()中調用它兩次:第一次,它返回null。第二次返回eng_USA,儘管設置顯示eng_GBR已設置。再一次,*有時*它在第一次和第二次調用中確實返回eng_GBR。看起來像某種競爭條件? **爲什麼**發生這種情況?有什麼可以解釋這一點? –