Q:为什么使用v4l2,而不用camera api
A:相对而言,如果系统支持,使用系统api是最稳定的,但当你插入多个usb摄像头,而你需要打开指定摄像头的时候,系统的api往往不好使,它们只有0,1,2这样的id,不能区分摄像头型号
Q:我的设备能不能使用这个
A:你的设备拥有root权限,并且插入usb摄像的时候生成了/dev/videoX节点,那么即可正常使用。安卓开发板基本都能用
var v4L2: V4L2 = V4L2() v4L2.open("/dev/video0") val supportSize = v4L2.getSupportSize() v4L2.startCapture(1280, 960) val bitmap: Bitmap = v4L2.nextFrame() v4L2.close() 具体使用方式可以查看代码。一般的USB摄像头支持YUV和MJPEG,MJPEG由于是压缩格式,支持的帧率一般比较高,所以这里采用解码MJPEG的方式获得数据
