Android无法区分USB摄像头是哪一个

BB叨:(解决方法在底部)

项目上有两颗USB摄像头,想用CameraX打开,发现两颗摄像头都是后置摄像头,行吧。

那就改用Camera2的方式,根据camera的index来区分,这样一来就只有0和1了,但是有问题,当你插拔USB摄像头的时候这个index还是会发生变化,甚至重启了你的开发板也会!(懊恼)

然后同事发现了个邪修的方法:当时的Android 系统是7.1.2(开发板的版本不高)找到sys ------>class------>video4linux文件夹下根据生成规则来修改!完美,解决了。

然后故事就到了现在,厂商不生产7.1.2的主板了!变成了Android11,摄像头的生成规则变了!即使固定了,当摄像头插拔后也会发生变化无解了!

让厂家修改,厂家改不了,让摄像头厂家修改摄像头厂家说让主板厂家给个方案,难搞啊!求爷爷告奶奶也不好使。一怒之下那就使用UVC!

UVC能解决,但是呢,也有问题,不稳定。使用的第一个UVC在一个贵的主板上(大概1000¥的好板子上USB3.0的)没问题,但是放到了我这个垃圾板子上,不行!!!那就换另外一个UVC的框架!发现第一次录制的时候录制不上!工程师你也不想你的客户没事了就来找你说东西用不了把。行吧,我怕了我怕了。

就在穷途末路的时候,灵光乍现!我两个摄像头的分辨率有些不同!这就是突破口!!!我相机1的最大分辨率是2592*1944 。天无绝人之路啊!

这就可以用Camera2了!你只需要找到有几颗摄像头,然后遍历分辨率就行了。到此完美解决了问题。

如果你说我摄像头的分辨率都一样怎么解决?那你让你的摄像头厂商给你刷个固件,去一个不用的分辨率,或者添加一个。(懂了吗?嗯?)

如果你问我代码呢?这还用我给你?用AI啊!

完结,撒摄像头~~~

相关推荐
消失的旧时光-19431 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
Jinkxs1 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&1 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
LDORntKQH2 小时前
基于深度强化学习的混合动力汽车能量管理策略 1.利用DQN算法控制电池和发动机发电机组的功率分配 2
android
冬奇Lab2 小时前
Android 15 ServiceManager与Binder服务注册深度解析
android·源码·源码阅读
2501_916008894 小时前
深入解析iOS机审4.3原理与混淆实战方法
android·java·开发语言·ios·小程序·uni-app·iphone
独行soc5 小时前
2026年渗透测试面试题总结-20(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
常利兵5 小时前
2026年,Android开发已死?不,它正迎来黄金时代!
android
Risehuxyc5 小时前
备份三个PHP程序
android·开发语言·php
Doro再努力15 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim