2 回答
![?](http://img1.sycdn.imooc.com/533e4c9c0001975102200220-100-100.jpg)
TA贡献1765条经验 获得超5个赞
你得到空值,因为TextToSpeech需要时间来初始化。这就是为什么你必须OnInitListener在初始化期间提供实现。
tts = new TextToSpeech(context, new TextToSpeech.OnInitListener(){
@Override
public void onInit(int status) {
// Now you can use tts
Set<Locale> loc = tts.getAvailableLanguages();
Object[] objloc = loc.toArray();
};
});
该方法需要使用 TextToSpeech 作为类变量,因此您需要某种回调,以从GetLanguages方法中获取结果。
![?](http://img1.sycdn.imooc.com/545850a00001fdd002200220-100-100.jpg)
TA贡献1780条经验 获得超3个赞
改用这个:
Locale[] locales = Locale.getAvailableLocales();
List<Locale> localeList = new ArrayList<Locale>();
for (Locale locale : locales) {
int res = tts.isLanguageAvailable(locale);
if (res == TextToSpeech.LANG_COUNTRY_AVAILABLE) {
localeList.add(locale);
}
}
return Arrays.toString(localeList);
添加回答
举报