Autore Topic: [Text to Speech] Non funziona con API 19  (Letto 613 volte)

Offline Archimede

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
[Text to Speech] Non funziona con API 19
« il: 03 Maggio 2015, 13:17:31 CEST »
0
Carissimi,
sto cercando di far pronunciare al mio cellulare la semplice frase "hello"; purtroppo, usando il codice seguente, la mia app va puntualmente in crash mostrando un errore "java.lang.NoSuchMethodError: android.speech.tts.TextToSpeech.speak" alla riga tts.speak. Come mai? Ho cercato tantissimo su Google, ma non ne vengo a capo. Grazie in anticipo.

Codice: [Seleziona]
@SuppressWarnings("deprecation")
    private void ttsUnder20(String text) {
        HashMap<String, String> map = new HashMap<>();
        map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "MessageId");
        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    private void ttsGreater21(String text) {
        String utteranceId=this.hashCode() + "";
        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, null);
    }

    //metodo da richiamare, ad esempio con say ("hello");
    private void say(String actText){
        tts.setLanguage(Locale.ENGLISH);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            ttsGreater21(actText);
        } else {
            ttsUnder20(actText);
        }

    }