0

我试图使用:

_tts = new TextToSpeech(this, this);
_tts.setLanguage(new Locale("en"));    

结果总是-2(LANG_NOT_SUPPORTED),所以我认为我在给构造函数的字符串中犯了错误。

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

 _tts.setLanguage(Locale.US);   

但无济于事,结果相同。

为什么我不能更改 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); 
    } 
} 
4

1 回答 1

1

问题是您试图在初始化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);         

  } 
} 
于 2013-06-09T10:10:33.463 回答