由于http协议是不安全的,navigator.mediaDevices.getUserMedia默认是访问不了本地摄像头等设备的。
在Electron中有大致两种方法;
一、使用内置模块protocol的registerSchemesAsPrivileged方法
以下是官网对该方法描述

具体使用方法如下
const { protocol } = require('electron')
protocol.registerSchemesAsPrivileged([
{
scheme: 'http',
privileges:
{
standard: true,
secure: true,
bypassCSP: true,
allowServiceWorkers: true,
supportFetchAPI: true,
corsEnabled: true,
stream: true,
}
}
]);
具体每个参数的含义这里不做解释,有兴趣可以去官网看看。也就是说这个方法可以把指定的协议当成安全的协议,从而允许调用摄像头等设备,但需要注意开启后该协议所有网址都会被视为安全网址,安全性会降低,这里推荐第二种方法;

由于http协议的安全性问题,navigator.mediaDevices.getUserMedia无法直接访问摄像头和麦克风。在Electron环境中,有两种解决方法:一是使用内置模块,通过设置使http协议视为安全,但这会降低整体安全性;二是通过app.commandLine.appendSwitch命令行参数指定特定网址为安全协议,这种方式更为安全且可手动添加启动参数实现。
最低0.47元/天 解锁文章
815

被折叠的 条评论
为什么被折叠?



