我正在测试 https://codelabs.developers.google.com/codelabs/webrtc-web/#8我的浏览器在本地请求使用摄像头和麦克风的权限 - 一切正常。
当我将代码上传到真实域上的服务器时,我的浏览器不请求权限,我从 getUserMedia() 收到权限被拒绝的错误。
我怎样才能避免这种情况?
我正在 Google Chrome 中进行测试,但希望修复程序适用于 Chrome、Firefox 和 Opera(因为它们支持 WebRTC)。
最佳答案
您没有使用 HTTPS 吧?
请记住,最新的炫酷玩具仅适用于从安全来源加载的网站。 Localhost 只是一个异常(exception)。
如果您认为实现 HTTPS 很麻烦或者很昂贵,那么看看 Cloudlflare,0.00 美元的反向代理和免费的 Comodo HTTPS 证书。
或者试试这个免费的认证机构https://letsencrypt.org/
一个月前,我在巴黎的一次安全 session 上与该项目的负责人交谈,他解释说他们唯一不支持的是通配符证书。这对您来说应该不是问题。除非你想在你的内容交付网络中使用你自己的域的 HTTPS。
关于浏览器兼容性,检查这个线程:
https://community.letsencrypt.org/t/which-browsers-and-operating-systems-support-lets-encrypt/4394
关于javascript - WebRTC,浏览器不要求使用摄像头和麦克风的许可 - 但在本地它会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37545295/