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

时间:2012-02-27 22:05:41

标签: android text-to-speech

根据this answer中的提示,我在onActivityResult()时调用 setEngineByPackageName 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");          

但无论我是否在文字转语音设置中选中或取消选中Always use my settings,我都会获得 pico 默认引擎!

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

(我知道 setEngineByPackageName 已被弃用,因为它在TTS引擎初始化时没有通知调用者,但是我需要支持API 8,所以这个方法是我唯一的选择。力矩)

1 个答案:

答案 0 :(得分:5)

你说你在onActivityResult()中调用了setEngineByPackageName。这是错误的地方。

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