[Electron] http协议访问摄像头麦克风

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

        由于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,
    }
  }
]);

        具体每个参数的含义这里不做解释,有兴趣可以去官网看看。也就是说这个方法可以把指定的协议当成安全的协议,从而允许调用摄像头等设备,但需要注意开启后该协议所有网址都会被视为安全网址,安全性会降低,这里推荐第二种方法; 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值