在创建webkitSpeechRecognition
的实例后,了解用户是否允许麦克风访问的最佳方式是什么?
我想到的第一个想法是使用webkitSpeechRecognition:onstart
方法更新本地状态引用:
var permission = false;
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.onstart = function() { permission = true; }
但这似乎是多余的,因为浏览器可能已经设置了全局只读值。
有什么想法吗?
答案 0 :(得分:1)
基于Google example,似乎没有浏览器范围的属性声明用户的权限。
正确的解决方案(就目前而言)是监听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();