2

在创建实例后了解用户是否允许麦克风访问的最佳方法是什么webkitSpeechRecognition

我想到的第一个想法是使用该webkitSpeechRecognition:onstart方法更新本地状态引用:

var permission  = false;
var recognition = new webkitSpeechRecognition();
recognition.continuous     = true;
recognition.interimResults = true;

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

但这似乎是多余的,因为浏览器可能已经设置了全局只读值。

有什么想法吗?

4

1 回答 1

1

根据Google 示例,似乎没有浏览器范围的属性来说明用户的权限。

正确的解决方案(就目前而言)是在语音识别逻辑范围内侦听onstart和设置属性的事件onend

var permission  = false;
var recognition = new webkitSpeechRecognition();
recognition.continuous     = true;
recognition.interimResults = true;

// Start event is fired when user accept
recognition.onstart = function() { 
  permission = true; 
}

// End event is fired when the permission expire
recognition.onend   = function() { 
  permission = false; 
}

recognition.start();
于 2014-05-04T15:08:47.110 回答