无法在Android默认TextToSpeech中更改语言

时间:2013-06-09 08:23:00

标签: java android text-to-speech

我试图使用:

_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); 
    } 
} 

1 个答案:

答案 0 :(得分: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);         

  } 
}