新买的开发板RK3399外接USB摄像头,查看了下,RK3399 Android系统rom是支持底层UVC驱动的,将一些测试结果和测试demo记录下来,以免他人踩坑,如果有帮到你,请点个关注和start,谢谢
一、USB摄像头连接信息打印
1. Camera启动USB摄像头
-
当打开不存在相机时warn错误警告,监听该异常处理即可。几个错误问题:
- 相机分辨率不支持问题,打开报错(系统相机默认打开的640*480),需要从HAL层进行修改
- USB拔插地址问题,RK3399外接USB摄像头,默认时从/dev/video0地址,通过V4L2去打开。但是不确定时硬件USB接口问题还是驱动问题,导致偶尔拔插会出现Video1识别,导致打开失败的问题
-
获取Camera支持的分辨率列表,当USB摄像头不在列表之内,系统相机打开崩溃,当然自己软件调用相机没有问题
打开不存在相机时warn错误警告,监听该异常处理即可 System.err: java.lang.RuntimeException: Fail to connect to camera service System.err: at android.hardware.Camera.<init>(Camera.java:496) System.err: at android.hardware.Camera.open(Camera.java:345) System.err: at com.yue.customcamera.handler.Camera1Control.startCamera(Camera1Control.java:169) System.err: at com.yue.customcamera.handler.Camera1Control.access$000(Camera1Control.java:39) System.err: at com.yue.customcamera.handler.Camera1Control$1.run(Camera1Control.java:138) System.err: at android.os.Handler.handleCallback(Handler.java:755) System.err: at android.os.Handler.dispatchMessage(Handler.java:95) System.err: at android.os.Looper.loop(Looper.java:154) System.err: at android.os.HandlerThread.run(HandlerThread.java:61)
2. 罗技USB2.0摄像头测试
-
插入:
EventHub: No input device configuration file found for device 'UVC Camera (046d:0825)'. EventHub: Unable to disable kernel key repeat for /dev/input/event4: Function not implemented EventHub: New device: id=17, fd=280, path='/dev/input/event4', name='UVC Camera (046d:0825)', classes=0x80000401, configuration='', keyLayout='/system/usr/keylayout/Generic.kl', keyCharacterMap='/system/usr/keychars/Generic.kcm', builtinKeyboard=false, wakeMechanism=EPOLLWAKEUP, usingClockIoctl=true InputReader: Device added: id=17, name='UVC Camera (046d:0825)', sources=0x00002103 Added device UsbDevice[mName=/dev/bus/usb/005/002,mVendorId=1133,mProductId=2085,mClass=239,mSubclass=2,mProtocol=1,mManufacturerName=null,mProductName=null,mVersion=2.0,mSerialNumber=87430990,mConfigurations=[ UsbConfiguration[mId=1,mName=null,mAttributes=128,mMaxPower=250,mInterfaces=[ UsbInterface[mId=0,mAlternateSetting=0,mName=null,mClass=14,mSubclass=1,mPro