5

在我的应用程序中,我在实例化 TextToSpeech(根据 LogCat 约为 800 毫秒)之后很好地调用了TextToSpeech.getLanguage( ),但有时(并非总是)返回 null,尽管在系统的 TextToSpeech 设置中正确设置了语言:

System Settings > Language & input > 
  Text-to-speech output > Google Text-to-speech > English (United Kingdom)

这只发生在 Jelly Bean (Android 4.1.1 ) 中。它不会发生在 Android 2.2 中。

这是一个已知的 Android 错误吗?还是我做错了什么?

我在我的应用程序的主要活动中实例化,顺便说一句,TextToSpeech:

new TextToSpeech(this, this); 

并且实例化和对 TextToSpeech.getLanguage()的调用都是在同一个线程中进行的(因此保证了调用的顺序)。

4

2 回答 2

2

你必须在onInit()中调用getLanguage(),有时onInit()需要几秒钟才能被调用。

于 2013-08-29T01:45:07.393 回答
1

我今天也在运行 Android 4.1.1 的华硕 TF700T 上发现了这个错误。我尝试getLanguage()按照 Eternal Learner 在评论中建议的方式再次调用来解决该问题,但无论我调用多少次,它仍然返回 null。

对我来说最简单的解决方法是放弃当前损坏的 TextToSpeech 实例并创建一个新实例。第二个实例似乎可靠地工作。

于 2014-10-29T16:11:02.013 回答