TextToSpeech.setEngineByPackageName()不设置任何内容

an0*_*00b 4 android text-to-speech

继在提示这个答案,我放在一个电话setEngineByPackageNameonActivityResult(),当requestCode == REQ_TTS_STATUS_CHECK && TextToSpeech.Engine.CHECK_VOICE_DATA_PASS:

  tts = new TextToSpeech(this, this);
  tts.setEngineByPackageName("com.ivona.tts.voicebeta.eng.usa.kendra");          
Run Code Online (Sandbox Code Playgroud)

但无论是检查还是取消选中Always use my settings文本到语音设置,我总是得到pico默认引擎!

是的,我故意将微微引擎设置为默认值,以便我可以通过上述提示测试覆盖它.但是那种API方法似乎根本不起作用,或者......我错过了什么?

(我知道setEngineByPackageName已被弃用,因为它在初始化TTS引擎时不通知调用者,但我需要支持API 8,所以此方法是我目前的唯一选择)

Ete*_*ner 5

你说你把调用放在了setEngineByPackageName中onActivityResult().这是一个错误的地方.

setEngineByPackageName,就像getDefaultEngine一样,在到达之前不得调用onInit().