2015-06-08 11 views
9

cerco di usare un TextToSpeech nella mia app,TextToSpeech: deprecato funzione di parlare a livello di API 21

String text = editText.getText().toString(); 
tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 

Ma fa parlare funzioni (String text, int queueMode, HashMap params) è sconsigliata a livello di API 21. Invece di farlo, si consiglia di usare speak (CharSequence text, int queueMode, Bundle params, String utteranceId). Ma non so come impostarlo. Grazie

risposta

7
String text = editText.getText().toString(); 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    tts.speak(text,TextToSpeech.QUEUE_FLUSH,null,null); 
} else { 
    tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 
} 
1

risposta è tratto da https://stackoverflow.com/a/28000527/4211264

if (Build.VERSION.RELEASE.startsWith("5")) { 
    tts.speak("12 e8", TextToSpeech.QUEUE_FLUSH, null, null); 
    } 
else { 
    tts.speak("12 e8", TextToSpeech.QUEUE_FLUSH, null); 
    } 
0

Ecco l'opera completa che funziona per me

Private TextToSpeech ts 
ts=new TextToSpeech(CurrentActivity.this, new TextToSpeech.OnInitListener() { 
      @Override 
      public void onInit(int status) { 
       String text = "Any Text to Speak"; 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
        ts.speak(text,TextToSpeech.QUEUE_FLUSH,null,null); 
       } else { 
        ts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 
       } 

      } 
     }); 
Problemi correlati