当我允许相机或麦克风时,在Chrome中触发什么事件(javascript)

时间:2018-02-22 13:37:14

标签: javascript permissions camera webrtc getusermedia

我希望在我的js app中知道,当我允许(或不允许)相机和/或麦克风时通知;这是在我从应用第一次尝试getUserMedia()时出现的弹出窗口中选择后发生的。

如果我启用了相机和麦克风,我想用enumerateDevices()再次获取设备。但在用户点击允许后无法找到偶数或其他内容...

1 个答案:

答案 0 :(得分:0)

您的代码如下所示:https://jsfiddle.net/etondm56/6/

function hasGetUserMedia() {
  return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
    navigator.mozGetUserMedia || navigator.msGetUserMedia);
}

if (hasGetUserMedia()) {
  var errorCallback = function(e) {
    alert('Reeeejected!', e);
  };

  // Not showing vendor prefixes.
  navigator.getUserMedia({
    video: true,
    audio: true
  }, function(localMediaStream) {
    alert('good to go');
    navigator.mediaDevices.enumerateDevices()
      .then(function(devices) {
        devices.forEach(function(device) {
          alert(device.kind + ": " + device.label +
            " id = " + device.deviceId);
        });
      })
      .catch(function(err) {
        alert(err.name + ": " + err.message);
      });
  }, errorCallback);
} else {
  alert('cant get data');
}

请注意,如果已经允许,您将获得“好”'警报。您必须删除允许相机或麦克风重新测试的网站上的权限。