2017-03-28 183 views
0

我想多次拨打TextToSpeech类的speak方法,但它似乎不起作用 - 它每次只能说最后一个短语。如何多次拨打电话说法

String temp="ABCD";   
ss(temp);   
String temp1="WXYZ";   
ss(temp1);   
public void ss(String t){   
    tts.speak(t, TextToSpeech.QUEUE_FLUSH, null);  
} 

tts是类TexttoSpeech方法的对象。

+0

也许它开始说'临时',并且您立即告诉它说'temp1',并且它开始说'temp1'而没有说完'temp'?如果是这样,请使用[Thread.sleep(ms)](https://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html)在调用之间添加延迟; – sudo

回答

0

您的问题无法解释,如果多个时间simultany或每次例如5秒,但是你可以尝试:

Thread thread = new Thread(new Runnable() { 
 
       @Override 
 
       public void run() { 
 
        ss("string text"); 
 
       } 
 
      }); 
 
      thread.start();

0

变化:

tts.speak(t, TextToSpeech.QUEUE_FLUSH, null); 

。 ..to ...

tts.speak(t, TextToSpeech.QUEUE_ADD, null); 

FLUSH总是停止发言,并清除缓冲区。 ADD会将新文本添加到队列中。