转自:https://youshaohua.com/post/android-device-external-multiple-USB-camera
代码访问 OTG USB camera
https://github.com/quantum6/Android-USB-OTG-Camera
https://github.com/quanhua92/AndroidUsbCamera
背景
鲜有人用手机外接usb摄像头。修车师傅使用迷你型usb摄像头当作内窥镜修车。医生查看患者内脏时用的内窥镜。钥匙掉马桶里,用个带钩子防水的usb摄像头找(开玩笑),等等。Android Device External Multiple USB Web Cameras(English Version)
前段时间因为痴迷于做一件事,特地研究android设备外接多个usb摄像头;空闲时间从查阅资料,支持条件,然后对硬件(摄像头,智能机)的采购,最后基于github上的开源代码实现外接多个usb摄像头。
目标
本文要实现的是使用小米平板外接多个usb摄像头,在一个android应用中同时显示所有usb摄像头的图像。
写本文目的
- 记录,方便以后查阅。
- 分享,使想玩的人能查阅到资料。
需要的环境
android智能机
支持OTG
支持UVC协议
usb摄像头
支持UVC协议(大多数免驱动的摄像头支持)
usb 3+ hub
支持OTG
type c转usb
支持OTG
我购买的设备
- 小米平板2(1个, ¥999.00)
- 绿联 CR109(1个,usb3.0 hub带电源,¥65.00)
- 奥尼G10 usb摄像头(4个,¥264.00)
- 绿联30176(1个,type-c转usb母,¥25.9)
总开销: ¥1353.9
结果展现
注意和技巧
- usb hub最好自带电源,否则android设备可能供电不足。
调试时无法显示图像
在调试过程中重新安装apk时未对usb申请的资源进行释放,需要对已申请的资源进行释放,
activity_main.xml
MainActivity.java
如何知道android智能机是否支持UVC协议
如果显示有文件夹说明支持uvc协议
android设备带宽不够
[11019*stream.c:1589: uvc_stream_start_bandwidth]:fail