Android USB同时打开双路摄像头

Android USB同时打开双路摄像头

这个方法没什么卵用,实际应用起来很困难,请移步我另外一篇打开多路摄像头的博客https://blog.csdn.net/yyfd2013/article/details/85321175
1.第一步插上USB摄像头,adb查看节点
在这里插入图片描述
如果插拔USB摄像头都看不到这个节点,恭喜,不支持硬件通信,舍得折腾的话自己写通讯,建议找板卡厂家(博主用的rk3399)

2.第二步,废话不多说,上代码(NDK肯定是需要的啦)
github地址(非本人,感谢这位大哥,欢迎大家给他star)
https://github.com/lichens1/doubleUsbCamera
发现节点设置的很奇怪自己简单改了下(C语言幼儿园水平)
在这里插入图片描述

3.遇到的问题:
1,妈蛋7.0系统调不到公有库,要把so文件在public.libraries.txt 里面声明一下
2,博主用的3399,apk用shell指令赋予权限,系统提示没有权限,还得和厂家沟通一下固件
3,换不同的USB节点会变(这就很蛋疼了)
以上是要注意的,后续研究

只是代码的搬运工,留作记录,欢迎讨论

效果图(非双目,只是插了两个头):
在这里插入图片描述

Android系统中,可以通过使用Camera2 API来打开并使用两个USB摄像头。 首先,需要在AndroidManifest.xml文件中添加相应的权限,如下所示: ```xml <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera.any" /> <uses-feature android:name="android.hardware.usb.host" /> ``` 接下来,在代码中获取CameraManager对象,并使用getCameraIdList()方法获取可用的摄像头设备列表。然后,遍历列表找到对应的USB摄像头,即包含"usb"字符串的摄像头ID。 ```java CameraManager cameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); String[] cameraIds = cameraManager.getCameraIdList(); String usbCameraId = null; for (String cameraId : cameraIds) { CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(cameraId); Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING); if (facing != null && facing == CameraCharacteristics.LENS_FACING_EXTERNAL) { usbCameraId = cameraId; break; } } ``` 接下来,可以使用usbCameraId来打开USB摄像头,并进行预览或拍照等操作。 ```java if (usbCameraId != null) { cameraManager.openCamera(usbCameraId, new CameraDevice.StateCallback() { @Override public void onOpened(@NonNull CameraDevice camera) { // 在这里可以进行相应的操作,如设置预览,拍照等 } @Override public void onDisconnected(@NonNull CameraDevice camera) { // 当相机断开连接时调用 camera.close(); } @Override public void onError(@NonNull CameraDevice camera, int error) { // 发生错误时调用 camera.close(); } }, null); } ``` 如此,我们就可以通过使用Camera2 API来打开并使用两个USB摄像头
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值