在你们爆炸我之前,我知道我所要求的是一个被认为是糟糕的事情,但我并不是在寻找一些狡猾的卑鄙手段来未经许可去某人的相机。 让我解释一下请求背后的原因,希望有人可以提出替代解决方案。
我有一个电子商务产品页面,在那个页面上我有一个按钮,允许有人查看覆盖他们相机的产品图像,以便在他们的环境中查看产品(想想增强现实,但不能在3d空间中) )。
我想要做的是在向“假AR查看器”显示按钮之前检测用户是否具有相机功能。 我已经使用了navigator.mediaDevices.getUserMedia,但它提示用户获得相机权限,当你第一次登陆页面时,有点令人反感“为什么电子商务网站要求我的相机?”
到目前为止,我能想到的最佳选择是检测网络浏览器,如果它的移动设备和支持视频的版本显示按钮。
答案 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