Android Camera2之CameraCaptureSession

根据前面的SnapdragonCamera源码分析(三)createSessions & startPreview记录可以了解到CameraApp与底层的一些通信基本是围绕Camera2 CameraCaptureSession中的相关标准接口实现的。

简介

查看官方文档

A configured capture session for a CameraDevice, used for capturing images from the
 camera or reprocessing images captured from the camera in the same session previously.

针对CameraDevice设备配置的拍照捕获请求会话,用于处理捕获来自Camera的图像或重新处理先前在同一会话中从Camera捕获的图像。

通俗来说,CameraCaptureSession就是一个事务会话,主要用于向底层相机设备发送获取图像的请求。

前面主要用到 setRepeatingRequest() 和 capture() 方法。
setRepeatingRequest() 是重复请求获取图像数据,常用于预览或连拍;
capture() 是获取一次请求,常用于单张拍照。

CameraCaptureSession 实例

根据SnapdragonCamera源码分析(三)createSessions & startPreview知道,主要通过 CameraDevice 类的 createCaptureSession() 方法创建,并在回调的 onConfigured(CameraCaptureSession session) 方法中获取实例。

mCameraDevice[id].createCaptureSession(list, captureSessionCallback, mCameraHandler);
CameraCaptureSession.StateCallback captureSessionCallback =
        new CameraCaptureSession.StateCallback() {
   

            @Override
            public void onConfigured(CameraCaptureSession cameraCaptureSession) {
   
                if (mPaused || null == mCameraDevice[id] ||
                        cameraCaptureSession == null) {
   
                    return;
                }
                ...
                // When the session is ready, we start displaying the preview.
                mCaptureSession[id] = cameraCaptureSession;
                ...
            }

            @Override
            public void onConfigureFailed(CameraCaptureSession cameraCaptureSession) {
   
                Log.e(TAG, "cameracapturesession - onConfigureFailed " + id)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值