2012-02-27 78 views
4

this answer小費,我放在一個電話setEngineByPackageNameonActivityResult(),當requestCode == REQ_TTS_STATUS_CHECK && TextToSpeech.Engine.CHECK_VOICE_DATA_PASSTextToSpeech.setEngineByPackageName()不設置任何

tts = new TextToSpeech(this, this); 
    tts.setEngineByPackageName("com.ivona.tts.voicebeta.eng.usa.kendra");   

但不管我是否選中了Always use my settings在文本到語音的設置,我總是得到微微默認引擎!

是的,我故意設置微微引擎爲默認,這樣我可以測試由aforementioned tip覆蓋它。但是,該API方法似乎根本沒有工作,或者...我錯過了什麼?

(我知道setEngineByPackageName已過時,因爲它不告知來電者當TTS引擎已初始化,但我需要支持API 8,所以這個方法是我目前唯一的選擇)

回答

5

你說你打的電話,以setEngineByPackageName在onActivityResult()。這是做錯的地方。

setEngineByPackageName,就像getDefaultEngine,不能達到onInit()之前調用。