【问题标题】:Android TTS speech synthesis error when screen is lock屏幕锁定时Android TTS语音合成错误
【发布时间】:2017-07-21 01:35:15
【问题描述】:

我正在编写一个需要使用文本转语音 (TTS) 说话的 Android 应用。

tts.speak("Some text", TextToSpeech.QUEUE_ADD, null, UTT_ID);

当屏幕打开时,这工作得很好。

如果屏幕关闭并锁定,Activity 将唤醒屏幕(在创建时)并显示自己(有意)。这是通过

完成的
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

这也很好用。

但是,当 Activity 被创建并在屏幕关闭时显示时...文本到语音将不会产生任何声音。

看日志,我明白了

TTS     : synthesizeWithoutLoadingVoice() failed

谷歌搜索此错误消息没有给出任何结果。 有谁知道我在这里做错了什么?

【问题讨论】:

  • 如果下面的答案不起作用,您需要发布您的代码

标签: android text-to-speech google-text-to-speech


【解决方案1】:

尝试在应用的 onResume 函数中重新创建 TTS。也就是把TTS的init()函数移到onResume()中。

【讨论】:

  • 谢谢!这行得通。事实上,在 onResume 或 onCreate(对于我的用例)中初始化 TTS 引擎可以正常工作。之前的问题……是我创建了一个单例 TTS 对象,以便在许多活动之间共享。显然,一旦某些活动暂停,该对象要么失效,要么进入不良状态。因此,基本上,您只需要在每次有新 Activity 进入前台时重新初始化 TTS 引擎。
猜你喜欢
  • 1970-01-01
  • 2011-11-22
  • 2016-10-07
  • 1970-01-01
  • 2011-04-01
  • 2023-03-05
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多