Я пытаюсь использовать веб-Speech API в Chrome 27 со следующим кодом -Web Speech API: Dom Exception 11
$(function(){
initRecognition();
});
function initRecognition(){
if(window.recognition !== undefined){
window.recognition.stop();
window.recognition.start();
// ^--- Exception is being thrown at this line
}else{
window.recognition = new webkitSpeechRecognition();
window.recognition.onresult = function(event) {
if (event.results.length > 0) {
command.value = event.results[0][0].transcript;
return execute();
}else{
command.value = "*&#^$&@^#?";
return execute();
}
};
window.recognition.continuous = true;
window.recognition.start();
}
}
function execute(){
// some code
initRecognition();
return false;
}
При загрузке страницы, он просит разрешения начать признание. Он признает одно слово или фразу, а затем останавливается со следующей ошибкой -
Uncaught Error: InvalidStateError: DOM Exception 11
initRecognition
execute
window.recognition.onresult
Там, как представляется, нехватка ресурсов для этого. Так что есть некоторые проблемы при поиске и устранении неисправностей. Есть идеи?
Скорее всего, метод остановки является асинхронным (см. Https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html#speechreco-methods). В частности, обратитесь к документации относительно исключения InvalidStateError, если вы начинаете запуск с уже запущенного объекта. – veritasetratio