Electron判断是内置摄像头还是接摄像头

前言

Electron 中使用摄像头时,经常需要区分「内置摄像头」和「外接摄像头」。但是 navigator.mediaDevices.enumerateDevices() 只提供 labeldeviceId 等,不直接标明内置/外接。所以需要原生模块来判断是内置还是外接摄像头

WindowsMac的实现思路不一样。

后面有代码。

正文

Windows

Windows系统中可以使用设备安装日期做判断:内置摄像头多为随系统或整机出厂时安装(安装日期较早),外接摄像头多为用户后来插上(安装日期较晚)。

Windows中会得到类似的数据

Mac

Mac系统中可以使用系统给出的 deviceType 直接区分内置(BuiltIn)与外置(External)。

比如:AVCaptureDeviceTypeBuiltInWideAngleCamera(内置广角摄像头)和
AVCaptureDeviceTypeExternal(外置设备)

具体可以查看官方的类型文档:developer.apple.com/documentati...

结尾

引入原生模块,然后在Electron中根据不同的平台,使用不同的字段来区分「内置摄像头」和「外接摄像头」。

原生模块的实现源码地址:github.com/lzt-T/camer...

感兴趣的可以去试试

相关推荐
打呵欠的猫2 分钟前
我把 20 个页面的权限控制从"硬编码"改成"配置驱动",AI 帮我生成了 80% 的迁移代码
前端·ai编程
志尊宝15 分钟前
Vue3 零基础每日笔记(005):ref 响应式基础——为什么 script 里要 .value
前端·javascript·vue.js·笔记
海鸥两三20 分钟前
Mac电脑使用 Tabby 部署前端项目到阿里云服务器完整教程
前端·macos·阿里云
console.log('npc')28 分钟前
2026 实测:Grok 4.5 与 Grok 4.6 怎么选?前端开发、教程写作、Figma 还原选型指南
前端·大模型·ai编程·figma·grok
yyt36304584142 分钟前
一次鼠标交互触发两次 Vue flushJobs:把高频交互从 VDOM 里拆出来
前端·vue.js·计算机外设
YUJIANYUE1 小时前
查立得万用查分安卓版(web环境+查询系统免安装单文件一键运行包)
android·前端
慧都小项1 小时前
从 Figma 到 Qt:Qtitan 能减少哪些界面还原工作?
前端·qt·嵌入式·figma·图形界面·工业界面·qtitan
YWL1 小时前
OpenLayers导出功能:地图截图+GeoJSON导出完整方案,从Canvas合并到PDF生成
前端·vue·openlayers
苦瓜小生1 小时前
【前端】【力扣与手撕】十天带你刷完前端算法与手撕,全是最简单好记的最优解法!day4
前端·数据结构·算法·leetcode·面试
mayaairi2 小时前
Vue2 实战进阶:表单数据收集、指令系统与自定义指令全解析
前端·javascript·vue.js