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

感兴趣的可以去试试

相关推荐
NEXT062 小时前
普通函数与箭头函数的区别
前端·javascript·面试
Lao乾妈官方认证唯一女友:D2 小时前
wagmi使用方法
react.js·web3·wagmi
全马必破三2 小时前
Webpack知识点汇总
前端·webpack·node.js
NEXT062 小时前
CommonJS 与 ES Modules的区别
前端·面试·node.js
猪头男3 小时前
【从零开始学习Vue|第八篇】深入组件——组件事件
前端
薛一半3 小时前
React三大属性之refs
前端·javascript·react.js
程序员林北北3 小时前
【前端进阶之旅】Svelte:编译即框架,让前端开发回归简洁
前端·javascript·vue.js·react.js·html5
yy.y--4 小时前
Java线程实现浏览器实时时钟
java·linux·开发语言·前端·python
Dontla4 小时前
Python Streamlit介绍(开源Python Web应用框架,快速将Python脚本转换成交互式Web应用,适合数据科学和机器学习项目快速展示)
前端·python·开源