Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何动态设置TTS引擎的区域设置?_Android - Fatal编程技术网

Android 如何动态设置TTS引擎的区域设置?

Android 如何动态设置TTS引擎的区域设置?,android,Android,我有一个要求,用户可以选择语言,例如英语和法语 应用程序将有一组活动和一个后台服务,所以当应用程序启动时,服务将启动,TTS引擎将使用默认语言初始化为服务中的英语(onInit()方法)。我必须设置在特定活动开始时由用户设置的语言 那么,如何在运行时在TTS引擎中配置所选语言环境呢 我的观察结果是,当服务启动时,只有TTS引擎在onInit()方法中使用默认语言初始化,而at实例活动不可用,因此我们将没有任何配置的语言详细信息,所以我们不能这样做,但我面临的实际问题是第二次以后如何更改TTS引擎

我有一个要求,用户可以选择语言,例如英语和法语

应用程序将有一组活动和一个后台服务,所以当应用程序启动时,服务将启动,TTS引擎将使用默认语言初始化为服务中的英语(onInit()方法)。我必须设置在特定活动开始时由用户设置的语言

那么,如何在运行时在TTS引擎中配置所选语言环境呢

我的观察结果是,当服务启动时,只有TTS引擎在onInit()方法中使用默认语言初始化,而at实例活动不可用,因此我们将没有任何配置的语言详细信息,所以我们不能这样做,但我面临的实际问题是第二次以后如何更改TTS引擎的区域设置(当用户从活动中选择语言时)因为我们不能在onInit()方法之外使用mTts.setLanguage(Locale.FRENCH),就好像您调用它一样,它也不会反映TTS中的更改


所以请帮我解决这个问题。

我在Android开发者博客上找到了这篇博文:

他们说:

加载语言与调用语言一样简单,例如:

mTts.setLanguage(Locale.US)

加载并将语言设置为英语,如“美国”国家所说

我没有用Java编写TTS应用程序的经验,但在我看来,在构造或初始化TTS引擎之前,您可以提示用户使用他们喜欢的语言。使用该提示,您应该能够将一个值传递给onInit()方法,该方法将指示您使用的语言包

当用户更改语言时,您是否有任何原因不能将TTS引擎重新初始化为新语言


我希望这个答案是有帮助的。祝你的项目好运。

onInit是一种回调方法,它将在服务首次启动时被调用,并且将由android系统处理,因此我们不能再次调用它来重新初始化。但是是的,setLanguage方法帮助我解决了这个问题。非常感谢你的帮助。