在Android应用程序上使用USB Camera

neo*_*man 23 usb camera android

我需要在Android 3.2上显示连接到平板电脑的USB摄像头传输的视频.但我对如何做到这一点一无所知.

我无法使用平板电脑的相机,因为我的平板电脑已固定在机上.

谢谢.

mk.*_*k.. 34

(我在2012年写的时候没有支持USB摄像头.我不再使用Android了.所以我无法解释如何使用最新Android的API.如果你知道更好的解决方案,请在这里发布. )

只有当USB摄像头内的传感器符合UVC(当今大多数摄像机都兼容)时,讨论仍然适用.

截至本文发布之日(2012年3月1日),没有默认的Android API可用于外置摄像头.因此,如果您对项目非常认真,那么您所做的工作将涉及编写与内核驱动程序对话的固件,然后在Android应用程序层上显示数据.

插入USB摄像头时,首先需要检查的东西很少.

1)您的相机是否从USB端口供电?(为此,您的USB端口应具有USB-OTG支持 - USB端口既可以作为目标也可以作为主机,检查相机上的灯光(如果有的话)是否发光?)

2)是否在/ dev目录中创建了节点?(仅在内核启用v4l2和UVC支持的情况下,才会创建节点).如果创建了节点,现在您可以访问USB摄像头的真实硬件,从此处可以轻松完成工作.检查android文件系统中的ls -l/dev/v*并检查是否正在创建video0或video1.

4)如果创建了节点,则需要编写固件(UVC)并从真实硬件中获取帧.它(UVC)支持与内核中的v4l2层通信的不同ioctl调用,并将获取帧.

这些帧主要是格式YUYV422或YUYV420格式.

收到帧后,转换为RGB或Jpeg(Android支持转换)并在画布或imageview上显示您喜欢的任何一个.

对于录制,您可能必须使用ffmpeg进行编码.这会将图像转换为视频.