你说的是应用与cameraservice的接口,我问的是camera hal与cameraservice的接口
时间: 2024-03-11 19:44:14 浏览: 15
非常抱歉,我的回答有误。以下是 Camera HAL3 与 CameraService 之间的通信使用的接口:
1. `ICameraDeviceUser` 接口
该接口的方法如下:
- `disconnect()`: 断开相机设备连接
- `submitRequest(CaptureRequest request, boolean streaming, int* surfaceId):` 向相机设备提交捕获请求
- `submitRequestList(ACaptureRequest[] requestList, boolean streaming, int* surfaceId):` 向相机设备提交捕获请求列表
- `cancelRequest(int requestId):` 取消指定的捕获请求
- `beginConfigure():` 开始相机设备的配置
- `endConfigure(int operatingMode, ACameraMetadata* outMetadata):` 结束相机设备的配置,并返回相机设备的元数据
- `createStream(OutputConfiguration outputConfiguration, int* surfaceId):` 创建一个相机数据流
- `createInputStream(int width, int height, int format, int *inputId):` 创建一个相机输入流
- `getInputSurface():` 获取输入流的 Surface
- `setInFlightRequestCount(int count):` 设置正在执行的捕获请求的数量
- `getCaptureRequestMetadataQueue():` 获取捕获请求的元数据队列
2. `ICameraDeviceCallbacks` 接口
该接口的方法如下:
- `onDeviceError(int errorCode, CaptureResultExtras resultExtras):` 相机设备出错时的回调方法
- `onDeviceIdle():` 相机设备空闲时的回调方法
- `onCaptureStarted(CaptureResultExtras resultExtras, long timestamp):` 捕获开始时的回调方法
- `onResultReceived(CameraMetadataNative result):` 捕获结果接收时的回调方法
- `onPrepared(int streamId):` 数据流准备好时的回调方法
- `onRequestQueueEmpty():` 请求队列为空时的回调方法
上述两个接口的方法主要用于控制相机设备的连接、捕获请求和数据流的处理。其中,`ICameraDeviceUser` 接口提供了相机设备的基本操作,`ICameraDeviceCallbacks` 接口则用于接收相机设备的回调信息。