Camera2解剖

本文深入探讨了Android Camera2的使用流程,包括初始化HandlerThread、Surface回调、相机权限检查,以及CameraManager、CameraCharacteristics、CameraDevice、CameraCaptureSession等关键类的角色和功能。CameraCaptureSession作为与硬件设备的会话通道,管理捕获请求和状态回调,是Camera2中至关重要的部分。
摘要由CSDN通过智能技术生成

Camera2

在这里插入图片描述

使用流程:

  • 初始化并启动HandlerThread(因为创建会话是好时的操作不宜放在主线程)
  • 实现相关Surface的回调(是为了能在相关Surface可以用的时候自动开启预览)
  • 检查相机权限(android.permission.CAMERA)
  • cameraManager = (CameraManager) getSystemService(CAMERA_SERVICE);
  • cameraManager.getCameraIdList():获取相机硬件id集合
  • cameraManager.getCameraCharacteristics(cameraId):获取相机信息
  • cameraManager.openCamera(cameraId,cameraCallback,null); 开启相机
  • CameraDevice.StateCallback回调中获取cameraDevice
  • cameraDevice.createCaptureSession(surfaces,newCameraCaptureSession.StateCallback(),null)
    创建捕获会话,surfaces作为捕获的图像数据的输出的目标
  • CameraCaptureSession.StateCallback回调中获取到CameraCaptureSession
  • CaptureRequest.Builder 创建请求,通过键值对的方式设置参数
  • cameraCaptureSession.setRepeatingRequest(previewRequest, captureCallback, mBackgroundHandler); 发送请求

Camera2 主要角色之间的联系
CameraManager处于顶层管理位置负责检测获取所有摄像头及其特性和传入指定的CameraDevice.StateCallback回调打开指定摄像头,CameraDevice是负责管理抽象对象,包括监听Camera 的状态回调CameraDevice.StateCallback、创建C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值