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

【Electron Playground 系列】自定义协议篇 作者: OBKoro1 1. 协议: 从网页端唤起Electron应用 elelctron提供了一个方式来自动唤起electron应用(如下图),这一次就让我们来学学如何通过连接来唤起electron应用,并且我们可以使用这个功能来做点什么。 1.1 协议唤起示例: 1.2 什么是协议 electron注册的协议, electron会将协议注册到系统的协议列表中,它是系统层级的API,只能在当前系统下使用, 其他未注册协议的电脑不能识别。 Electron的app模块提供了一些处理协议的方法, 这些方. 阅读详情
AI摘要

因http协议不安全,navigator.mediaDevices.getUserMedia默认无法访问本地摄像头等设备。在Electron中有两种解决方法:一是使用内置模块,将指定协议视为安全协议,但会降低安全性;二是指定网址为安全协议,通过添加命令行参数实现,更安全,也可右键程序新增启动参数。

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

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

Electron应用中实现调用外接摄像头并拍照上传 通过以上四个步骤就完成了Electron应用中通过外接摄像头拍照并上传的功能。这里基本用不到Electron的能力,和在web端的实现方式并无区别,Electron在这里起到的作用就是获取摄像头媒体流不需要获取用户权限。Electron是基于Chromium和Node.js实现的,这就使前端开发者可以使用JavaScriptHTML和CSS轻松构建跨平台的桌面应用。Electron可以使用几乎所有的Web前端生态领域及Node.js生态领域的组件和技术方案。 阅读详情

相关推荐

Electron开发实战:如何在HTTP协议下安全调用摄像头和麦克风(附完整代码)

本文详细探讨了在Electron开发中,如何在HTTP协议下安全调用摄像头和麦克风的三种工程化方案。从全局协议特权注册到精确域名白名单控制,再到推荐的HTTPS代理方案,提供了完整的代码实现和安全加固建议,帮助开发者在保证安全性的前提下高效完成本地测试。

weixin_30352645的博客 572

从显示器到智能中枢:基于MQTT与Electron构建家庭入口屏原型

在物联网与AIoT技术推动下,传统显示设备正演变为集成了操作系统、应用生态与智能中枢的综合性平台,成为家庭场景的关键入口。其技术架构涵盖从底层硬件适配、操作系统定制到应用框架开发的全栈体系,核心在于实现设备管理、多模态交互与生态服务集成。通过MQTT协议实现设备间稳定通信,结合Electron等跨平台框架快速构建图形界面,开发者可以搭建具备设备控制、状态同步与模拟语音交互能力的智能中枢原型。这种技术方案不仅验证了智能入口屏的核心数据流与交互逻辑,也为深入探索嵌入式系统优化、多协议兼容与OTA升级等产品化挑战

weixin_33843409的博客 445

Electron桌面开发实战:跨平台、高性能与安全优化指南

Electron是一种基于Chromium和Node.js的跨平台桌面应用开发框架,其核心原理是通过主进程与渲染进程的物理隔离实现崩溃防护、安全沙箱与性能解耦。技术价值在于复用Web技术栈(React/Vue/HTML/CSS)、统一调试体验(Chrome DevTools直连)及极简分发流程(三端安装包一键生成)。典型应用场景包括SaaS离线化工具、IoT设备配套软件、企业级本地化应用等。本文深入解析Electron架构设计、IPC通信机制、预加载脚本安全模型,并结合真实项目验证内存优化(320MB稳定占

chuange6363的博客 406

在Electron应用中实现调用外接摄像头并拍照上传

Electron框架提供了一种强大的方式来构建跨平台的桌面应用程序,它结合了Node.js和Chromium,使开发者能够使用常用的Web技术来构建应用。在本文中,我们将探讨如何在Electron应用中实现调用外接摄像头并拍照上传的功能。这将启动Electron应用,并显示一个带有摄像头视频流和拍照按钮的窗口。然后,我们将画布转换为Base64编码的图像数据,并可以将其上传到服务器或执行其他操作。模块来创建一个新的窗口,并加载一个简单的HTML页面。方法来获取摄像头的视频流,并将其显示在一个具有。

AxCybersecurity的博客 893

在pycharm2021.2中学习opencv图像处理,基于python3.9.7、pycharm完成配置

在pycharm中学习opencv图像处理安装python下载python安装包开始安装安装pycharm社区版下载pycharm开始安装如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 安装python 使用pycharm学习opencv应该是最简单的了,对新手比较友好,

steveqobs 7707

物理学建模及仿真平台Chrono安装

Chrono是一个基于物理学的建模和仿真基础设施,它是在C++中实现的独立于平台的开源设计。一个projectchrono库可以嵌入到一个软件项目中,例如在可变形地形上运行的轮式和履带式车辆、机器人、机械电子系统、顺应性机构和流体固体相互作用现象。系统可以由刚性和柔性/顺应性部件组成,并带有约束、电机和接触;部件可以具有三维形状,以便进行碰撞检测。然而安装还是出现了一些问题,所以在此总结。已经装好visual studio。

Already8888的博客 6501

Mac 不小心断开移动硬盘导致磁盘无法读取和加载(顺利解决!)

Mac移动硬盘不正确断开连接导致无法读取加载的解决方法,亲测有效

Robin_Pi的博客 1万+

从零到实战:用QCustomPlot在QT中绘制动态曲线图(含OpenGL加速配置)

本文详细介绍了如何在QT中使用QCustomPlot库绘制动态曲线图,并配置OpenGL加速以提升渲染性能。从环境搭建、动态数据可视化到OpenGL加速配置,手把手教你实现工业级动态曲线监控系统,适用于大数据量实时展示场景。

weixin_29019241的博客 351

AutosarMCAL开发——基于TC367、EBTresos 开发之PORT

下图为开漏输出与推挽输出电路区别,推挽输出有两个极性相反的mos构成,一个管子导通另一个管子关闭以实现输出高低电平(电流较小不具备驱动能力),开漏输出仅使用一个MOS管,所以在这种模式下只能输出低电平,想要输出高电平需要外部提供(输入电流不可超过引脚最大电流显示否则会烧MCU)开漏输出:输出寄存器为低电平时,经过输出控制电路变成一个高电平,N-MOS导通,低电平从I/O引脚输出,输出寄存器为高电平时,P-MOS和N-MOS都是截止状态,电平无法通过,想要输出高电平需要外接上拉电阻。

qq_45583706的博客 1405

【Clickhouse】Clickhouse写入报错keeper server rejected the connection during the handshake

我的clickhouse集群时不时的报这个错误All connection tries failed while connecting to ZooKeeper. nodes: xxx 到时写入数据失败 用的ck自带的keeper。你需要仔细检查ZooKeeper集群的配置和状态,确保所有节点都正常运行,并且能够正确地选举领导者。检查ZooKeeper的ACL以及ClickHouse连接所使用的凭据,确保它们被正确配置和授权。版本不兼容:有时,不同版本的软件之间可能存在不兼容性,导致连接问题。

九师兄 371

bacnet 官方协议栈 bacnet-stack-0.8.2关于router例程BACnet MS/TP BACnet IP调试说明

bacnet 官方协议栈 bacnet-stack-0.8.2关于router例程mstp,bacnet ip调试说明

shufawangzhang的博客 2222

python中有趣的库 freegames 的详细使用

freegames 是一个包含多个简单 Python 游戏的开源库,适合初学者学习 Python 编程和游戏开发。以下是 freegames 的详细介绍和用法示例。

数据知道的博客 3万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: [Electron] 自定义编译electron后,electron-builder指定编译后的程序路径打包
下一篇: [Electron] 内置模块nativeTheme实现主题功能
imagination_7
博客等级 码龄7年 0粉丝 6原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值