我对Android TTS有一个奇怪的问题。我使用locale.getDefault()
获取tts.setLanguage
的默认语言环境。如果我将手机区域设置更改为其他语言,则TTS不会说任何内容。
@Override
public void onInit(int status)
{
if(status == TextToSpeech.SUCCESS)
{
try
{
int result = tts.setLanguage(Locale.getDefault());
Log.e("LANGUAGE", "Result : " + result + " " + Locale.getDefault().getLanguage());
if(result == TextToSpeech.LANG_MISSING_DATA || result == TextToSpeech.LANG_NOT_SUPPORTED)
{
tts.setLanguage(Locale.ENGLISH);
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}
要检查我是否使用按钮点击:
btn_Check.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
String text =et_Check.getText().toString().trim();
if(!text.equals(""))
Log.e("Strnig", text);
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
});
Locale.English
它正在工作,但不适用于任何其他语言。
Logcat输出:
Result : 1 pt