应用场景:
局域网考试系统——考试过程中需要采集考生头像;
问题所在:
既然是局域网,那就是在一个教室内,没有外网,一台主机上装有考试系统的软件,所有的其他机器访问这台机器,那就是http访问,而不是https 也不是localhost,这就是问题的所在,因为考试需要用到摄像头,而获取摄像头我用的是HTML5中的<video>标签 + MediaDevices.getUserMedia()(https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia
相关的API地址),之前的文档也提过如何获取摄像头,这里不详细提供代码了,但是如果页面的脚本从一个非安全源加载(如 HTTP)责在调用MediaDevices.getUserMedia()这个API接口的时候就会报 null 找不到资源的错误,因为这个MediaDevices.getUserMedia()接口目前只允许https,localhost,File这3种域访问,(谷歌浏览器可以通过具体的安全设置解除限制,但是其他浏览器我还不清楚),说道这问题就很清楚了,局域网是http域,所以考试的时候其他机器在获取摄像头的时候就会出现问题,无法采集头像
解决的思路: