Camera2 笔记之二:CameraDevice分析

1.CameraDeviceImpl分析

CameraDeviceImpl继承于CameraDevice,CameraDevice接口如下 :

1.1 获取CameraID,此ID由openCamera时传入

public abstract String getId();

1.2 创建会话CameraCaptureSession

public abstract void createCaptureSession(@NonNull List<Surface> outputs, @NonNull CameraCaptureSession.StateCallback callback,@Nullable Handler handler)

1.3 创建会话CameraCaptureSession

public abstract void createCaptureSessionByOutputConfigurations( List<OutputConfiguration> outputConfigurations, CameraCaptureSession.StateCallback callback, @Nullable Handler handler)

1.4 创建会话CameraCaptureSession

public abstract void createReprocessableCaptureSession(@NonNull InputConfiguration inputConfig,@NonNull List<Surface> outputs, @NonNull CameraCaptureSession.StateCallback callback,@Nullable Handler handler);

public abstract void createReprocessableCaptureSessionByConfigurations( @NonNull InputConfiguration inputConfig,  @NonNull List<OutputConfiguration> outputs,@NonNull CameraCaptureSession.StateCallback callback, @Nullable Handler handler);

public abstract void createConstrainedHighSpeedCaptureSession(@NonNull List<Surface> outputs,@NonNull CameraCaptureSession.StateCallback callback,@Nullable Handler handler);

public void createCaptureSession(SessionConfiguration config);

1.5 捕获请求

public abstract CaptureRequest.Builder createCaptureRequest(@RequestTemplate int templateType);
public CaptureRequest.Builder createCaptureRequest(@RequestTemplate int templateType,Set<String> physicalCameraIdSet);
public abstract CaptureRequest.Builder createReprocessCaptureRequest(@NonNull TotalCaptureResult inputResult)

1.6 关闭

public abstract void close();

1.7 检查配置是否支持

public boolean isSessionConfigurationSupported(@NonNull SessionConfiguration sessionConfig)

1.8 回调接口

public static abstract class StateCallback{
	public abstract void onOpened(@NonNull CameraDevice camera); // Must implement
	public void onClosed(@NonNull CameraDevice camera) {
        // Default empty implementation
    } 
	public abstract void onDisconnected(@NonNull CameraDevice camera);
	public abstract void onError(@NonNull CameraDevice camera, @ErrorCode int error); // Must implement
}

2.ICameraDeviceUserWrapper分析

​ ICameraDeviceUserWrapper持有打开openCamera时创建的ICameraDeviceUser主要功能:于CameraService 通讯(提交请求、取消请求等),检测服务是否挂掉

2.1 断开于服务链接

 public void disconnect();

2.2 提交请求

public SubmitInfo submitRequest(CaptureRequest request, boolean streaming)

2.3 提交请求列表

public SubmitInfo submitRequestList(CaptureRequest[] requestList, boolean streaming)

2.4 取消请求

public long cancelRequest(int requestId);

2.5 开始配置

public void beginConfigure()

2.6 结束配置

public void endConfigure(int operatingMode, CameraMetadataNative sessionParams)

2.7 删除流

public void deleteStream(int streamId);

2.8 创建流

public int createStream(OutputConfiguration outputConfiguration);

2.9 创建输入流

public int createInputStream(int width, int height, int format);

2.10 获取Surface

public Surface getInputSurface();

2.11 创建CameraMetadataNative

public CameraMetadataNative createDefaultRequest(int templateId);

2.12 获取CameraMetadataNative

public CameraMetadataNative getCameraInfo();

2.13 等待空闲

public void waitUntilIdle();

2.14 判断配置是否支持

public boolean isSessionConfigurationSupported(SessionConfiguration sessionConfig);

2.15 关闭流

public long flush();

2.16 准备流

public void prepare(int streamId);

2.17

public void tearDown(int streamId);

2.18 准备流

public void prepare2(int maxCount, int streamId)

2.19 更新输出配置

public void updateOutputConfiguration(int streamId, OutputConfiguration config);

2.20 完成输出配置

public void finalizeOutputConfigurations(int streamId, OutputConfiguration deferredConfig)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值