【问题标题】:program is skipping to on Start method without running text to speech程序在没有运行文本到语音的情况下跳到 Start 方法
【发布时间】:2019-03-19 05:22:37
【问题描述】:
  t1.speak("Hi sir", TextToSpeech.QUEUE_ADD, null);
  onStart();

块引用 speak 没有运行,它直接跳到 on Start 方法,但是如果我删除 on start 方法,它就会运行。我想在它完成与先生讲话后转到 on start 方法。

【问题讨论】:

    标签: android text-to-speech


    【解决方案1】:

    speak 方法是异步的,会生成一个新线程,该线程与已经运行的代码同时运行,因此执行不会“暂停”,而是继续到下一行。 p>

    您必须让 t1.speak() 成为包含它的任何方法中的最后一条指令,并且在调用 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 的完整详细信息。

    【讨论】:

      猜你喜欢
      • 2013-07-29
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-29
      • 2012-11-13
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      相关资源
      最近更新 更多