实现的方法有很多种,按步骤来看适合哪一种,网上说什么接采集卡,其实就是把AV转成UVC,现在市面上很多摄像头直接就已经是UVC的了,在windows上面即插即用。
安卓也是Linux,这个就好办了。
1.首先下载个安卓USB检测程序,插入UVC摄像头,在程序中检测看是在/dev/video中新增了节点,还是在/bus/usb下新增了节点。如果没新增video节点,则没有UVC驱动。如果你有很多个usb口子,可以连电脑,在adb shell中输入ls -l /dev/v*,查看是否生成了新的节点。
2.如果没有新增节点,有3个办法。1是自己写一个video固件,通常平板上都有前后两个摄像头,video0和video1都已经被占用,是无法通过这两个来调用外置摄像头的。2是干掉一个前置或者后置摄像头,这样就可以让外置USB用video0或video1来启动,这就是为什么在没有摄像头的安卓上能成功。3是找到系统的源码,配置其中的UVC驱动,编译后再安装。
3如果新增了节点那就好办了,如果板子上已经有2个摄像头,自己写个程序调用ID为3的camera就好了;如果没有2个摄像头,那直接用系统自带的相机程序前后切换就可以看到USB的信息了。如果是AV通过采集卡转换的UVC,还能在相机应用里看DVD。
常见的一些问题:
新增的固件无法访问。其实就是Linux的权限问题,只要权限是0666以上就可以了。chmod 0666 /dev/video3 或者 chmod 777 /dev/video3 ,video几是看你新增的是哪个。
检查手机是否支持uvc协议:
adb shell
cd sys/bus/usb/drivers
ls
如果有显示uvcvideo 文件则说明支持uvc协议
最后我这边用过的第三方库:https://github.com/saki4510t/UVCCamera