2017-04-13 23 views
2

經過大量研究後,我仍找不到解決此問題的方法或解決方案。TTS導致IllegalArgumentException:無效int:某些三星設備的android api中的onInit中的「操作系統」23

TTS(文本到語音)導致拋出:IllegalArgumentException:無效INT: 「OS」 的OnInit中使用Android API一些三星設備23

  • 代碼:

    public void TTSInit(){ 
        mTextToSpeech = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() { 
    
        @Override 
        public void onInit(int status) { 
         if (status != TextToSpeech.ERROR) { 
          Log.i(TAG, "entered ttsinit"); 
          mTextToSpeech.setLanguage(Locale.ENGLISH); 
         } 
        } 
        }); 
    } 
    
  • 堆棧跟蹤:

    java.lang.IllegalArgumentException: Invalid int: "OS" 
        at android.os.Parcel.readException(Parcel.java:1624) 
        at android.os.Parcel.readException(Parcel.java:1573) 
        at android.speech.tts.ITextToSpeechService$Stub$Proxy.getVoices(ITextToSpeechService.java:796) 
        at android.speech.tts.TextToSpeech.getVoice(TextToSpeech.java:1769) 
        at android.speech.tts.TextToSpeech.access$1100(TextToSpeech.java:59) 
        at android.speech.tts.TextToSpeech$12.run(TextToSpeech.java:1581) 
        at android.speech.tts.TextToSpeech$12.run(TextToSpeech.java:1531) 
        at android.speech.tts.TextToSpeech$Connection.runAction(TextToSpeech.java:2337) 
        at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:747) 
        at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:737) 
        at android.speech.tts.TextToSpeech.setLanguage(TextToSpeech.java:1531) 
        at com.jisoopaullee.myengvocamanager.MainActivity$3.onInit(MainActivity.java:325) 
        at android.speech.tts.TextToSpeech.dispatchOnInit(TextToSpeech.java:820) 
        at android.speech.tts.TextToSpeech.access$1900(TextToSpeech.java:59) 
        at android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask.onPostExecute(TextToSpeech.java:2251) 
        at android.speech.tts.TextToSpeech$Connection$SetupConnectionAsyncTask.onPostExecute(TextToSpeech.java:2206) 
        at android.os.AsyncTask.finish(AsyncTask.java:651) 
        at android.os.AsyncTask.access$500(AsyncTask.java:180) 
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:158) 
        at android.app.ActivityThread.main(ActivityThread.java:7225) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
    

謝謝。

+0

參考http://stackoverflow.com/questions/26730082/illegalargumentexception-invalid-int-os-with-samsung-tts – sasikumar

+0

沒有工作。相反,我不得不強制設備使用Google TTS而不是Samsung TTS。 – user6676517

回答

0
 int iLcl=mTts.setLanguage(new Locale(stringsLcl[0],stringsLcl[1]));// 
     if(iLcl == TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE){ 
      Voice voiceLcl = mTts.getVoice(); 
      if(null == voiceLcl) 
       l.a(800);// pardon, my logging 
      Set<String> featuresLcl=voiceLcl.getFeatures(); 
      l.a(featuresLcl.size()); 
      for(String sLcl : featuresLcl) 
       l.a("feature = "+ sLcl); 
     }; 
     l.a(stringsLcl[0]+stringsLcl[1]); 

     String myText1 = hashtumPoraMatnash; 
     mTts.speak(myText1, TextToSpeech.QUEUE_FLUSH, null); 
相關問題