【问题标题】:Test user's microphone usage permission status测试用户的麦克风使用权限状态
【发布时间】:2014-06-18 05:22:13
【问题描述】:

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

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

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

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

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

有什么想法吗?

【问题讨论】:

  • 在创建之前检查权限是否有原因?
  • 不是在创建之前,而是在用户接受之前,是的,主要是为了显示问题。接口将绑定到该值。我注意到当用户空闲时,权限可能会在没有 ssl 的情况下过期。我想现在最好的是使用onstartonstop 事件。我更喜欢将其作为本地全局变量,因为现在它迫使我将此值发出到处理识别的范围之外。
  • 这处理了几种情况。你的问题的解决方案不在这个吗?
  • 是的,他们使用的是我在示例中展示的相同技术。所以我想这是要走的路...... :)

标签: javascript google-chrome webkit speech-recognition webspeech-api


【解决方案1】:

基于Google example,似乎没有浏览器范围的属性来说明用户的权限。

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

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();

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多