【问题标题】:Can we override Device's TTS engine settings programmatically?我们可以以编程方式覆盖设备的 TTS 引擎设置吗?
【发布时间】:2012-06-08 05:33:19
【问题描述】:

我必须在 android 中以编程方式覆盖设备的文本转语音设置,该怎么做?

完整的用例是: 我的应用程序正在根据用户的输入设置应用程序语言,即:如果用户选择法语作为语言,则应用程序将显示所有文本并仅以法语宣布文本。但问题在于设备的 TTS 引擎设置您可以使用选项“始终”覆盖应用程序设置使用我的设置”复选框,所以有什么方法可以通过我的应用程序以编程方式选中或取消选中复选框,所以我需要从应用程序做的是当应用程序要宣布文本时,在宣布它将取消选中复选框和然后宣布它并再次检查复选框。

顺便说一句,我正在使用 android 2.1 版本和三星 Galaxy 标签开发应用程序。

请提供一些方法来实现它。

问候, 皮克斯

【问题讨论】:

标签: android text-to-speech


【解决方案1】:

您不必更改系统设置,只需在您的 TTS 实例上调用 setLanguage()setEngineByPackageName()。通常,您无法从应用程序更改系统设置,TTS 也是如此。

【讨论】:

  • 似乎有很多需要覆盖"Always Use my Settings" 复选框。 This comment 建议不可能覆盖该系统设置。这是有道理的,因为否则它会违背“始终使用 my 设置”的目的。你能证实这一点吗?暂时 +1。
  • 您必须检查源代码才能确认,但由于这是系统设置,我认为您无法覆盖它。顺便说一句,这似乎在 Jelly Bean 中消失了。
  • 是的,我注意到 ICS 中也有此设置(运行 Android 4.0.4 的三星 Galaxy Nexus)。顺便说一句,FROYO 2.2 中的 how to tell whether a specific TTS engine is checked (enabled) 有什么想法吗?
【解决方案2】:

就 TTS 速度而言,您无法覆盖设备设置,这很荒谬,默认“正常”太快而“慢”太慢......如果我们有滑动调整,就像在 TTS 应用程序中一样,那么就没有问题了。

【讨论】:

  • TTS 引擎设置有一个复选框选项“始终使用我的设置”,我只想选中/启用 - 当我的应用程序将宣布时取消选中/禁用它,并在完成宣布后再次恢复以前的值...我只是想知道是否可以从我的申请中更改。请分享您对此的看法。
猜你喜欢
  • 1970-01-01
  • 2011-10-03
  • 2010-12-07
  • 1970-01-01
  • 2021-04-22
  • 1970-01-01
  • 1970-01-01
  • 2012-01-13
  • 1970-01-01
相关资源
最近更新 更多