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...

感兴趣的可以去试试

相关推荐
牛奶21 分钟前
5MB vs 4KB vs 无限大:浏览器存储谁更强?
前端·浏览器·indexeddb
牛奶23 分钟前
setTimeout设为0就马上执行?JS异步背后的秘密
前端·性能优化·promise
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-04-05
前端·数据库·人工智能·经验分享·神经网络
SuperEugene2 小时前
Vue3 组件复用设计:Props / 插槽 / 组合式函数,三种复用方式选型|组件化设计基础篇
前端·javascript·vue.js
nFBD29OFC3 小时前
利用Vue元素指令自动合并tailwind类名
前端·javascript·vue.js
ISkp3V8b43 小时前
ASP.NET MVC]Contact Manager开发之旅之迭代2 - 修改样式,美化应用
前端·chrome
Highcharts.js4 小时前
高级可视化图表的暗色模式与主题|Highcharts 自适应主题配色全解
前端·react.js·实时图表
zk_one5 小时前
【无标题】
开发语言·前端·javascript
precious。。。6 小时前
1.2.1 三角不等式演示
前端·javascript·html
小陈工6 小时前
Python Web开发入门(十一):RESTful API设计原则与最佳实践——让你的API既优雅又好用
开发语言·前端·人工智能·后端·python·安全·restful