2015-06-08 12 views
9

próbuję użyć TextToSpeech w mojej aplikacji,TextToSpeech: przestarzała funkcja mówić w poziomie API 21

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

Ale mówić funkcja (tekst String, int queueMode, HashMap params) jest przestarzałe w API Level 21. Zamiast tego zaleca się używanie funkcji speak (tekst CharSequence, int queueMode, paramele wiązek, String wypowiedźId). Ale nie wiem jak to ustawić. Dzięki

Odpowiedz

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

Odpowiedź została podjęta z 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

Oto pełna praca, która działa na mnie

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); 
       } 

      } 
     }); 
Powiązane problemy