我正在尝试打开预览,这是USB摄像头连接到Android OS9。
起初,我尝试使用'Camera2‘接口,但是'CameraManager.cameraIds’只返回设备的cameraIds。我知道我可以通过UsbManager.getDeviceList找到那个USB设备。
但是,我不知道那个设备是作为摄像头打开的。
如果你有Camera2的答案,这是最好的解决方案。但如果不是Camera2的话我也不客气。
谢谢
发布于 2020-02-24 14:03:14
当您插入USB摄像头时,有几件事需要首先检查。
1)您的相机是否从USB端口获得电源?(要实现这一点,您的USB端口应该支持USB-OTG - USB端口既可以充当目标,也可以充当主机,检查相机上的灯(如果有)是否发光?)
2)节点是否在/dev目录中创建?(只有在内核启用了v4l2和UVC支持的情况下,才会创建节点)。如果正在创建节点,现在您可以访问真正的硬件,即USB摄像头,从现在开始,您的工作将变得很容易。检查android文件系统中的ls -l /dev/v*,并检查是否正在创建video0或video1。
4)如果创建了节点,则需要编写固件(UVC),并从真实硬件获取帧。它(UVC)支持不同的ioctl调用,这些调用与内核中的v4l2层对话,并将为您获取帧。
这些帧将主要是YUYV422格式或YUYV420格式。
一旦您收到帧,转换为RGB或Jpeg (Android支持转换),并显示在画布或图像视图上任何你喜欢的。
对于记录,您可能必须使用fmpeg进行编码。这会将图像转换为视频。
https://stackoverflow.com/questions/60370305
复制相似问题