在被拒绝一次后,我们如何使用 getUserMedia() 请求相机/麦克风访问权限?
我正在使用 getUserMedia 访问用户的相机并将数据传输到画布。那一点都很好。
在测试中,我点击了一次拒绝。此时在 Chrome 和 Firefox 中,任何带有 getUserMedia() 的后续请求都默认为拒绝状态。
我们显然不想在被拒绝后在每个页面加载时请求相机/麦克风的权限来惹恼我们的用户。地理定位 API 已经够烦人的了。
但是,必须有一种方法可以再次请求它。仅仅因为用户点击一次拒绝并不意味着他们想要一直拒绝网络摄像头访问。
我一直在阅读规范并在谷歌上搜索了一段时间,但我没有找到任何关于这个问题的明确信息。
编辑:进一步研究,似乎在 Chrome 中点击拒绝会将当前站点添加到阻止列表中。这可以通过 chrome://settings/content 手动访问。滚动到媒体。管理例外,删除被阻止的站点。
链接到 chrome://settings/content 不起作用(在我们想要添加有用的链接以让人们重新启用权限的情况下)。
处理 getUserMedia 权限的整个 UX 很糟糕。=(