TTS在for循环中播放静音不起作用

时间:2014-03-25 12:54:00

标签: android while-loop text-to-speech

我想在我的TTS-app中添加一个暂停按钮。我试图用while循环来做这个,它应该起作用。它不起作用,但我找不到我的错误。

我的布尔值:

    boolean pausegedrückt;

for循环:

    for (int i = 1; i < anzahl+1; i++) {
         while (pausegedrückt==true) {
            tts.playSilence(1000, TextToSpeech.QUEUE_ADD, null);
        }

            String str = String.valueOf(i);
            tts.speak(str, TextToSpeech.QUEUE_ADD, null);
            tts.playSilence(3000, TextToSpeech.QUEUE_ADD, null); 

        }

我的onCheckedChanged

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if (isChecked) {
        l.setBackgroundColor(Color.BLUE);
        pausegedrückt=false;
    } else {
        l.setBackgroundColor(Color.BLACK);
        pausegedrückt=true;
    }

1 个答案:

答案 0 :(得分:1)

我建议添加OnUtteranceCompletedListenerUtteranceProgressListener,因为如果没有它,某些设备上的话语可能会失败。

此外,您为每个循环向队列添加1秒的静音。如果它循环10,000次,你最终会沉默很多.....你需要在话语监听器内部循环(或者至少是另一个布尔参数),所以它只会再增加1个上一次沉默结束后,沉默的第二次。

那就是说,我不认为这是暂停演讲的正确方法。