2017-05-28 82 views
4

我正在製作一個機器人來聆聽我的聲音。
所以我做:如何知道webkitSpeechRecognition是否啓動?

this.recognition = new webkitSpeechRecognition(); 

我能做到這一點,開始聽:

this.recognition.start(); 

而這種停止聽:

this.recognition.stop(); 

但你知道,這將返回一個函數如果this.recognition已啓動,我是否爲true,如果它已停止,則爲false?像"isStarted()"

謝謝。

回答

3

您可以通過在onstartonend事件提高一個標誌變量做到這一點:

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 
} 
+0

謝謝您的回答,我已經tryed它。我的代碼有點複雜,所以有時候會因爲這個錯誤而崩潰:------>未捕獲的DOMException:未能在'SpeechRecognition'上執行'start':識別已經開始。我可以錯過任何地方的布爾值更新,但webkitSpeechRecognition函數是一個更好的解決方案:P – TomSkat

+0

@TomSkat目前沒有布爾值,所以您必須實現一個像我寫的。請添加像我在我的答案中編輯過的'onerror'事件,並用'catch'包裝你的代碼,這應該解決你提到的情況。 –

+0

這似乎是好的:p,因爲我不把布爾編輯的事件;) – TomSkat

相關問題