2014-11-04 11 views
25

Sto utilizzando Text to speech nella mia applicazione Android. Funziona bene con Google TTs e espeak, Ma quando ho usato con Samsung TTS dà seguente eccezione.IllegalArgumentException: int non valido: "OS" con Samsung tts

java.lang.IllegalArgumentException: Invalid int: "OS" 
at android.os.Parcel.readException(Parcel.java:1429) 
at android.os.Parcel.readException(Parcel.java:1379) 
at android.speech.tts.ITextToSpeechService$Stub$Proxy.isLanguageAvailable(ITextToSpeechService.java:482) 
at android.speech.tts.TextToSpeech$10.run(TextToSpeech.java:1084) 

at android.speech.tts.TextToSpeech$10.run(TextToSpeech.java:1081) 
at android.speech.tts.TextToSpeech$Connection.runAction(TextToSpeech.java:1329) 

at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:570) 

at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:561) 

at android.speech.tts.TextToSpeech.isLanguageAvailable(TextToSpeech.java:1081) 
+3

Per me dispositivo Samsung restituisce true su isLanguageAvailable ma non esattamente con questa eccezione in seguito durante la setLanguage() –

+2

@MartinVysny ha qualche fortuna nel trovare una soluzione alternativa? Sto avendo lo stesso problema con setLanguage (...). – Dogcat

+0

Nessuna fortuna, mi dispiace. Tutto quello che ho pensato è di predicare agli utenti, di spammare Samsung per risolvere questo problema;) –

risposta

3

Ho trovato che ricevo questa eccezione anche quando cerco di fare qualcosa di simile TextToSpeech.getDefaultVoice, o TextToSpeech.getVoices() o TextToSpeech.getVoice(). Ho lavorato su questo non chiamandoli, e invece lavorando attraverso le impostazioni internazionali predefinite per ottenere ciò che stavo cercando di ottenere tramite l'oggetto Voices.

Quindi, nel mio caso ho voluto conoscere il Locale in modo da poter selezionare una lingua, così ho fatto la seguente

  Locale lTest = Locale.getDefault(); 
      res = mTTS.isLanguageAvailable(lTest); 
Problemi correlati