我正在尝试在应用程序中使用UVCCamera。该库没有很好的文档说明如何使用,仅recommends引用了示例及其日语网站。目前,我正在使用this example。 UVCCamera广泛使用了多线程,据我所知,它是一个特殊的Android循环程序。该示例的问题在于,它使用一个按钮来启动摄像机,然后触发一个DialogFragment,然后允许用户从列表中选择摄像机。接下来,它会打开一个对话框,请求摄像机访问权限(如果尚未授予)。最后,它会打开相机预览。这些组件中多线程和Runnables的广泛使用,使得像我这样的线程新手很难跟踪设备。并不是要说我对线程,循环程序和消息队列一无所知。简而言之,图书馆很难理解。不过,我可以使用以下代码获取当前连接的USB摄像机:
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = usbManager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
UsbDevice usbDevice = null;
for(UsbDevice device : deviceList.values()) {
if(device.getDeviceClass() == 239 && device.getDeviceSubclass() == 2) {
usbDevice = device;
break;
}
}
if(usbDevice != null) {
Log.d(TAG, "onCreate: usbDevice: " + usbDevice.toString());
}
有人知道我如何将这个设备传递到库中以为其创建预览。我现在要实现的是在连接相机后立即自动启动预览,而无需用户按下按钮并启动相机对话框。