是否可以在不询问用户权限的情况下检测浏览器摄像头?

时间:2018-05-05 04:45:33

标签: webrtc getusermedia

在你们爆炸我之前,我知道我所要求的是一个被认为是糟糕的事情,但我并不是在寻找一些狡猾的卑鄙手段来未经许可去某人的相机。 让我解释一下请求背后的原因,希望有人可以提出替代解决方案。

我有一个电子商务产品页面,在那个页面上我有一个按钮,允许有人查看覆盖他们相机的产品图像,以便在他们的环境中查看产品(想想增强现实,但不能在3d空间中) )。

我想要做的是在向“假AR查看器”显示按钮之前检测用户是否具有相机功能。 我已经使用了navigator.mediaDevices.getUserMedia,但它提示用户获得相机权限,当你第一次登陆页面时,有点令人反感“为什么电子商务网站要求我的相机?”

到目前为止,我能想到的最佳选择是检测网络浏览器,如果它的移动设备和支持视频的版本显示按钮。

2 个答案:

答案 0 :(得分:1)

使用navigator.mediaDevices.enumerateDevices()API。大致是:

navigator.mediaDevices.enumerateDevices()
.then(devices => {
  devices.forEach(device => {
    if (device.kind === 'videoinput') {
      console.log('found camera');
    }
  })
})

答案 1 :(得分:0)

据我了解,您希望检测浏览器是否要使用其自己的消息框来请求许可,并为此准备用户。然后,您可以尝试Permissions API

SELECT  s1.name as name1, s2.name as name2