首页 > 解决方案 > 是否可以在不询问用户许可的情况下检测浏览器摄像头?

问题描述

在你们全都抨击我之前,我知道我的要求被认为是不好的,但我并不是在寻找一些狡猾的卑鄙策略来未经许可接近某人的相机。让我解释一下请求背后的原因,希望有人可以提出替代解决方案。

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

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

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

标签: webrtcgetusermedia

解决方案


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

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

推荐阅读