IllegalArgumentException: Недопустимый int: "ОС" с Samsung tts
Я использую Text в речь в своем приложении для Android. Он работает отлично с Google TT и espeak, но когда я использовал с 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)
Ответы
Ответ 1
Я обнаружил, что получаю это исключение также, когда пытаюсь сделать что-то вроде TextToSpeech.getDefaultVoice
, или TextToSpeech.getVoices()
, или TextToSpeech.getVoice()
. Я работал над этим, не называя их, а вместо этого работая по умолчанию Locale, чтобы получить то, что я пытался получить через объект Voices.
Итак, в моем случае я хотел знать Locale, чтобы выбрать язык, поэтому я сделал следующее
Locale lTest = Locale.getDefault();
res = mTTS.isLanguageAvailable(lTest);