2016-12-06 33 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循環中調用了上面的方法。問題是,在tts發言1小時後延遲開始。我想在列表返回到開始時清除tts隊列。如何才能做到這一點?如何清除文本到語音隊列?

回答

1

如果要清除隊列,則不要傳遞QUEUE_ADD,而要傳遞QUEUE_FLUSH。

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

就像你說的聲音超車我想這before.If我做的。 –

+0

QUEUE_FLUSH將丟棄當前播放隊列並將其替換爲新條目 – abhishesh

+0

沒有人不適合我。 –