2 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
你得到空值,因?yàn)門extToSpeech需要時(shí)間來初始化。這就是為什么你必須OnInitListener在初始化期間提供實(shí)現(xiàn)。
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 作為類變量,因此您需要某種回調(diào),以從GetLanguages方法中獲取結(jié)果。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
改用這個(gè):
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);
添加回答
舉報(bào)