关于网页无法使用多媒体 MediaDevices.getUserMedia() 报错的解决方案
当web网页通过 navigator.mediaDevices.getUserMedia() 的方式调用本地多媒体设备(不局限于摄像头)时,存在一个安全问题,为了用户的隐私安全,浏览器将限制访问。

因为像摄像头和麦克风属于可能涉及重大隐私问题的API,getUserMedia()的规范提出了浏览器必须满足一系列隐私和安全要求。这个方法功能很强大,只能在安全的上下文中使用,在不安全的环境中为undefined
允许的安全环境有:
- 使用HTTPS
- file://url方案加载的页面
- 本地开发者测试用的 localhost、127.0.0.1
这下咱们明白了问题所在,就是说我们想要通过ip访问多媒体设备,要么修改成https协议,要么就file:///url(文件下载我没用到,不做过多赘述)。但是修改成Https协议存在一个问题,证书的问题,还有就是一般情况下外网配个域名才采用https协议
所以在这我介绍一种使用谷歌浏览器就可以解决通过ip无法使用摄像头等多媒体设备的问题。把项目修改成https协议我也试了,是通过下面这篇博客的做法操作的,如果有感兴趣的小伙伴,可以试试,方式很简单,需要注意的是生成的证书只有两个月,是个假证书,而且在你进入网站的时候会提示你不安全的网站。
链接传送门:springboot项目改造成HTTPS协议
如果想要使用永久免费并且安全认证的证书,可以看这篇博客:服务器配置https协议,三种免费的方法
这种免费的方式博主由于时间缘故还没有试,但肯定可行,等以后有时间自己亲测一下,整理出来。
废话不多说,开始介绍如何使用谷歌浏览器通过IP访问多媒体设备
其实很简单,就是让谷歌浏览器开放某个地址的权限,做法如下:

2. 敲击回车后,配置如下信息,多个地址用英文逗号隔开

浙公网安备 33010602011771号