引言

UVCCamera是操作USB摄像头的一个开源库,库主要有三部分组成:

  • libuvccamera
  • usbCameraCommon
  • usbCameraTest

libuvccamera介绍

如下图所示:

libuvccamera库是基础库,主要包括USB设备的扫描,设备,驱动,监控等。

  • CameraDialog主要完成USB设备的扫描过滤展示,展示结果放在ListView中。
  • UsbMonitor主要完成设备的连接断开,扫描等。
  • DeviceFilter主要是设备的过滤,解析XML配置文件。
  • UVCCamera则是主要的类,主要管理USB摄像头的打开关闭,预览,设备参数等等。
  • common下的BaseActivity,BaseFragment, BaseService则提供一些基本功能,供其他类继承使用。

usbCameraCommon介绍

usbCameraCommon则是为使用UVCCamera封装的一个库,如下图所示:

主要包括摄像头的操作,预览展示,录屏视频或音频,编码等相关,是为了方便开发调用的一个库。

  • MediaAudioEncoder,MediaMuxerWrapper 主要是保存录像需要用到的比如编码,录像等功能。
  • AbstractUVCCameraHandler这个类包括摄像头的基本操作,连接,断开,预览,拍照,抓帧,录像等。
  • UVCCameraHandler则继承自AbstractUVCCameraHandler。
  • AspectRatioTextureView则是用来显示用。类似SurfaceView。
  • UVCCameraTextureView则继承自AspectRatioTextureView。

usbCameraTest介绍

调用模块则是实际使用的模块,如下图所示:

1
2
3
public final class MainActivity extends BaseActivity implements CameraDialog.CameraDialogParent {
//...
}

这里可以操作摄像头做一些实际的操作。

UVCCamera相关内容

参考链接:https://blog.csdn.net/bawang_cn/article/details/121350618