2012-11-15 55 views
0

我嘗試在我的Android 4設備上使用JAPANESE語言。Android TTS安裝語言(如果不存在)

int value = tts.setLanguage(Locale.JAPANESE); 

但值是-2。

這是我的檢查

protected void check(int requestCode, int resultCode, Intent data) { 
     if (requestCode == 0) { 
      switch (resultCode) { 
      case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS: 
       tts = new TextToSpeech(this, this); 
       break; 
      case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA: 
      case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA: 
      case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME: 
       Intent installIntent = new Intent(); 
       installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA); 
       startActivity(installIntent); 
       break; 
      case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL: 
      default: 
       Log.e(TAG, "Got a failure. TTS not available"); 
      } 
     } 
    } 

代碼,我想,如果不存在安裝語言。但應用程序崩潰。這是否正確?我該怎麼辦?如何獲得日語?

+0

還有類似的問題 - http://stackoverflow.com/questions/7365792/japanese-tts-on-android 但是,我想這沒有幫助。請寫更多 - 你的應用如何崩潰。 – bluszcz

回答

1

你開始通過測試結果代碼的方法等於0,然後對結果代碼值開關等(你已經知道等於0):

if (requestCode == 0) { 
     switch (resultCode) { 

寫在你的代碼,如果語言未安裝tts將不會被初始化,任何進一步的引用都會導致應用程序崩潰。

你可以看到正確的方式做到這一點在An introduction to Text-To-Speech in Android

問候。

+0

謝謝。如果語言不被支持,我可以安裝它嗎?或者這只是基本的谷歌TTS或微微TTS。 – senzacionale

+0

對不起,我從來沒有嘗試與其他TTS的。 – Luis