Javascript 如何知道webkitSpeechRecognition是否已启动?

Javascript 如何知道webkitSpeechRecognition是否已启动?,javascript,google-chrome,webkitspeechrecognition,Javascript,Google Chrome,Webkitspeechrecognition,我正在做一个机器人来听我的声音。 所以我做了: this.recognition = new webkitSpeechRecognition(); 我可以这样做开始听: this.recognition.start(); 这是为了停止听: this.recognition.stop(); 但是你知道一个函数,如果启动了识别,它会返回true,如果停止,它会返回false吗?像“IsStart()” 谢谢。您可以通过在onstart和onend事件上提升一个标志变量来完成此操作: var r

我正在做一个机器人来听我的声音。
所以我做了:

this.recognition = new webkitSpeechRecognition();
我可以这样做开始听:

this.recognition.start();
这是为了停止听:

this.recognition.stop();
但是你知道一个函数,如果启动了识别,它会返回true,如果停止,它会返回false吗?像
“IsStart()”


谢谢。

您可以通过在
onstart
onend
事件上提升一个标志变量来完成此操作:

var recognition = new webkitSpeechRecognition();
var recognizing = false;

recognition.onstart = function () {
    recognizing = true;
};

recognition.onend = function () {
    recognizing = false;
};

recognition.onerror = function (event) {
    recognizing = false;
};

if (recognizing) {
    // Do stuff
}

谢谢你的回答,我已经试过了。我的代码有点复杂,所以有时会因为以下错误而崩溃:------->未捕获的DomeException:未能对“SpeechRecognition”执行“start”:识别已开始。我可以在任何地方错过布尔更新,但webkitSpeechRecognition函数是更好的解决方案:P@TomSkat目前没有布尔值,所以您必须实现我写的一个。请像我在回答中编辑的那样添加
onerror
事件,并用
catch
包装您的代码,这也可以解决您提到的问题。看起来没问题:p,因为我没有在事件中添加布尔编辑;)@汤姆斯卡特很棒。我自己也在做,效果很好。希望我能帮忙。