如何设置语音识别延迟?

时间:2015-04-26 06:51:57

标签: android

我这里有这个代码:

          Text-To-Speech("Hello");

        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            public void run() {
                // Actions to do after 10 seconds
            }
        }, 10000);

        VOICE_RECOGNITION();

这不行,在说“你好”之后,如果我打招呼,语音识别会听到“你好你好”。如何在4秒VOICE_RECOGNITION()开始后延迟?

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,你需要做的是:

try {
    Thread.sleep(4000);
} catch (InterruptedException ignored) {}

这将使当前线程休眠4000毫秒(即4秒)。请记住,使用Thread.sleep(xxx)通常是一种不好的做法,因为它不可靠并且会产生不稳定的代码和结果。我想你假设Text-to-speech("Hello")将在4秒内结束,这就是你想要这个延迟的原因。但是想象一下,将来你改变文本......或者用其他语言读取它,其中work / phraze超长 - 那么你的代码就会失败。

我宁愿使用界面,而不是使用4/6 /无秒的手动延迟。我将使用方法void onTextToSpeechFinished()创建一个接口,该接口将在完成后调用。更清洁,更稳定的解决方案。