【问题标题】:TextToSpeech.setEngineByPackageName() doesn't set anythingTextToSpeech.setEngineByPackageName() 没有设置任何东西
【发布时间】:2012-02-28 11:51:54
【问题描述】:

按照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 默认引擎!

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

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

【问题讨论】:

    标签: android text-to-speech


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-19
      • 2012-07-26
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      相关资源
      最近更新 更多