• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Camera
2
3
4## **概述**
5
6Camera模块接口定义。
7
8Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。
9
10**Since**:
11
123.2
13
14**Version**:
15
161.0
17
18
19## **汇总**
20
21
22### 文件
23
24  | 名称 | 描述 |
25| -------- | -------- |
26| [ICameraDevice.idl](_i_camera_device_8idl.md) | Camera设备操作接口。 |
27| [ICameraDeviceCallback.idl](_i_camera_device_callback_8idl.md) | Camera设备的回调接口,主要包含Camera设备发生错误时和上报metadata的回调函数。 |
28| [ICameraHost.idl](_i_camera_host_8idl.md) | Camera服务的管理类,对上层提供HDI接口。 |
29| [ICameraHostCallback.idl](_i_camera_host_callback_8idl.md) | ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 |
30| [IOfflineStreamOperator.idl](_i_offline_stream_operator_8idl.md) | 离线流的操作接口。 |
31| [IStreamOperator.idl](_i_stream_operator_8idl.md) | 流的操作接口。 |
32| [IStreamOperatorCallback.idl](_i_stream_operator_callback_8idl.md) | [IStreamOperator](interface_i_stream_operator.md)相关的回调,这些回调均由调用者实现。 |
33| [Types.idl](camera_2v1__0_2_types_8idl.md) | Camera模块HDI接口使用的数据类型。 |
34
35
36### 类
37
38  | 名称 | 描述 |
39| -------- | -------- |
40| [ICameraDevice](interface_i_camera_device.md) | 定义Camera设备基本的操作。 |
41| [ICameraDeviceCallback](interface_i_camera_device_callback.md) | 定义Camera设备回调操作。 |
42| [ICameraHost](interface_i_camera_host.md) | 定义Camera设备功能操作。 |
43| [ICameraHostCallback](interface_i_camera_host_callback.md) | 定义Camera设备功能回调操作。 |
44| [IOfflineStreamOperator](interface_i_offline_stream_operator.md) | 定义Camera设备离线流操作。 |
45| [IStreamOperator](interface_i_stream_operator.md) | 定义Camera设备流操作。 |
46| [IStreamOperatorCallback](interface_i_stream_operator_callback.md) | 定义Camera设备流回调操作。 |
47| [StreamInfo](_stream_info.md) | 流信息,用于创建流时传入相关的配置参数。 |
48| [StreamAttribute](_stream_attribute.md) | 流的属性。 |
49| [CaptureInfo](_capture_info.md) | 捕获请求的相关信息。 |
50| [CaptureEndedInfo](_capture_ended_info.md) | 捕获结束相关信息,用于捕获结束回调[OnCaptureEnded](interface_i_stream_operator_callback.md#oncaptureended)。 |
51| [CaptureErrorInfo](_capture_error_info.md) | 流错误信息,用于回调[OnCaptureError](interface_i_stream_operator_callback.md#oncaptureerror)。 |
52
53
54### 枚举
55
56  | 名称 | 描述 |
57| -------- | -------- |
58| [CamRetCode](#camretcode) {   NO_ERROR = 0, CAMERA_BUSY = -1, INSUFFICIENT_RESOURCES = -2, INVALID_ARGUMENT = -3,   METHOD_NOT_SUPPORTED = -4, CAMERA_CLOSED = -5, DEVICE_ERROR = -6, NO_PERMISSION = -7 } | HDI接口的返回值。 |
59| [ResultCallbackMode](#resultcallbackmode) { PER_FRAME = 0, ON_CHANGED = 1 } | metadata的上报模式。 |
60| [OperationMode](#operationmode) { NORMAL = 0 } | 流的使用模式。 |
61| [StreamIntent](#streamintent) { PREVIEW = 0, VIDEO = 1, STILL_CAPTURE = 2, POST_VIEW = 3,   ANALYZE = 4, CUSTOM = 5 } | 流的类型。 |
62| [EncodeType](#encodetype) { ENCODE_TYPE_NULL = 0, ENCODE_TYPE_H264 = 1, ENCODE_TYPE_H265 = 2, ENCODE_TYPE_JPEG = 3 } | 流数据的编码类型。 |
63| [StreamSupportType](#streamsupporttype) { DYNAMIC_SUPPORTED = 0, RE_CONFIGURED_REQUIRED = 1, NOT_SUPPORTED = 2 } | 对动态配置流的支持类型,使用场景参考[IsStreamsSupported](interface_i_stream_operator.md#isstreamssupported)。 |
64| [CameraStatus](#camerastatus) { UN_AVAILABLE = 0, AVAILABLE = 1 } | Camera设备状态。 |
65| [FlashlightStatus](#flashlightstatus) { FLASHLIGHT_OFF = 0, FLASHLIGHT_ON = 1, FLASHLIGHT_UNAVAILABLE = 2 } | 闪光灯状态。 |
66| [CameraEvent](#cameraevent) { CAMERA_EVENT_DEVICE_ADD = 0, CAMERA_EVENT_DEVICE_RMV = 1 } | Camera事件。 |
67| [ErrorType](#errortype) {   FATAL_ERROR = 0, REQUEST_TIMEOUT = 1, DRIVER_ERROR = 2, DEVICE_PREEMPT = 3,   DEVICE_DISCONNECT = 4, DCAMERA_ERROR_BEGIN = 1024, DCAMERA_ERROR_DEVICE_IN_USE, DCAMERA_ERROR_NO_PERMISSION } | 设备错误类型,用于设备错误回调[OnError](interface_i_camera_device_callback.md#onerror)。 |
68| [StreamError](#streamerror) { UNKNOWN_ERROR = 0, BUFFER_LOST = 1 } | 流错误类型,用于流错误类型[CaptureErrorInfo](_capture_error_info.md)。 |
69
70
71### 关键字
72
73  | 名称 | 描述 |
74| -------- | -------- |
75| package ohos.hdi.camera.v1_0 | Camera设备接口的包路径。 |
76| sequenceable ohos.hdi.camera.v1_0.BufferProducerSequenceable | ohos.hdi.camera.v1_0序列,可用缓冲区生成器。 |
77
78
79## **枚举类型说明**
80
81
82### CameraEvent
83
84
85```
86enum CameraEvent
87```
88
89**描述:**
90
91Camera事件。
92
93  | 枚举值 | 描述 |
94| -------- | -------- |
95| CAMERA_EVENT_DEVICE_ADD | Camera设备增加事件。 |
96| CAMERA_EVENT_DEVICE_RMV | Camera设备删除事件。 |
97
98
99### CameraStatus
100
101
102```
103enum CameraStatus
104```
105
106**描述:**
107
108Camera设备状态。
109
110  | 枚举值 | 描述 |
111| -------- | -------- |
112| UN_AVAILABLE | 设备当前不在位或者不可用。 |
113| AVAILABLE | 设备当前可用。 |
114
115
116### CamRetCode
117
118
119```
120enum CamRetCode
121```
122
123**描述:**
124
125HDI接口的返回值。
126
127  | 枚举值 | 描述 |
128| -------- | -------- |
129| NO_ERROR | 调用成功。 |
130| CAMERA_BUSY | 设备当前忙。 |
131| INSUFFICIENT_RESOURCES | 资源不足。 |
132| INVALID_ARGUMENT | 参数错误。 |
133| METHOD_NOT_SUPPORTED | 不支持当前调用方法。 |
134| CAMERA_CLOSED | Camera设备已经关闭。 |
135| DEVICE_ERROR | 驱动层发生严重错误。 |
136| NO_PERMISSION | 无权限访问设备。 |
137
138
139### EncodeType
140
141
142```
143enum EncodeType
144```
145
146**描述:**
147
148流数据的编码类型。
149
150  | 枚举值 | 描述 |
151| -------- | -------- |
152| ENCODE_TYPE_NULL | 未设置编码类型 |
153| ENCODE_TYPE_H264 | 编码类型为H264。 |
154| ENCODE_TYPE_H265 | 编码类型为H265。 |
155| ENCODE_TYPE_JPEG | 编码类型为JPEG。 |
156
157
158### ErrorType
159
160
161```
162enum ErrorType
163```
164
165**描述:**
166
167设备错误类型,用于设备错误回调[OnError](interface_i_camera_device_callback.md#onerror)。
168
169  | 枚举值 | 描述 |
170| -------- | -------- |
171| FATAL_ERROR | 严重错误,需要关闭Camera设备。 |
172| REQUEST_TIMEOUT | 请求超时,需要关闭Camera设备。 |
173| DRIVER_ERROR | 驱动程序中发生错误。 |
174| DEVICE_PREEMPT | 设备被抢占。 |
175| DEVICE_DISCONNECT | 设备已断开连接。 |
176| DCAMERA_ERROR_BEGIN | 分布式像机错误开始的标识。 |
177| DCAMERA_ERROR_DEVICE_IN_USE | 分布式像机设备忙。 |
178| DCAMERA_ERROR_NO_PERMISSION | 没有访问分布式摄像机设备的权限。 |
179
180
181### FlashlightStatus
182
183
184```
185enum FlashlightStatus
186```
187
188**描述:**
189
190闪光灯状态。
191
192  | 枚举值 | 描述 |
193| -------- | -------- |
194| FLASHLIGHT_OFF | 闪光灯关闭。 |
195| FLASHLIGHT_ON | 闪光灯开启。 |
196| FLASHLIGHT_UNAVAILABLE | 闪光灯当前不可用。 |
197
198
199### OperationMode
200
201
202```
203enum OperationMode
204```
205
206**描述:**
207
208流的使用模式。
209
210  | 枚举值 | 描述 |
211| -------- | -------- |
212| NORMAL | 普通模式。 |
213
214
215### ResultCallbackMode
216
217
218```
219enum ResultCallbackMode
220```
221
222**描述:**
223
224metadata的上报模式。
225
226  | 枚举值 | 描述 |
227| -------- | -------- |
228| PER_FRAME | 逐帧上报。 |
229| ON_CHANGED | 设备状态变化时上报。 |
230
231
232### StreamError
233
234
235```
236enum StreamError
237```
238
239**描述:**
240
241流错误类型,用于流错误类型[CaptureErrorInfo](_capture_error_info.md)。
242
243  | 枚举值 | 描述 |
244| -------- | -------- |
245| UNKNOWN_ERROR | 流未知错误。 |
246| BUFFER_LOST | 丢包。 |
247
248
249### StreamIntent
250
251
252```
253enum StreamIntent
254```
255
256**描述:**
257
258流的类型。
259
260  | 枚举值 | 描述 |
261| -------- | -------- |
262| PREVIEW | 流数据用于显示,即预览流。 |
263| VIDEO | 流数据用于编码生成录像,即录像流。 |
264| STILL_CAPTURE | 流数据用于编码生成照片,即拍照流。 |
265| POST_VIEW | 流数据用于保存缩略图。 |
266| ANALYZE | 流数据用于图像分析。 |
267| CUSTOM | 自定义类型。 |
268
269
270### StreamSupportType
271
272
273```
274enum StreamSupportType
275```
276
277**描述:**
278
279对动态配置流的支持类型,使用场景参考[IsStreamsSupported](interface_i_stream_operator.md#isstreamssupported)。
280
281  | 枚举值 | 描述 |
282| -------- | -------- |
283| DYNAMIC_SUPPORTED | 支持动态配置流,对应的流参数直接生效。 |
284| RE_CONFIGURED_REQUIRED | 不支持动态配置流,对应的参数需要停止流然后重新配置流才能生效。 |
285| NOT_SUPPORTED | 不支持对应的流参数配置。 |
286