检查用户是否使用过网络摄像头?

Jim*_*mit 17 javascript

是否可以使用JavaScript来确定用户是否拥有网络摄像头?我不想为此使用任何插件.

Sci*_*ter 27

您可以使用新的HTML5 API检查他们是否授予您使用网络摄像头的权限.毕竟,如果他们拒绝允许,从代码的角度来看,他们可能也没有网络摄像头.

navigator.getUserMedia().

编辑:

navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
                       navigator.webkitGetUserMedia ||
                       navigator.mozGetUserMedia ||
                       navigator.msGetUserMedia);

navigator.getMedia({video: true}, function() {
  // webcam is available
}, function() {
  // webcam is not available
});
Run Code Online (Sandbox Code Playgroud)

  • getUserMedia() 不再适用于不安全的来源。要使用此功能,您应该考虑将应用程序切换到安全来源,例如 HTTPS。有关更多详细信息,请参阅 https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins。 (2认同)

gto*_*nie 14

您不一定需要获得许可才能知道用户是否拥有网络摄像头,可以使用以下命令进行检查enumerateDevices

function detectWebcam(callback) {
  let md = navigator.mediaDevices;
  if (!md || !md.enumerateDevices) return callback(false);
  md.enumerateDevices().then(devices => {
    callback(devices.some(device => 'videoinput' === device.kind));
  })
}

detectWebcam(function(hasWebcam) {
  console.log('Webcam: ' + (hasWebcam ? 'yes' : 'no'));
})
Run Code Online (Sandbox Code Playgroud)