Android camera API2 类简介

10 篇文章 2 订阅

Camera 中主要的API2类

CameraManager类 :

frameworks\base\core\java\android\hardware\camera2\CameraManager.java

摄像头管理类,用于检测、打开系统摄像头,通过 getCameraCharacteristics(cameraId)  可以获取摄像头特征。

CameraCharacteristics类:

frameworks\base\core\java\android\hardware\camera2\CameraCharacteristics.java

相机特性类,获取摄像头的特征信息。例如:相机光圈值,是否支持自动调焦,是否支持 zoom,是否支持闪光灯一系列特征

CameraDevice类:

frameworks\base\core\java\android\hardware\camera2\CameraDevice.java

相机设备,类似早期的camera类。

CameraCaptureSession类:

frameworks\base\core\java\android\hardware\camera2\CameraCaptureSession.java

用于创建预览、拍照的Session类。通过它的setRepeatingRequest()方法控制预览界面 , 通过它的capture()方法控制拍照动作或者录像动作。

CaptureRequest.Builder 类vendor\mediatek\proprietary\hardware\mtkcam\middleware\v1\adapter\Scenario\flowControl\stereo\shot\CaptureRequestBuilder.cpp

实例化 CaptureRequest,置一些列的参数,用于控制预览和拍照参数,例如:对焦模式,曝光模式,zoom参数等。

CaptureRequest类:

frameworks\base\core\java\android\hardware\camera2\CaptureRequest.java

捕获的请求。 

ImageReader类:

frameworks\base\media\java\android\media\ImageReader.java

ImageReader 和 Camera API2 配合缓存拍照图片的数据和 YUV 数据。

 

 Camera API2类的关系

  1. 获取系统服务 CameraManager 实例
  2. 调用 CameraManager.getCameraCharacteristics() 方法获取 CameraCharacteristics 实例
  3. 调用 CameraManager.openCamera() 方法的传入 CameraDevice.StateCallback 方法中获取 CameraDevice 实例
  4. 调用 CameraDevice.createCaptureRequest() 方法创建请求会话实例 CaptureRequest.Builder , TEMPLATE_PREVIEW(预览请求), TEMPLATE_STILL_CAPTURE(拍照请求)
  5. 调用 CaptureRequest.Builder.addTarget(Surface) 设置 camera2 图像数据的目标 Surface
  6. 调用 CameraDevice.createCaptureSession() 创建相机捕获会话,传入 CameraCaptureSession.StateCallback 方法用于拍照或预览
  7. 在 CameraCaptureSession.StateCallback 中调用 CaptureRequest.Builder.build() 获取请求会话和 CameraCaptureSession 捕获会话
  8. 在 CameraCaptureSession.CaptureCallback 中实现两个抽象方法, onCaptureProgressed(捕获处理)和 onCaptureCompleted(捕获完成)
  9. 调用 CameraCaptureSession 发送 CaptureRequest 请求, capture:表示只发一次请求(拍照), setRepeatingRequest:表示不断发送请求(预览)
  10. 在 ImageReader.OnImageAvailableListener 监听中回调获取拍照/预览数据

 

Camera API2 Demo : android-Camera2Basic

Google 相机: https://source.android.com/devices/camera/

 

导图如下:

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值