【发布时间】:2015-10-07 00:50:58
【问题描述】:
我正在尝试使用isLanguageAvailable() 检查某种语言是否可用于 TTS。
该方法可能的返回值如下。
LANG_AVAILABLE
LANG_COUNTRY_AVAILABLE
LANG_COUNTRY_VAR_AVAILABLE
LANG_MISSING_DATA
LANG_NOT_SUPPORTED
很容易理解,我不必关心最后两个的名字。但是即使在阅读了here的解释后,我仍然很困惑其余的意思。
public static final int LANG_AVAILABLE
表示该语言可用于该语言的语言环境,但 不是国家和变体。
public static final int LANG_COUNTRY_AVAILABLE
表示该语言和国家/地区可用的语言 由语言环境指定,但不是变体。
public static final int LANG_COUNTRY_VAR_AVAILABLE
表示语言完全符合区域设置的规定。
这是什么意思?所有三个都可用于 TTS?
我不明白“按语言环境,但不是国家和变体”这句话。
我正在使用类似这样的代码测试 TTS。
for( Locale each : Locale.getAvailableLocales() )
if( TextToSpeech.LANG_AVAILABLE == myTTS.isLanguageAvailable(each)
&& SOME_OTHER_ADDITIONAL_CONDITIONS ) {
myTTS.setLanguage(each);
break;
}
如您所见,我只放了一个常量 LANG_AVAILABLE。
我是否也需要另外两个常量,以防万一?
【问题讨论】:
标签: java android locale constants text-to-speech