Chrome不允许HTTP托管网站访问相机和麦克风

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome不允许HTTP托管网站访问相机和麦克风相关的知识,希望对你有一定的参考价值。

我正在使用react-webcam为应用程序捕获自拍照。在localhost上,react-webcam工作正常,而在HTTP托管的Web服务器上,相机访问权限在Chrome上默认被拒绝。是否有网络摄像头访问或任何其他npm插件的解决方法,可以在这里达到目的。

注意:允许HTTPS支持的站点访问摄像头和麦克风。在这里,我只剩下HTTP选择。

答案

react-webcam使用getUserMedia API,specification声明:

当处于不安全的来源[混合内容]时,鼓励用户代理警告使用navigator.mediaDevices.getUserMedia,navigator.getUserMedia以及其开发人员工具中的任何前缀变体,错误日志等。明确允许用户使用代理在不安全的原点上完全删除这些API,只要它们一次删除所有这些API(例如,它们不应该只留下不安全来源的前缀版本)。

Chrome从版本47开始实施此安全策略(Source):

从Chrome 47开始,getUserMedia()请求仅允许来自安全来源:HTTPS或localhost。

因此,如果没有安全连接,您将无法访问麦克风或相机。

以上是关于Chrome不允许HTTP托管网站访问相机和麦克风的主要内容,如果未能解决你的问题,请参考以下文章

Flash 电影不要求访问 Google Chrome 中的麦克风的权限

Laravel Valet托管网站返回Chrome中的“无法访问网站”

允许互联网用户访问私人托管的网站页面

Chrome 重大更新,将限制 localhost 访问?

iOS 系统权限

QML WebView相机权限