2016-12-06 3 views
1
public void talk(String en, final String tr, final UtteranceProgressListener listener) { 

    tts_en.speak(en, TextToSpeech.QUEUE_ADD, null,en); 
    tts_tr.speak(tr, TextToSpeech.QUEUE_ADD, null,tr); 

    tts_tr.setOnUtteranceProgressListener(new UtteranceProgressListener() { 
     @Override 
     public void onStart(String s) { 

     } 

     @Override 
     public void onDone(String s) { 

      listener.onDone(s); 

     } 

     @Override 
     public void onError(String s) { 

     } 
    }); 

} 

Я вызываю вышеуказанный метод в цикле while. Проблема в том, что задержки начинаются через 1 час, когда говорит tts. Я хочу очистить очередь tts, когда список вернется к началу. Как я могу это сделать?Как очистить очередь текста?

ответ

1

Вместо передачи QUEUE_ADD передайте QUEUE_FLUSH, если вы хотите очистить очередь.

tts_tr.speak(tr, TextToSpeech.QUEUE_FLUSH, null,tr); 
+0

Я пробовал это раньше. Если я сделаю так, как вы говорите, звуки обгоняют. –

+0

QUEUE_FLUSH отбросит текущую очередь воспроизведения и заменит ее новой записью – abhishesh

+0

Ни один человек не работает для меня. –

Смежные вопросы