Java 无法更改Android默认TextToSpeech中的语言

Java 无法更改Android默认TextToSpeech中的语言,java,android,text-to-speech,Java,Android,Text To Speech,我试图使用: _tts = new TextToSpeech(this, this); _tts.setLanguage(new Locale("en")); 结果总是-2(不支持LANG_),所以我认为我在给构造函数的字符串中犯了一个错误 然后我试着使用(显然支持英语,不是吗?) 但是没有用,结果也是一样的 为什么我不能更改TTS引擎的语言 我的设备的Android版本是2.3,TTS引擎是PICO public void onInit(final int status) {

我试图使用:

_tts = new TextToSpeech(this, this);
_tts.setLanguage(new Locale("en"));    
结果总是-2(不支持LANG_),所以我认为我在给构造函数的字符串中犯了一个错误

然后我试着使用(显然支持英语,不是吗?)

但是没有用,结果也是一样的

为什么我不能更改TTS引擎的语言

我的设备的Android版本是2.3,TTS引擎是PICO

public void onInit(final int status) { 
    if (status == TextToSpeech.SUCCESS) { 
      _init = true; Log.d(TAG, "TTS init completed succesfully.");        
      setQueueMode(TextToSpeech.QUEUE_FLUSH); 
    } 
} 

问题在于,您试图在初始化TTS引擎之前设置语言,而不是在创建对象之后设置语言,请在
onInit
回调中执行此操作

public void onInit(final int status) { 
  if (status == TextToSpeech.SUCCESS) { 
    _init = true;
     Log.d(TAG, "TTS init completed succesfully.");  
     int result = _tts.setLanguage(Locale.US);         

  } 
} 
public void onInit(final int status) { 
  if (status == TextToSpeech.SUCCESS) { 
    _init = true;
     Log.d(TAG, "TTS init completed succesfully.");  
     int result = _tts.setLanguage(Locale.US);         

  } 
}