在我的应用程序中,我在实例化TextToSpeech后调用TextToSpeech.getLanguage()(根据LogCat约为800毫秒),但有时(并非总是)返回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错误吗? 或者我做错了什么?
我在我的应用程序的主要活动中实例化了BTW,TextToSpeech:
new TextToSpeech(this, this);
实例化和对TextToSpeech.getLanguage()的调用都是在同一个线程中进行的(因此保证了调用顺序)。
答案 0 :(得分:2)
你必须在onInit()中调用getLanguage(),有时需要几秒钟才能调用onInit()。
答案 1 :(得分:1)
我今天也在运行Android 4.1.1的华硕TF700T上发现了这个bug。我试图通过再次调用getLanguage()
来解决问题,正如永恒学习者在评论中所建议的那样,但无论我多少次调用它,它仍然会返回null。
对我来说,最简单的解决方法是放弃当前破碎的TextToSpeech实例并创建一个新实例。第二个实例似乎可靠地工作。