程序在不运行文本到语音的情况下跳至Start方法

时间:2019-03-17 07:22:04

标签: android text-to-speech

  t1.speak("Hi sir", TextToSpeech.QUEUE_ADD, null);
  onStart();
  

Blockquote   语音没有运行,它直接跳到o​​n Start方法,但是如果我删除on start方法,它将运行。一旦您好,先生,我想转到on start方法。

1 个答案:

答案 0 :(得分:0)

speak方法是异步的,它会生成一个新线程,该线程同时与已经运行的代码同时运行,因此这就是为什么执行不会“暂停”并且只是继续到下一行。

>

在包含语音的任何方法中,您都必须使t1.speak()成为最后一条指令,并且在调用语音之前,在您的t1上设置UtteranceProgressListener ...并像这样覆盖onDone()方法:

@Override
public void onDone(String s) { // this method is called from a background thread...

    runOnUiThread(new Runnable() { // ... so this is important :)
        @Override
        public void run() {
            onStart(); // <-------- move your onStart here.
        }
    });

}

这里是similar answer,可用于获取有关如何设置UtteranceProgressListener的完整详细信息。