js-apis-camera.md 107.5 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.multimedia.camera (相机管理)
N
nikhilraut 已提交
2

Z
zengyawen 已提交
3
> **说明:**
4
>
Z
zengyawen 已提交
5 6
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 本模块接口为系统接口。
Z
zengyawen 已提交
7

N
nikhilraut 已提交
8 9
## 导入模块

Z
zengyawen 已提交
10
```js
N
nikhilraut 已提交
11 12 13
import camera from '@ohos.multimedia.camera';
```

Z
zengyawen 已提交
14
## camera.getCameraManager
N
nikhilraut 已提交
15

16
getCameraManager(context: Context): CameraManager
N
nikhilraut 已提交
17

18
获取相机管理器实例,同步返回结果。
N
nikhilraut 已提交
19

Z
zengyawen 已提交
20
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
21 22 23

**参数:**

M
mali 已提交
24
| 参数名     | 类型                                             | 必填 | 说明                           |
J
jiangminyang 已提交
25
| -------- | ----------------------------------------------- | ---- | ---------------------------- |
Z
zengyawen 已提交
26
| context  | [Context](js-apis-inner-app-context.md)      | 是   | 应用上下文。                   |
N
nikhilraut 已提交
27 28 29

**返回值:**

30 31 32
| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
| [CameraManager](#cameramanager)           | 相机管理器。                   |
N
nikhilraut 已提交
33

M
mali 已提交
34 35 36 37 38 39 40 41 42
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect               |
| 7400201                |  Camera service fatal error.                                  |

N
nikhilraut 已提交
43 44
**示例:**

Z
zengyawen 已提交
45
```js
46
let cameraManager = camera.getCameraManager(context);
N
nikhilraut 已提交
47 48
```

Z
zengyawen 已提交
49
## CameraStatus
N
nikhilraut 已提交
50

Z
zengyawen 已提交
51
枚举,相机状态。
N
nikhilraut 已提交
52

Z
zengyawen 已提交
53
**系统能力:** SystemCapability.Multimedia.Camera.Core
Z
zengyawen 已提交
54

55 56
| 名称                       | 值   | 说明            |
| ------------------------- | ---- | ------------    |
J
jiangminyang 已提交
57
| CAMERA_STATUS_APPEAR      | 0    | 新的相机出现。   |
58 59 60
| CAMERA_STATUS_DISAPPEAR   | 1    | 相机被移除。     |
| CAMERA_STATUS_AVAILABLE   | 2    | 相机可用。       |
| CAMERA_STATUS_UNAVAILABLE | 3    | 相机不可用。     |
N
nikhilraut 已提交
61

J
jiangminyang 已提交
62
## Profile
J
jiangminyang 已提交
63

J
jiangminyang 已提交
64
相机配置信息项。
J
jiangminyang 已提交
65 66 67

**系统能力:** SystemCapability.Multimedia.Camera.Core

M
mali 已提交
68
| 名称      | 类型                           | 必填 | 说明         |
J
jiangminyang 已提交
69 70 71
| -------- | ----------------------------- |---- | ------------- |
| format   | [CameraFormat](#cameraformat) | 是  | 输出格式。      |
| size     | [Size](#size)                 | 是  | 分辨率。       |
J
jiangminyang 已提交
72

J
jiangminyang 已提交
73 74 75 76 77 78
## FrameRateRange

帧率范围。

**系统能力:** SystemCapability.Multimedia.Camera.Core

M
mali 已提交
79
| 名称      | 类型                           | 必填 | 说明         |
J
jiangminyang 已提交
80 81 82 83
| -------- | ----------------------------- |---- | ------------- |
| min      | number                        | 是  | 最小帧率。      |
| max      | number                        | 是  | 最大帧率。      |

J
jiangminyang 已提交
84
## VideoProfile
J
jiangminyang 已提交
85

J
jiangminyang 已提交
86
视频配置信息项。
J
jiangminyang 已提交
87 88 89

**系统能力:** SystemCapability.Multimedia.Camera.Core

M
mali 已提交
90
| 名称                       | 类型                                      | 必填 | 说明        |
J
jiangminyang 已提交
91
| ------------------------- | ----------------------------------------- | --- |----------- |
J
jiangminyang 已提交
92
| frameRateRange            | [FrameRateRange](#frameraterange)         | 是  | 帧率范围。   |
J
jiangminyang 已提交
93

J
jiangminyang 已提交
94
## CameraOutputCapability
J
jiangminyang 已提交
95

J
jiangminyang 已提交
96
相机输出能力项。
J
jiangminyang 已提交
97 98 99

**系统能力:** SystemCapability.Multimedia.Camera.Core

M
mali 已提交
100
| 名称                           | 类型                                               | 必填 | 说明                |
J
jiangminyang 已提交
101
| ----------------------------- | -------------------------------------------------- | --- |------------------- |
C
cold_yixiu 已提交
102 103 104 105
| previewProfiles               | Array\<[Profile](#profile)\>                        | 是  | 支持的预览配置信息。    |
| photoProfiles                 | Array\<[Profile](#profile)\>                        | 是  | 支持的拍照配置信息。    |
| videoProfiles                 | Array\<[VideoProfile](#videoprofile)\>              | 是  | 支持的录像配置信息。    |
| supportedMetadataObjectTypes  | Array\<[MetadataObjectType](#metadataobjecttype)\>  | 是  | 支持的metadata流类型信息。|
J
jiangminyang 已提交
106

107
## CameraErrorCode
N
nikhilraut 已提交
108

109
相机错误码。接口使用不正确以及on接口监听error状态返回。
N
nikhilraut 已提交
110

Z
zengyawen 已提交
111
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
112

113 114 115 116 117 118 119 120 121 122 123
| 名称                       | 值   | 说明            |
| ------------------------- | ---- | ------------    |
| INVALID_ARGUMENT       | 7400101    | 参数缺失或者参数类型不对。   |
| OPERATION_NOT_ALLOWED    | 7400102    | 操作流程不对,不允许。     |
| SESSION_NOT_CONFIG    | 7400103    | session 未配置返回。       |
| SESSION_NOT_RUNNING  | 7400104    | session 未运行返回。    |
| SESSION_CONFIG_LOCKED  | 7400105    | session 配置已锁定返回。     |
| DEVICE_SETTING_LOCKED  | 7400106    | 设备设置已锁定返回。     |
| CONFILICT_CAMERA  | 7400107    | 设备重复打开返回。     |
| DEVICE_DISABLED  | 7400108    | 安全原因摄像头被禁用。     |
| SERVICE_FATAL_ERROR  | 7400201    | 相机服务错误返回。     |
N
nikhilraut 已提交
124

125
## CameraManager
N
nikhilraut 已提交
126

127
相机管理器类,使用前需要通过getCameraManager获取相机管理实例。
N
nikhilraut 已提交
128

J
jiangminyang 已提交
129
### getSupportedCameras
N
nikhilraut 已提交
130

C
cold_yixiu 已提交
131
getSupportedCameras(): Array\<CameraDevice\>
N
nikhilraut 已提交
132

133
获取支持指定的相机设备对象,同步返回结果。
N
nikhilraut 已提交
134

Z
zengyawen 已提交
135
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
136 137 138

**返回值:**

139 140
| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
C
cold_yixiu 已提交
141
|  Array\<[CameraDevice](#cameradevice)>            | 相机设备列表。                   |
N
nikhilraut 已提交
142 143 144

**示例:**

Z
zengyawen 已提交
145
```js
146 147
let cameras = cameraManager.getSupportedCameras();

N
nikhilraut 已提交
148 149
```

J
jiangminyang 已提交
150
### getSupportedOutputCapability
N
nikhilraut 已提交
151

C
cold_yixiu 已提交
152
getSupportedOutputCapability(camera:CameraDevice): CameraOutputCapability
N
nikhilraut 已提交
153

154
查询相机设备在模式下支持的输出能力,同步返回结果。
Z
zengyawen 已提交
155

Z
zengyawen 已提交
156
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
157 158 159

**参数:**

M
mali 已提交
160
| 参数名         | 类型                                                            | 必填 | 说明                      |
J
jiangminyang 已提交
161
| ------------ |--------------------------------------------------------------- | -- | -------------------------- |
M
mali 已提交
162
| cameraDevice | [CameraDevice](#cameradevice)                              | 是 | 相机设备,通过 getSupportedCameras 接口获取       |
N
nikhilraut 已提交
163 164 165

**返回值:**

166 167 168
| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
| [CameraOutputCapability](#cameraoutputcapability)            | 相机输出能力。                   |
J
jiangminyang 已提交
169

N
nikhilraut 已提交
170 171
**示例:**

Z
zengyawen 已提交
172
```js
173
let cameraDevice = cameras[0];
174 175
let cameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice);

J
jiangminyang 已提交
176 177
```

J
jiangminyang 已提交
178 179
### isCameraMuted

J
jiangminyang 已提交
180
isCameraMuted(): boolean
J
jiangminyang 已提交
181

182 183 184
查询相机当前的禁用状态(禁用/未禁用)。

在此之前,需要通过[isCameraMuteSupported](#iscameramutesupported)确认当前设备支持禁用相机。
J
jiangminyang 已提交
185 186 187 188 189

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

J
jiangminyang 已提交
190 191 192
| 类型        | 说明                                         |
| ---------- | -------------------------------------------- |
| boolean    | 返回true表示相机被禁用,返回false表示相机未被禁用。 |
J
jiangminyang 已提交
193 194 195 196

**示例:**

```js
M
mali 已提交
197
let ismuted = cameraManager.isCameraMuted();
J
jiangminyang 已提交
198 199 200 201
```

### isCameraMuteSupported

J
jiangminyang 已提交
202
isCameraMuteSupported(): boolean
J
jiangminyang 已提交
203

204
查询当前设备是否支持禁用相机,通过返回值返回结果。
J
jiangminyang 已提交
205

M
mali 已提交
206 207
此接口为系统接口。

J
jiangminyang 已提交
208 209 210 211 212 213
**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
J
jiangminyang 已提交
214
| boolean    | 返回true表示相机可以被禁用,返回false表示相机不能被禁用。 |
J
jiangminyang 已提交
215 216 217 218

**示例:**

```js
M
mali 已提交
219
let ismutesuppotred = cameraManager.isCameraMuteSupported();
J
jiangminyang 已提交
220 221 222 223
```

### muteCamera

J
jiangminyang 已提交
224
muteCamera(mute: boolean): void
J
jiangminyang 已提交
225 226 227

禁用相机。

M
mali 已提交
228 229
此接口为系统接口。

J
jiangminyang 已提交
230 231 232 233
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
234
| 参数名      | 类型                              | 必填  | 说明        |
J
jiangminyang 已提交
235 236 237 238 239 240
| -------- | --------------------------------- | ---- | ---------- |
| mute     | boolean                           |  是  |  禁用相机。  |

**示例:**

```js
M
mali 已提交
241
let mute = true;
J
jiangminyang 已提交
242 243 244
cameraManager.muteCamera(mute);
```

J
jiangminyang 已提交
245
### createCameraInput
N
nikhilraut 已提交
246

247
createCameraInput(camera: CameraDevice): CameraInput
J
jiangminyang 已提交
248

249
使用CameraDevice对象创建CameraInput实例,同步返回结果。
J
jiangminyang 已提交
250 251

**需要权限:** ohos.permission.CAMERA
N
nikhilraut 已提交
252

Z
zengyawen 已提交
253
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
254 255 256

**参数:**

M
mali 已提交
257
| 参数名     | 类型                                         | 必填 | 说明                                |
J
jiangminyang 已提交
258
| -------- | ------------------------------------------- | ---- | --------------------------------- |
259
| cameraDevice   | [CameraDevice](#cameradevice)         | 是   | CameraDevice对象,通过 getSupportedCameras 接口获取   |
J
jiangminyang 已提交
260

N
nikhilraut 已提交
261 262
**返回值:**

263 264
| 类型        | 说明                          |
| ---------- | ----------------------------- |
265
| [CameraInput](#camerainput)    | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
266

M
mali 已提交
267 268 269 270 271 272 273 274
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect               |

N
nikhilraut 已提交
275 276
**示例:**

Z
zengyawen 已提交
277
```js
M
mali 已提交
278
let cameraDevice = cameras[0];
279 280 281 282
let cameraInput;
try {
	cameraInput = cameraManager.createCameraInput(cameraDevice);
} catch (error) {
283
    // 失败返回错误码error.code并处理
284 285
    console.log(error.code);
}
N
nikhilraut 已提交
286 287
```

J
jiangminyang 已提交
288
### createCameraInput
N
nikhilraut 已提交
289

290
createCameraInput(position: CameraPosition, type: CameraType): CameraInput
N
nikhilraut 已提交
291

292
根据相机位置和类型创建CameraInput实例,同步返回结果。
J
jiangminyang 已提交
293

J
jiangminyang 已提交
294
**需要权限:** ohos.permission.CAMERA
N
nikhilraut 已提交
295

Z
zengyawen 已提交
296
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
297 298 299

**参数:**

M
mali 已提交
300
| 参数名     | 类型                                        | 必填 | 说明                                |
J
jiangminyang 已提交
301
| -------- | ------------------------------------------- | ---- | --------------------------------- |
M
mali 已提交
302 303
| position | [CameraPosition](#cameraposition)           | 是   | 相机位置,通过 getSupportedCameras 接口获取设备,然后获取设备位置信息  |
| type     | [CameraType](#cameratype)                   | 是   | 相机类型,通过 getSupportedCameras 接口获取设备,然后获取设备类型信息  |
J
jiangminyang 已提交
304 305 306

**返回值:**

307 308
| 类型        | 说明                          |
| ---------- | ----------------------------- |
309
| [CameraInput](#camerainput)    | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
310

M
mali 已提交
311 312 313 314 315 316 317 318
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect               |

J
jiangminyang 已提交
319 320 321
**示例:**

```js
M
mali 已提交
322 323 324
let cameraDevice = cameras[0];
let position = cameraDevice.cameraPosition;
let type = cameraDevice.cameraType;
325 326 327 328
let cameraInput;
try {
    cameraInput = cameraManager.createCameraInput(position, type);
} catch (error) {
329
    // 失败返回错误码error.code并处理
330 331
    console.log(error.code);
}
J
jiangminyang 已提交
332 333
```

J
jiangminyang 已提交
334
### createPreviewOutput
N
nikhilraut 已提交
335

336
createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput
J
jiangminyang 已提交
337

338
创建预览输出对象,同步返回结果。
J
jiangminyang 已提交
339

Z
zengyawen 已提交
340
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
341 342 343

**参数:**

M
mali 已提交
344
| 参数名     | 类型                                             | 必填 | 说明                              |
J
jiangminyang 已提交
345
| -------- | ----------------------------------------------- | ---- | ------------------------------- |
M
mali 已提交
346 347
| profile  | [Profile](#profile)                             | 是   | 支持的预览配置信息,通过getSupportedOutputCapability接口获取。|
| surfaceId| string | 是   | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](js-apis-image.md#imagereceiver9)组件获取的surfaceId。|
J
jiangminyang 已提交
348

N
nikhilraut 已提交
349 350
**返回值:**

351 352
| 类型        | 说明                          |
| ---------- | ----------------------------- |
353
| [PreviewOutput](#previewoutput)    | PreviewOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
354

M
mali 已提交
355 356 357 358 359 360 361 362
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect               |

N
nikhilraut 已提交
363 364
**示例:**

Z
zengyawen 已提交
365
```js
M
mali 已提交
366
let profile = cameraOutputCapability.previewProfiles[0];
367 368 369 370
let previewOutput;
try {
    previewOutput = cameraManager.createPreviewOutput(profile, surfaceId);
} catch (error) {
371
    // 失败返回错误码error.code并处理
372 373
    console.log(error.code);
}
N
nikhilraut 已提交
374 375
```

J
jiangminyang 已提交
376
### createPhotoOutput
N
nikhilraut 已提交
377

378
createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput
N
nikhilraut 已提交
379

380
创建拍照输出对象,同步返回结果。
N
nikhilraut 已提交
381

Z
zengyawen 已提交
382
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
383 384 385

**参数:**

M
mali 已提交
386
| 参数名     | 类型                                         | 必填 | 说明                                  |
J
jiangminyang 已提交
387
| -------- | ------------------------------------------- | ---- | ----------------------------------- |
M
mali 已提交
388 389
| profile  | [Profile](#profile)                         | 是   | 支持的拍照配置信息,通过getSupportedOutputCapability接口获取。|
| surfaceId| string            | 是   | 从[ImageReceiver](js-apis-image.md#imagereceiver9)获取的surfaceId。|
J
jiangminyang 已提交
390

N
nikhilraut 已提交
391 392
**返回值:**

393 394
| 类型        | 说明                          |
| ---------- | ----------------------------- |
395
| [PhotoOutput](#photooutput)   | PhotoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
396

M
mali 已提交
397 398 399 400 401 402 403 404
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect               |

N
nikhilraut 已提交
405 406
**示例:**

Z
zengyawen 已提交
407
```js
M
mali 已提交
408
let profile = cameraOutputCapability.photoProfiles[0];
409 410 411 412 413 414 415
let photoOutput;
try {
    photoOutput = cameraManager.createPhotoOutput(profile, surfaceId);
} catch (error) {
    // 失败返回错误码error.code并处理
    console.log(error.code);
}
N
nikhilraut 已提交
416 417
```

J
jiangminyang 已提交
418
### createVideoOutput
N
nikhilraut 已提交
419

420
createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput
N
nikhilraut 已提交
421

422
创建录像输出对象,同步返回结果。
N
nikhilraut 已提交
423

Z
zengyawen 已提交
424
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
425 426 427

**参数:**

M
mali 已提交
428
| 参数名     | 类型                                        | 必填 | 说明                              |
J
jiangminyang 已提交
429
| -------- | ------------------------------------------- | ---- | ------------------------------ |
M
mali 已提交
430 431
| profile  | [VideoProfile](#videoprofile)               | 是   | 支持的录像配置信息,通过getSupportedOutputCapability接口获取。 |
| surfaceId| string          | 是   | 从[VideoRecorder](js-apis-media.md#videorecorder9)获取的surfaceId。|
J
jiangminyang 已提交
432

N
nikhilraut 已提交
433 434
**返回值:**

435 436
| 类型        | 说明                          |
| ---------- | ----------------------------- |
437
| [VideoOutput](#videooutput)   | VideoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
438

M
mali 已提交
439 440 441 442 443 444 445 446
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect               |

N
nikhilraut 已提交
447 448
**示例:**

Z
zengyawen 已提交
449
```js
M
mali 已提交
450
let profile = cameraOutputCapability.videoProfiles[0];
451 452 453 454
let videoOutput;
try {
    videoOutput = cameraManager.createVideoOutput(profile, surfaceId);
} catch (error) {
455
    // 失败返回错误码error.code并处理
456 457
    console.log(error.code);
}
N
nikhilraut 已提交
458 459
```

J
jiangminyang 已提交
460
### createMetadataOutput
N
nikhilraut 已提交
461

C
cold_yixiu 已提交
462
createMetadataOutput(metadataObjectTypes:Array\<MetadataObjectType\>): MetadataOutput
N
nikhilraut 已提交
463

464
创建metadata流输出对象,同步返回结果。
N
nikhilraut 已提交
465

Z
zengyawen 已提交
466
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
467 468 469

**参数:**

M
mali 已提交
470
| 参数名                  | 类型                                               | 必填 | 说明                          |
J
jiangminyang 已提交
471
| -------------------- | -------------------------------------------------- | --- | ---------------------------- |
C
cold_yixiu 已提交
472
| metadataObjectTypes  | Array\<[MetadataObjectType](#metadataobjecttype)\>  | 是  | metadata流类型信息,通过getSupportedOutputCapability接口获取。 |
J
jiangminyang 已提交
473

N
nikhilraut 已提交
474 475
**返回值:**

476 477
| 类型        | 说明                          |
| ---------- | ----------------------------- |
478
| [MetadataOutput](#metadataoutput)   | MetadataOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
479

M
mali 已提交
480 481 482 483 484 485 486 487
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect               |

N
nikhilraut 已提交
488 489
**示例:**

Z
zengyawen 已提交
490
```js
M
mali 已提交
491
let metadataObjectTypes = cameraOutputCapability.supportedMetadataObjectTypes;
492 493 494 495
let metadataOutput;
try {
    metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes);
} catch (error) {
496
    // 失败返回错误码error.code并处理
497 498
    console.log(error.code);
}
N
nikhilraut 已提交
499 500
```

J
jiangminyang 已提交
501
### createCaptureSession
N
nikhilraut 已提交
502

503
createCaptureSession(): CaptureSession
N
nikhilraut 已提交
504

J
jiangminyang 已提交
505
创建CaptureSession实例,通过注册回调函数获取结果。
N
nikhilraut 已提交
506

Z
zengyawen 已提交
507
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
508 509 510

**返回值:**

511 512
| 类型        | 说明                          |
| ---------- | ----------------------------- |
513
| [CaptureSession](#capturesession)   | CaptureSession实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
514

M
mali 已提交
515 516 517 518 519 520 521 522
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.               |

N
nikhilraut 已提交
523 524
**示例:**

Z
zengyawen 已提交
525
```js
526 527 528 529
let captureSession;
try {
    captureSession = cameraManager.createCaptureSession();
} catch (error) {
530
    // 失败返回错误码error.code并处理
531 532
    console.log(error.code);
}
N
nikhilraut 已提交
533 534
```

J
jiangminyang 已提交
535
### on('cameraStatus')
N
nikhilraut 已提交
536

C
cold_yixiu 已提交
537
on(type: 'cameraStatus', callback: AsyncCallback\<CameraStatusInfo\>): void
N
nikhilraut 已提交
538

539
相机设备状态回调,通过注册回调函数获取相机的状态变化。
N
nikhilraut 已提交
540

Z
zengyawen 已提交
541
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
542 543 544

**参数:**

545 546
| 参数名     | 类型            | 必填 | 说明       |
| -------- | -----------------| ---- | --------- |
547
| type     | string           | 是   | 监听事件,固定为'cameraStatus'。cameraManager对象获取成功后可监听。目前只支持对设备打开或者关闭会触发该事件并返回对应信息 |
C
cold_yixiu 已提交
548
| callback | AsyncCallback\<[CameraStatusInfo](#camerastatusinfo)\> | 是   | 回调函数,用于获取镜头状态变化信息。 |                 |
N
nikhilraut 已提交
549 550 551

**示例:**

Z
zengyawen 已提交
552
```js
553
cameraManager.on('cameraStatus', (cameraStatusInfo) => {
M
mali 已提交
554 555
    console.log(`camera : ${cameraStatusInfo.cameraDevice.GetID()}`);
    console.log(`status: ${cameraStatusInfo.cameraStatus}`);
N
nikhilraut 已提交
556 557 558
})
```

J
jiangminyang 已提交
559 560
### on('cameraMute')

C
cold_yixiu 已提交
561
on(type: 'cameraMute', callback: AsyncCallback\<boolean\>): void
J
jiangminyang 已提交
562 563 564

禁用回调,通过注册回调函数获取相机禁用状态变化。

565
此接口为系统接口。
M
mali 已提交
566

J
jiangminyang 已提交
567 568 569 570
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
571
| 参数名     | 类型             | 必填 | 说明       |
J
jiangminyang 已提交
572
| -------- | --------------- | ---- | --------- |
573 574
| type     | string          | 是   | 监听事件,固定为'cameraMute',系统相机摄像头开关,cameraManager对象获取成功后可监听。系统设置打开或禁用相机会触发该事件并返回状态 |
| callback | AsyncCallback\<boolean> | 是   | 回调函数,用于获取禁用状态变化信息,返回true是开启状态,返回false是禁用状态。               |
J
jiangminyang 已提交
575 576 577 578

**示例:**

```js
579
cameraManager.on('cameraMute', (curMuetd) => {
580
    let isMuted = curMuetd;
J
jiangminyang 已提交
581 582 583
})
```

J
jiangminyang 已提交
584
## CameraStatusInfo
N
nikhilraut 已提交
585

J
jiangminyang 已提交
586 587 588 589
相机管理器回调返回的接口实例,表示相机状态信息。

**系统能力:** SystemCapability.Multimedia.Camera.Core。

M
mali 已提交
590 591 592 593
| 名称   | 类型                            |     必填     | 说明       |
| ------ | ----------------------------- | -------------- | ---------- |
| camera | [CameraDevice](#cameradevice) |        是       | 相机信息。 |
| status | [CameraStatus](#camerastatus) |        是        | 相机状态。 |
J
jiangminyang 已提交
594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614

## CameraPosition

枚举,相机位置。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称                         | 值   | 说明            |
| --------------------------- | ---- | -------------- |
| CAMERA_POSITION_UNSPECIFIED | 0    | 相机位置未指定。  |
| CAMERA_POSITION_BACK        | 1    | 后置相机。       |
| CAMERA_POSITION_FRONT       | 2    | 前置相机。       |

## CameraType

枚举,相机类型。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称                     | 值   | 说明            |
| ----------------------- | ---- | -------------- |
615
| CAMERA_TYPE_DEFAULT     | 0    | 相机类型未指定。  |
J
jiangminyang 已提交
616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638
| CAMERA_TYPE_WIDE_ANGLE  | 1    | 广角相机。       |
| CAMERA_TYPE_ULTRA_WIDE  | 2    | 超广角相机。     |
| CAMERA_TYPE_TELEPHOTO   | 3    | 长焦相机。       |
| CAMERA_TYPE_TRUE_DEPTH  | 4    | 带景深信息的相机。 |

## ConnectionType

枚举,相机连接类型。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称                          | 值   | 说明           |
| ---------------------------- | ---- | ------------- |
| CAMERA_CONNECTION_BUILT_IN   | 0    | 内置相机。      |
| CAMERA_CONNECTION_USB_PLUGIN | 1    | USB连接的相机。 |
| CAMERA_CONNECTION_REMOTE     | 2    | 远程连接的相机。 |

## CameraDevice

相机设备信息。

**系统能力:** SystemCapability.Multimedia.Camera.Core。

M
mali 已提交
639
| 名称           | 类型                                | 必填 | 说明        |
J
jiangminyang 已提交
640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658
| -------------- | --------------------------------- | ---- | ---------- |
| cameraId       | string                            | 是   | CameraDevice对象|
| cameraPosition | [CameraPosition](#cameraposition) | 是   | 相机位置。    |
| cameraType     | [CameraType](#cameratype)         | 是   | 相机类型。    |
| connectionType | [ConnectionType](#connectiontype) | 是   | 相机连接类型。 |

## Size

枚举,输出能力查询。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称   | 类型   | 可读 | 可写 | 说明         |
| ------ | ------ | ---- | ---- | ------------ |
| height | number | 是   | 是   | 图像尺寸高(像素)。 |
| width  | number | 是   | 是   | 图像尺寸宽(像素)。 |

## Point

J
jiangminyang 已提交
659
枚举,点坐标用于对焦、曝光配置。
J
jiangminyang 已提交
660 661

**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
662

J
jiangminyang 已提交
663 664 665 666 667 668 669 670 671 672 673
| 名称   | 类型   | 必填   | 说明         |
| ------ | ------ | ---- | ------------ |
| x      | number | 是    | 点的x坐标。   |
| y      | number | 是    | 点的y坐标。   |

## CameraFormat

枚举,输出格式。

**系统能力:** SystemCapability.Multimedia.Camera.Core

M
mali 已提交
674
| 名称                     | 值        | 说明         |
J
jiangminyang 已提交
675
| ----------------------- | --------- | ------------ |
J
jiangminyang 已提交
676
| CAMERA_FORMAT_RGBA_8888 | 3         | RGB格式的图片。             |
J
jiangminyang 已提交
677 678 679 680 681 682 683 684 685
| CAMERA_FORMAT_YUV_420_SP| 1003      | YUV 420 SP格式的图片。      |
| CAMERA_FORMAT_JPEG      | 2000      | JPEG格式的图片。            |

## CameraInput

会话中[CaptureSession](#capturesession)使用的相机信息。

### open

C
cold_yixiu 已提交
686
open\(callback: AsyncCallback\<void\>\): void
J
jiangminyang 已提交
687

J
jiangminyang 已提交
688
打开相机,通过注册回调函数获取状态。
N
nikhilraut 已提交
689

Z
zengyawen 已提交
690
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
691 692 693

**参数:**

M
mali 已提交
694
| 参数名     | 类型                  | 必填 | 说明                  |
J
jiangminyang 已提交
695
| -------- | -------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
696
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
697

M
mali 已提交
698 699 700 701 702 703 704 705 706 707
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400107                |  Can not use camera cause of conflict.               |
| 7400108                |  Camera disabled cause of security reason.                                  |
| 7400201                |  Camera service fatal error.                                  |

N
nikhilraut 已提交
708 709
**示例:**

Z
zengyawen 已提交
710
```js
J
jiangminyang 已提交
711
cameraInput.open((err) => {
N
nikhilraut 已提交
712
    if (err) {
713
        console.error(`Failed to open the camera. ${err.code}`);
N
nikhilraut 已提交
714 715
        return;
    }
J
jiangminyang 已提交
716 717
    console.log('Callback returned with camera opened.');
})
N
nikhilraut 已提交
718 719
```

J
jiangminyang 已提交
720
### open
N
nikhilraut 已提交
721

C
cold_yixiu 已提交
722
open(): Promise\<void\>
N
nikhilraut 已提交
723

J
jiangminyang 已提交
724
打开相机,通过Promise获取相机的状态。
N
nikhilraut 已提交
725

Z
zengyawen 已提交
726
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
727 728 729

**返回值:**

J
jiangminyang 已提交
730 731
| 类型           | 说明                      |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
732
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
733

M
mali 已提交
734 735 736 737 738 739 740 741 742 743
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400107                |  Can not use camera cause of conflict.               |
| 7400108                |  Camera disabled cause of security reason.                                  |
| 7400201                |  Camera service fatal error.                                  |

N
nikhilraut 已提交
744 745
**示例:**

Z
zengyawen 已提交
746
```js
J
jiangminyang 已提交
747 748
cameraInput.open().then(() => {
    console.log('Promise returned with camera opened.');
749 750 751
}).catch((err) => {
    console.error(`Failed to open the camera. ${err.code}`);
});
N
nikhilraut 已提交
752 753
```

J
jiangminyang 已提交
754
### close
N
nikhilraut 已提交
755

C
cold_yixiu 已提交
756
close\(callback: AsyncCallback\<void\>\): void
N
nikhilraut 已提交
757

J
jiangminyang 已提交
758
关闭相机,通过注册回调函数获取状态。
N
nikhilraut 已提交
759

Z
zengyawen 已提交
760
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
761 762 763

**参数:**

M
mali 已提交
764
| 参数名     | 类型                   | 必填 | 说明                  |
J
jiangminyang 已提交
765
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
766
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
767

M
mali 已提交
768 769 770 771 772 773 774 775
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                                  |

N
nikhilraut 已提交
776 777
**示例:**

Z
zengyawen 已提交
778
```js
J
jiangminyang 已提交
779 780
cameraInput.close((err) => {
    if (err) {
781
        console.error(`Failed to close the cameras. ${err.code}`);
J
jiangminyang 已提交
782 783 784 785 786 787 788 789
        return;
    }
    console.log('Callback returned with camera closed.');
})
```

### close

C
cold_yixiu 已提交
790
close(): Promise\<void\>
J
jiangminyang 已提交
791

J
jiangminyang 已提交
792
关闭相机,通过Promise获取状态。
J
jiangminyang 已提交
793 794 795 796 797 798 799

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型           | 说明                      |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
800
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
801

M
mali 已提交
802 803 804 805 806 807 808 809
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                                  |

J
jiangminyang 已提交
810 811 812 813 814
**示例:**

```js
cameraInput.close().then(() => {
    console.log('Promise returned with camera closed.');
815 816 817
}).catch((err) => {
    console.error(`Failed to close the cameras. ${err.code}`);
});
J
jiangminyang 已提交
818 819
```

820
### on('error')
J
jiangminyang 已提交
821

C
cold_yixiu 已提交
822
on(type: 'error', camera:CameraDevice, callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
823

824
监听CameraInput的错误事件,通过注册回调函数获取结果。
J
jiangminyang 已提交
825 826 827 828 829

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

830 831
| 参数名     | 类型                              | 必填 | 说明                                          |
| -------- | -------------------------------- | --- | ------------------------------------------- |
832
| type     | string                           | 是   | 监听事件,固定为'error',CameraInput对象创建成功可监听。相机设备出错情况下可触发该事件并返回结果,比如(设备不可用或者冲突等返回对应错误信息) |
833
| cameraDevice   | [CameraDevice](#cameradevice)    | 是   | CameraDevice对象。 |
C
cold_yixiu 已提交
834
| callback | ErrorCallback\<BusinessError\> | 是   | 回调函数,用于获取结果。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)   |
J
jiangminyang 已提交
835 836 837 838

**示例:**

```js
839 840 841 842
let cameraDevice = cameras[0];
cameraInput.on('error', cameraDevice, (error) => {
    console.log(`Camera input error code: ${error.code}`);
})
J
jiangminyang 已提交
843 844
```

845
## FlashMode
J
jiangminyang 已提交
846

847
枚举,闪光灯模式。
J
jiangminyang 已提交
848

849
**系统能力:** SystemCapability.Multimedia.Camera.Core。
J
jiangminyang 已提交
850

851 852 853 854 855 856
| 名称                    | 值   | 说明        |
| ---------------------- | ---- | ---------- |
| FLASH_MODE_CLOSE       | 0    | 闪光灯关闭。 |
| FLASH_MODE_OPEN        | 1    | 闪光灯打开。 |
| FLASH_MODE_AUTO        | 2    | 自动闪光灯。 |
| FLASH_MODE_ALWAYS_OPEN | 3    | 闪光灯常亮。 |
J
jiangminyang 已提交
857

858
## ExposureMode
N
nikhilraut 已提交
859

J
jiangminyang 已提交
860
枚举,曝光模式。
N
nikhilraut 已提交
861

Z
zengyawen 已提交
862
**系统能力:** SystemCapability.Multimedia.Camera.Core。
Z
zengyawen 已提交
863

J
jiangminyang 已提交
864 865
| 名称                           | 值   | 说明         |
| ----------------------------- | ---- | ----------- |
C
cold_yixiu 已提交
866 867 868
| EXPOSURE_MODE_LOCKED          | 0    | 锁定曝光模式。不支持曝光区域中心点设置。 |
| EXPOSURE_MODE_AUTO            | 1    | 自动曝光模式。支持曝光区域中心点设置,可以使用[setMeteringPoint](#setmeteringpoint)设置曝光区域中心点。 |
| EXPOSURE_MODE_CONTINUOUS_AUTO | 2    | 连续自动曝光。不支持曝光区域中心点设置。 |
Z
zengyawen 已提交
869

J
jiangminyang 已提交
870
 ## FocusMode
N
nikhilraut 已提交
871

J
jiangminyang 已提交
872
枚举,焦距模式。
N
nikhilraut 已提交
873

Z
zengyawen 已提交
874
**系统能力:** SystemCapability.Multimedia.Camera.Core。
Z
zengyawen 已提交
875

J
jiangminyang 已提交
876 877
| 名称                        | 值   | 说明          |
| -------------------------- | ---- | ------------ |
C
cold_yixiu 已提交
878 879 880 881
| FOCUS_MODE_MANUAL          | 0    | 手动对焦。通过手动修改相机焦距来改变对焦位置,不支持对焦点设置。     |
| FOCUS_MODE_CONTINUOUS_AUTO | 1    | 连续自动对焦。不支持对焦点设置。 |
| FOCUS_MODE_AUTO            | 2    | 自动对焦。支持对焦点设置,可以使用[setFocusPoint](#setfocuspoint)设置对焦点,根据对焦点执行一次自动对焦。对焦动作完成后(无论对焦成功或是对焦失败),都进入对焦锁定。应用层需要再次调用CONTINUOUS_AUTO后才能再次进入连续自动对焦。    |
| FOCUS_MODE_LOCKED          | 3    | 对焦锁定。不支持对焦点设置。     |
N
nikhilraut 已提交
882

J
jiangminyang 已提交
883
## FocusState
N
nikhilraut 已提交
884

J
jiangminyang 已提交
885
枚举,焦距状态。
Z
zengyawen 已提交
886

J
jiangminyang 已提交
887
**系统能力:** SystemCapability.Multimedia.Camera.Core。
Z
zengyawen 已提交
888

J
jiangminyang 已提交
889 890 891 892 893
| 名称                   | 值   | 说明       |
| --------------------- | ---- | --------- |
| FOCUS_STATE_SCAN      | 0    | 触发对焦。  |
| FOCUS_STATE_FOCUSED   | 1    | 对焦成功。  |
| FOCUS_STATE_UNFOCUSED | 2    | 未完成对焦。 |
Z
zengyawen 已提交
894

J
jiangminyang 已提交
895
## VideoStabilizationMode
Z
zengyawen 已提交
896

J
jiangminyang 已提交
897
枚举,视频防抖模式。
Z
zengyawen 已提交
898

J
jiangminyang 已提交
899
**系统能力:** SystemCapability.Multimedia.Camera.Core。
Z
zengyawen 已提交
900

J
jiangminyang 已提交
901 902 903 904 905 906 907
| 名称       | 值   | 说明         |
| --------- | ---- | ------------ |
| OFF       | 0    | 关闭视频防抖功能。   |
| LOW       | 1    | 使用基础防抖算法。   |
| MIDDLE    | 2    | 使用防抖效果一般的防抖算法,防抖效果优于LOW类型。   |
| HIGH      | 3    | 使用防抖效果最好的防抖算法,防抖效果优于MIDDLE类型。   |
| AUTO      | 4    | 自动进行选择。   |
N
nikhilraut 已提交
908

J
jiangminyang 已提交
909
## CaptureSession
N
nikhilraut 已提交
910

J
jiangminyang 已提交
911
拍照会话类,保存一次相机运行所需要的所有资源[CameraInput](#camerainput)[CameraOutput](#cameraoutput),并向相机设备申请完成相机功能(录像,拍照)。
N
nikhilraut 已提交
912

Z
zengyawen 已提交
913
### beginConfig
N
nikhilraut 已提交
914

915
beginConfig(): void
N
nikhilraut 已提交
916

917
开始配置会话。
N
nikhilraut 已提交
918

Z
zengyawen 已提交
919
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
920

921 922 923 924
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
925
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
926

M
mali 已提交
927 928 929 930 931 932 933 934
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400105                |  Session config locked.               |

N
nikhilraut 已提交
935 936
**示例:**

Z
zengyawen 已提交
937
```js
938 939 940
try {
    captureSession.beginConfig();
} catch (error) {
941
    // 失败返回错误码error.code并处理
942 943
    console.log(error.code);
}
N
nikhilraut 已提交
944 945
```

Z
zengyawen 已提交
946
### commitConfig
N
nikhilraut 已提交
947

C
cold_yixiu 已提交
948
commitConfig(callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
949

J
jiangminyang 已提交
950
提交配置信息,通过注册回调函数获取结果。
N
nikhilraut 已提交
951

Z
zengyawen 已提交
952
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
953 954 955

**参数:**

M
mali 已提交
956
| 参数名     | 类型                   | 必填 | 说明                  |
J
jiangminyang 已提交
957
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
958
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
959

M
mali 已提交
960 961 962 963 964 965 966 967 968
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400102                |  Operation not allow.                                  |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
969 970
**示例:**

Z
zengyawen 已提交
971
```js
N
nikhilraut 已提交
972 973
captureSession.commitConfig((err) => {
    if (err) {
974
        console.log('Failed to commitConfig '+ err.code);
N
nikhilraut 已提交
975 976 977 978 979 980
        return;
    }
    console.log('Callback invoked to indicate the commit config success.');
});
```

Z
zengyawen 已提交
981
### commitConfig
N
nikhilraut 已提交
982

C
cold_yixiu 已提交
983
commitConfig(): Promise\<void\>
N
nikhilraut 已提交
984

J
jiangminyang 已提交
985
提交配置信息,通过Promise获取结果。
N
nikhilraut 已提交
986

Z
zengyawen 已提交
987
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
988 989 990

**返回值:**

J
jiangminyang 已提交
991 992
| 类型            | 说明                      |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
993
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
994

M
mali 已提交
995 996 997 998 999 1000 1001 1002 1003
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400102                |  Operation not allow.                                  |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
1004 1005
**示例:**

Z
zengyawen 已提交
1006
```js
N
nikhilraut 已提交
1007 1008
captureSession.commitConfig().then(() => {
    console.log('Promise returned to indicate the commit config success.');
1009 1010 1011 1012
}).catch((err) => {
    // 失败返回错误码error.code并处理
    console.log('Failed to commitConfig '+ err.code);
});
N
nikhilraut 已提交
1013 1014
```

J
jiangminyang 已提交
1015
### addInput
N
nikhilraut 已提交
1016

1017
addInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1018

1019
[CameraInput](#camerainput)加入到会话。
N
nikhilraut 已提交
1020

Z
zengyawen 已提交
1021
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1022 1023 1024

**参数:**

M
mali 已提交
1025
| 参数名        | 类型                          | 必填 | 说明                     |
J
jiangminyang 已提交
1026 1027
| ----------- | --------------------------- | ---- | ------------------------ |
| cameraInput | [CameraInput](#camerainput) | 是   | 需要添加的CameraInput实例。 |
N
nikhilraut 已提交
1028

1029 1030 1031 1032
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1033
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1034

M
mali 已提交
1035 1036 1037 1038 1039 1040 1041 1042 1043
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400102                |  Operation not allow.                                  |

N
nikhilraut 已提交
1044 1045
**示例:**

Z
zengyawen 已提交
1046
```js
1047 1048 1049
try {
    captureSession.addInput(cameraInput);
} catch (error) {
1050
    // 失败返回错误码error.code并处理
1051 1052
    console.log(error.code);
}
N
nikhilraut 已提交
1053 1054
```

J
jiangminyang 已提交
1055
### removeInput
N
nikhilraut 已提交
1056

1057
removeInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1058

1059
移除[CameraInput](#camerainput)
N
nikhilraut 已提交
1060

Z
zengyawen 已提交
1061
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1062 1063 1064

**参数:**

M
mali 已提交
1065
| 参数名        | 类型                          | 必填 | 说明                      |
J
jiangminyang 已提交
1066 1067
| ----------- | --------------------------- | ---- | ------------------------ |
| cameraInput | [CameraInput](#camerainput) | 是   | 需要移除的CameraInput实例。 |
N
nikhilraut 已提交
1068

1069 1070 1071 1072
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1073
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1074

M
mali 已提交
1075 1076 1077 1078 1079 1080 1081 1082 1083
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400102                |  Operation not allow.                                  |

N
nikhilraut 已提交
1084 1085
**示例:**

Z
zengyawen 已提交
1086
```js
1087 1088 1089
try {
    captureSession.removeInput(cameraInput);
} catch (error) {
1090
    // 失败返回错误码error.code并处理
1091 1092
    console.log(error.code);
}
N
nikhilraut 已提交
1093 1094
```

J
jiangminyang 已提交
1095
### addOutput
N
nikhilraut 已提交
1096

C
cold_yixiu 已提交
1097
addOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1098

1099
[CameraOutput](#cameraoutput)加入到会话。
N
nikhilraut 已提交
1100

Z
zengyawen 已提交
1101
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1102 1103 1104

**参数:**

M
mali 已提交
1105
| 参数名           | 类型                             | 必填 | 说明                      |
J
jiangminyang 已提交
1106
| ------------- | ------------------------------- | ---- | ------------------------ |
C
cold_yixiu 已提交
1107
| cameraOutput  | [CameraOutput](#cameraoutput)   | 是   | 需要添加的CameraOutput实例。 |
N
nikhilraut 已提交
1108

1109 1110 1111 1112
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1113
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1114

M
mali 已提交
1115 1116 1117 1118 1119 1120 1121 1122 1123
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400102                |  Operation not allow.                                  |

N
nikhilraut 已提交
1124 1125
**示例:**

Z
zengyawen 已提交
1126
```js
1127
try {
C
cold_yixiu 已提交
1128
    captureSession.addOutput(cameraOutput);
1129
} catch (error) {
1130
    // 失败返回错误码error.code并处理
1131 1132
    console.log(error.code);
}
N
nikhilraut 已提交
1133 1134
```

Z
zengyawen 已提交
1135
### removeOutput
N
nikhilraut 已提交
1136

C
cold_yixiu 已提交
1137
removeOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1138

1139
从会话中移除[CameraOutput](#cameraoutput)
N
nikhilraut 已提交
1140

Z
zengyawen 已提交
1141
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1142 1143 1144

**参数:**

M
mali 已提交
1145
| 参数名           | 类型                             | 必填 | 说明                      |
J
jiangminyang 已提交
1146
| ------------- | ------------------------------- | ---- | ------------------------ |
C
cold_yixiu 已提交
1147
| cameraOutput  | [CameraOutput](#cameraoutput)   | 是   | 需要移除的CameraOutput实例。 |
N
nikhilraut 已提交
1148

1149 1150 1151 1152
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1153
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1154

M
mali 已提交
1155 1156 1157 1158 1159 1160 1161 1162 1163
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400102                |  Operation not allow.                                  |

N
nikhilraut 已提交
1164 1165
**示例:**

Z
zengyawen 已提交
1166
```js
1167 1168 1169
try {
    captureSession.removeOutput(previewOutput);
} catch (error) {
1170
    // 失败返回错误码error.code并处理
1171 1172
    console.log(error.code);
}
N
nikhilraut 已提交
1173 1174
```

J
jiangminyang 已提交
1175
### start
N
nikhilraut 已提交
1176

C
cold_yixiu 已提交
1177
start\(callback: AsyncCallback\<void\>\): void
N
nikhilraut 已提交
1178

J
jiangminyang 已提交
1179
开始会话工作,通过注册回调函数获取结果。
N
nikhilraut 已提交
1180

Z
zengyawen 已提交
1181
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1182 1183 1184

**参数:**

M
mali 已提交
1185
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
1186
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
1187
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1188

M
mali 已提交
1189 1190 1191 1192 1193 1194 1195 1196 1197
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
1198 1199
**示例:**

Z
zengyawen 已提交
1200
```js
J
jiangminyang 已提交
1201
captureSession.start((err) => {
N
nikhilraut 已提交
1202
    if (err) {
1203
        console.error(`Failed to start the session ${err.code}`);
N
nikhilraut 已提交
1204 1205
        return;
    }
J
jiangminyang 已提交
1206
    console.log('Callback invoked to indicate the session start success.');
N
nikhilraut 已提交
1207 1208 1209
});
```

J
jiangminyang 已提交
1210
### start
N
nikhilraut 已提交
1211

C
cold_yixiu 已提交
1212
start\(\): Promise\<void\>
N
nikhilraut 已提交
1213

J
jiangminyang 已提交
1214
开始会话工作,通过Promise获取结果。
N
nikhilraut 已提交
1215

Z
zengyawen 已提交
1216
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1217 1218 1219

**返回值:**

J
jiangminyang 已提交
1220 1221
| 类型            | 说明                     |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
1222
| Promise\<void\> | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
1223

M
mali 已提交
1224 1225 1226 1227 1228 1229 1230 1231 1232
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
1233 1234
**示例:**

Z
zengyawen 已提交
1235
```js
J
jiangminyang 已提交
1236 1237
captureSession.start().then(() => {
    console.log('Promise returned to indicate the session start success.');
1238 1239 1240
}).catch((err) => {
    console.error(`Failed to start the session ${err.code}`);
});
N
nikhilraut 已提交
1241 1242
```

J
jiangminyang 已提交
1243
### stop
N
nikhilraut 已提交
1244

C
cold_yixiu 已提交
1245
stop\(callback: AsyncCallback\<void\>\): void
N
nikhilraut 已提交
1246

J
jiangminyang 已提交
1247
停止会话工作,通过注册回调函数获取结果。
N
nikhilraut 已提交
1248

Z
zengyawen 已提交
1249
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1250 1251 1252

**参数:**

M
mali 已提交
1253
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
1254
| -------- | -------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
1255
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1256

M
mali 已提交
1257 1258 1259 1260 1261 1262 1263 1264
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
1265 1266
**示例:**

Z
zengyawen 已提交
1267
```js
J
jiangminyang 已提交
1268
captureSession.stop((err) => {
N
nikhilraut 已提交
1269
    if (err) {
1270
        console.error(`Failed to stop the session ${err.code}`);
N
nikhilraut 已提交
1271 1272
        return;
    }
J
jiangminyang 已提交
1273
    console.log('Callback invoked to indicate the session stop success.');
N
nikhilraut 已提交
1274 1275 1276
});
```

J
jiangminyang 已提交
1277
### stop
N
nikhilraut 已提交
1278

C
cold_yixiu 已提交
1279
stop(): Promise\<void\>
N
nikhilraut 已提交
1280

J
jiangminyang 已提交
1281
停止会话工作,通过Promise获取结果。
N
nikhilraut 已提交
1282

Z
zengyawen 已提交
1283
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1284 1285 1286

**返回值:**

J
jiangminyang 已提交
1287 1288
| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
1289
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1290

M
mali 已提交
1291 1292 1293 1294 1295 1296 1297 1298
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
1299 1300
**示例:**

Z
zengyawen 已提交
1301
```js
J
jiangminyang 已提交
1302 1303
captureSession.stop().then(() => {
    console.log('Promise returned to indicate the session stop success.');
1304 1305 1306
}).catch((err) => {
    console.error(`Failed to stop the session ${err.code}`);
});
N
nikhilraut 已提交
1307 1308
```

Z
zengyawen 已提交
1309
### release
N
nikhilraut 已提交
1310

C
cold_yixiu 已提交
1311
release\(callback: AsyncCallback\<void\>\): void
N
nikhilraut 已提交
1312

J
jiangminyang 已提交
1313
释放会话资源,通过注册回调函数获取结果。
N
nikhilraut 已提交
1314

Z
zengyawen 已提交
1315
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1316 1317

**参数:**
Z
zengyawen 已提交
1318

M
mali 已提交
1319
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
1320
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
1321
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1322

M
mali 已提交
1323 1324 1325 1326 1327 1328 1329 1330
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
1331 1332
**示例:**

Z
zengyawen 已提交
1333
```js
N
nikhilraut 已提交
1334 1335
captureSession.release((err) => {
    if (err) {
1336
        console.error(`Failed to release the CaptureSession instance ${err.code}`);
N
nikhilraut 已提交
1337 1338 1339 1340 1341 1342
        return;
    }
    console.log('Callback invoked to indicate that the CaptureSession instance is released successfully.');
});
```

Z
zengyawen 已提交
1343
### release
N
nikhilraut 已提交
1344

C
cold_yixiu 已提交
1345
release(): Promise\<void\>
N
nikhilraut 已提交
1346

J
jiangminyang 已提交
1347
释放会话资源,通过Promise获取结果。
N
nikhilraut 已提交
1348

Z
zengyawen 已提交
1349
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1350 1351 1352

**返回值:**

J
jiangminyang 已提交
1353 1354
| 类型            | 说明                     |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
1355
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1356

M
mali 已提交
1357 1358 1359 1360 1361 1362 1363 1364
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
1365 1366
**示例:**

Z
zengyawen 已提交
1367
```js
N
nikhilraut 已提交
1368 1369
captureSession.release().then(() => {
    console.log('Promise returned to indicate that the CaptureSession instance is released successfully.');
1370 1371 1372
}).catch((err) => {
    console.error(`Failed to release the CaptureSession instance ${err.code}`);
});
N
nikhilraut 已提交
1373 1374
```

J
jiangminyang 已提交
1375
### hasFlash
N
nikhilraut 已提交
1376

1377
hasFlash(): boolean
N
nikhilraut 已提交
1378

J
jiangminyang 已提交
1379
检测是否有闪光灯,通过注册回调函数获取结果。
N
nikhilraut 已提交
1380

Z
zengyawen 已提交
1381
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1382

J
jiangminyang 已提交
1383
**返回值:**
Z
zengyawen 已提交
1384

1385 1386
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1387
| boolean    | 返回true表示设备支持闪光灯。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
Z
zengyawen 已提交
1388

M
mali 已提交
1389 1390 1391 1392 1393 1394 1395 1396
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1397
**示例:**
Z
zengyawen 已提交
1398

J
jiangminyang 已提交
1399
```js
1400 1401 1402
try {
    let status = captureSession.hasFlash();
} catch (error) {
1403
    // 失败返回错误码error.code并处理
1404 1405
    console.log(error.code);
}
J
jiangminyang 已提交
1406
```
N
nikhilraut 已提交
1407

J
jiangminyang 已提交
1408
### isFlashModeSupported
Z
zengyawen 已提交
1409

1410
isFlashModeSupported(flashMode: FlashMode): boolean
N
nikhilraut 已提交
1411

1412
检测闪光灯模式是否支持。
N
nikhilraut 已提交
1413

Z
zengyawen 已提交
1414
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1415 1416 1417

**参数:**

M
mali 已提交
1418
| 参数名       | 类型                     | 必填 | 说明                               |
J
jiangminyang 已提交
1419 1420
| --------- | ----------------------- | ---- | --------------------------------- |
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。                     |
N
nikhilraut 已提交
1421 1422 1423

**返回值:**

1424 1425
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1426
| boolean    | 返回true表示支持该闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1427

M
mali 已提交
1428 1429 1430 1431 1432 1433 1434 1435
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

N
nikhilraut 已提交
1436 1437
**示例:**

Z
zengyawen 已提交
1438
```js
1439 1440 1441
try {
    let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1442
    // 失败返回错误码error.code并处理
1443 1444
    console.log(error.code);
}
N
nikhilraut 已提交
1445 1446
```

J
jiangminyang 已提交
1447
### setFlashMode
N
nikhilraut 已提交
1448

1449
setFlashMode(flashMode: FlashMode): void
N
nikhilraut 已提交
1450

1451
设置闪光灯模式。
N
nikhilraut 已提交
1452

J
jiangminyang 已提交
1453
进行设置之前,需要先检查:
N
nikhilraut 已提交
1454

J
jiangminyang 已提交
1455 1456
1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash)
2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported)
N
nikhilraut 已提交
1457

Z
zengyawen 已提交
1458
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1459 1460 1461

**参数:**

M
mali 已提交
1462
| 参数名       | 类型                     | 必填 | 说明                  |
J
jiangminyang 已提交
1463
| --------- | ----------------------- | ---- | --------------------- |
1464 1465 1466 1467 1468 1469
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。       |

**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1470
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1471

M
mali 已提交
1472 1473 1474 1475 1476 1477 1478 1479
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

N
nikhilraut 已提交
1480 1481
**示例:**

Z
zengyawen 已提交
1482
```js
1483 1484 1485
try {
    captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1486
    // 失败返回错误码error.code并处理
1487 1488
    console.log(error.code);
}
N
nikhilraut 已提交
1489 1490
```

1491
### getFlashMode
J
jiangminyang 已提交
1492

1493
getFlashMode(): FlashMode
J
jiangminyang 已提交
1494

1495
获取当前设备的闪光灯模式。
N
nikhilraut 已提交
1496

Z
zengyawen 已提交
1497
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1498 1499 1500

**返回值:**

1501 1502
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1503
| [FlashMode](#flashmode)    | 获取当前设备的闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
1504

M
mali 已提交
1505 1506 1507 1508 1509 1510 1511 1512
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

N
nikhilraut 已提交
1513 1514
**示例:**

Z
zengyawen 已提交
1515
```js
1516 1517 1518
try {
    let flashMode = captureSession.getFlashMode();
} catch (error) {
1519
    // 失败返回错误码error.code并处理
1520 1521
    console.log(error.code);
}
N
nikhilraut 已提交
1522 1523
```

J
jiangminyang 已提交
1524
### isExposureModeSupported
J
jiangminyang 已提交
1525

1526
isExposureModeSupported(aeMode: ExposureMode): boolean;
J
jiangminyang 已提交
1527

1528
检测曝光模式是否支持。
Z
zengyawen 已提交
1529 1530 1531

**系统能力:** SystemCapability.Multimedia.Camera.Core

J
jiangminyang 已提交
1532
**参数:**
J
jiangminyang 已提交
1533

M
mali 已提交
1534
| 参数名      | 类型                           | 必填  | 说明                           |
J
jiangminyang 已提交
1535 1536
| -------- | -------------------------------| ---- | ----------------------------- |
| aeMode   | [ExposureMode](#exposuremode)  | 是   | 曝光模式。                      |
Z
zengyawen 已提交
1537

J
jiangminyang 已提交
1538
**返回值:**
Z
zengyawen 已提交
1539

1540 1541
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1542
| boolean    | 获取是否支持曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1543

M
mali 已提交
1544 1545 1546 1547 1548 1549 1550 1551
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1552 1553 1554
**示例:**

```js
1555 1556 1557
try {
    let isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
} catch (error) {
1558
    // 失败返回错误码error.code并处理
1559 1560
    console.log(error.code);
}
J
jiangminyang 已提交
1561 1562
```

J
jiangminyang 已提交
1563
### getExposureMode
J
jiangminyang 已提交
1564

1565
getExposureMode(): ExposureMode
J
jiangminyang 已提交
1566

1567
获取当前曝光模式。
Z
zengyawen 已提交
1568

J
jiangminyang 已提交
1569 1570 1571 1572
**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

1573 1574
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1575
| [ExposureMode](#exposuremode)    | 获取当前曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1576

M
mali 已提交
1577 1578 1579 1580 1581 1582 1583 1584
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1585 1586 1587
**示例:**

```js
1588 1589 1590
try {
    let exposureMode = captureSession.getExposureMode();
} catch (error) {
1591
    // 失败返回错误码error.code并处理
1592 1593
    console.log(error.code);
}
J
jiangminyang 已提交
1594
```
N
nikhilraut 已提交
1595

J
jiangminyang 已提交
1596
### setExposureMode
N
nikhilraut 已提交
1597

1598
setExposureMode(aeMode: ExposureMode): void
N
nikhilraut 已提交
1599

1600
设置曝光模式。
N
nikhilraut 已提交
1601

J
jiangminyang 已提交
1602
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1603

J
jiangminyang 已提交
1604
**参数:**
N
nikhilraut 已提交
1605

M
mali 已提交
1606
| 参数名      | 类型                            | 必填 | 说明                    |
J
jiangminyang 已提交
1607 1608
| -------- | -------------------------------| ---- | ----------------------- |
| aeMode   | [ExposureMode](#exposuremode)  | 是   | 曝光模式。                |
J
jiangminyang 已提交
1609

1610 1611 1612 1613
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1614
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1615

M
mali 已提交
1616 1617 1618 1619 1620 1621 1622 1623
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1624 1625 1626
**示例:**

```js
1627 1628 1629
try {
    captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
} catch (error) {
1630
    // 失败返回错误码error.code并处理
1631 1632
    console.log(error.code);
}
J
jiangminyang 已提交
1633 1634
```

J
jiangminyang 已提交
1635
### getMeteringPoint
J
jiangminyang 已提交
1636

1637
getMeteringPoint(): Point
J
jiangminyang 已提交
1638

1639
查询曝光区域中心点。(该接口目前为预留,将在3.2版本开放)
J
jiangminyang 已提交
1640 1641

**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1642

J
jiangminyang 已提交
1643
**返回值:**
N
nikhilraut 已提交
1644

1645 1646
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1647
| [Point](#point)    | 获取当前曝光点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1648

M
mali 已提交
1649 1650 1651 1652 1653 1654 1655 1656
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1657 1658 1659
**示例:**

```js
1660 1661 1662
try {
    let exposurePoint = captureSession.getMeteringPoint();
} catch (error) {
1663
    // 失败返回错误码error.code并处理
1664 1665
    console.log(error.code);
}
J
jiangminyang 已提交
1666 1667
```

J
jiangminyang 已提交
1668
### setMeteringPoint
J
jiangminyang 已提交
1669

1670
setMeteringPoint(point: Point): void
J
jiangminyang 已提交
1671

C
cold_yixiu 已提交
1672 1673 1674 1675
设置曝光区域中心点,曝光点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。
此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以
设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y},
则转换后的坐标点为{y/h,1-x/w}。
J
jiangminyang 已提交
1676 1677 1678

**系统能力:** SystemCapability.Multimedia.Camera.Core

J
jiangminyang 已提交
1679 1680
**参数:**

M
mali 已提交
1681
| 参数名           | 类型                            | 必填 | 说明                 |
J
jiangminyang 已提交
1682
| ------------- | -------------------------------| ---- | ------------------- |
M
mali 已提交
1683
| exposurePoint | [Point](#point)                | 是   | 曝光点。 设置范围应在[0,1]之内, 超过范围,如果小于0设置0,大于1设置1             |
J
jiangminyang 已提交
1684

1685 1686 1687 1688
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1689
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1690

M
mali 已提交
1691 1692 1693 1694 1695 1696 1697 1698
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1699 1700 1701
**示例:**

```js
1702 1703 1704 1705
const exposurePoint = {x: 1, y: 1};
try {
    captureSession.setMeteringPoint(exposurePoint);
} catch (error) {
1706
    // 失败返回错误码error.code并处理
1707 1708
    console.log(error.code);
}
J
jiangminyang 已提交
1709 1710 1711 1712
```

### getExposureBiasRange

C
cold_yixiu 已提交
1713
getExposureBiasRange(): Array\<number\>
J
jiangminyang 已提交
1714

1715
查询曝光补偿范围。
J
jiangminyang 已提交
1716 1717 1718 1719 1720

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

1721 1722
| 类型        | 说明                          |
| ---------- | ----------------------------- |
C
cold_yixiu 已提交
1723
| Array\<number\>   | 获取补偿范围的数组。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1724

M
mali 已提交
1725 1726 1727 1728 1729 1730 1731 1732
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1733 1734 1735
**示例:**

```js
1736 1737 1738
try {
    let biasRangeArray = captureSession.getExposureBiasRange();
} catch (error) {
1739
    // 失败返回错误码error.code并处理
1740 1741
    console.log(error.code);
}
J
jiangminyang 已提交
1742 1743 1744 1745
```

### setExposureBias

1746
setExposureBias(exposureBias: number): void
J
jiangminyang 已提交
1747

C
cold_yixiu 已提交
1748
设置曝光补偿,曝光补偿值(EV)。
J
jiangminyang 已提交
1749 1750 1751 1752 1753 1754 1755

进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrange)查询支持的范围。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
1756
| 参数名     | 类型                            | 必填 | 说明                 |
J
jiangminyang 已提交
1757
| -------- | -------------------------------| ---- | ------------------- |
M
mali 已提交
1758
| exposureBias   | number                   | 是   | 曝光补偿,getExposureBiasRange查询支持的范围,接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode), 如果设置超过支持范围的值,自动匹配到就近临界点 |
J
jiangminyang 已提交
1759

M
mali 已提交
1760 1761 1762 1763 1764 1765 1766 1767
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1768 1769 1770
**示例:**

```js
M
mali 已提交
1771
let exposureBias = biasRangeArray[0];
1772 1773 1774
try {
    captureSession.setExposureBias(exposureBias);
} catch (error) {
1775
    // 失败返回错误码error.code并处理
1776 1777
    console.log(error.code);
}
J
jiangminyang 已提交
1778 1779 1780 1781
```

### getExposureValue

1782
getExposureValue(): number
J
jiangminyang 已提交
1783

1784
查询当前曝光值。
J
jiangminyang 已提交
1785 1786 1787 1788 1789

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

1790 1791
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1792
| number    | 获取曝光值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1793

M
mali 已提交
1794 1795 1796 1797 1798 1799 1800 1801
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1802 1803 1804
**示例:**

```js
1805 1806 1807
try {
    let exposureValue = captureSession.getExposureValue();
} catch (error) {
1808
    // 失败返回错误码error.code并处理
1809 1810
    console.log(error.code);
}
J
jiangminyang 已提交
1811 1812 1813 1814
```

### isFocusModeSupported

1815
isFocusModeSupported(afMode: FocusMode): boolean
J
jiangminyang 已提交
1816

1817
检测对焦模式是否支持。
J
jiangminyang 已提交
1818 1819 1820 1821 1822

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
1823
| 参数名      | 类型                     | 必填 | 说明                              |
J
jiangminyang 已提交
1824 1825 1826 1827 1828
| -------- | ----------------------- | ---- | -------------------------------- |
| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。                    |

**返回值:**

1829 1830
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1831
| boolean    | 返回true表示支持该焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1832

M
mali 已提交
1833 1834 1835 1836 1837 1838 1839 1840
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1841 1842 1843
**示例:**

```js
1844 1845 1846
try {
    let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
1847
    // 失败返回错误码error.code并处理
1848 1849
    console.log(error.code);
}
J
jiangminyang 已提交
1850 1851 1852 1853
```

### setFocusMode

1854
setFocusMode(afMode: FocusMode): void
J
jiangminyang 已提交
1855

1856
设置对焦模式。
J
jiangminyang 已提交
1857

J
jiangminyang 已提交
1858
进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)
J
jiangminyang 已提交
1859 1860 1861 1862 1863

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
1864
| 参数名      | 类型                     | 必填 | 说明                 |
J
jiangminyang 已提交
1865 1866 1867
| -------- | ----------------------- | ---- | ------------------- |
| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。       |

1868 1869 1870 1871
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1872
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1873

M
mali 已提交
1874 1875 1876 1877 1878 1879 1880 1881
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1882 1883 1884
**示例:**

```js
1885 1886 1887
try {
    captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
1888
    // 失败返回错误码error.code并处理
1889 1890
    console.log(error.code);
}
J
jiangminyang 已提交
1891 1892 1893 1894
```

### getFocusMode

1895
getFocusMode(): FocusMode
J
jiangminyang 已提交
1896

1897
获取当前的对焦模式。
J
jiangminyang 已提交
1898 1899 1900 1901 1902

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

1903 1904
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1905
| [FocusMode](#focusmode)   | 获取当前设备的焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1906

M
mali 已提交
1907 1908 1909 1910 1911 1912 1913 1914
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1915 1916 1917
**示例:**

```js
1918 1919 1920
try {
    let afMode = captureSession.getFocusMode();
} catch (error) {
1921
    // 失败返回错误码error.code并处理
1922 1923
    console.log(error.code);
}
J
jiangminyang 已提交
1924 1925 1926 1927
```

### setFocusPoint

1928
setFocusPoint(point: Point): void
J
jiangminyang 已提交
1929

C
cold_yixiu 已提交
1930 1931 1932 1933
设置焦点,焦点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。
此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以
设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y},
则转换后的坐标点为{y/h,1-x/w}。
J
jiangminyang 已提交
1934 1935 1936 1937 1938

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
1939
| 参数名      | 类型                     | 必填 | 说明                 |
J
jiangminyang 已提交
1940
| -------- | ----------------------- | ---- | ------------------- |
M
mali 已提交
1941
| Point1    | [Point](#point)         | 是   | 焦点。设置范围应在[0,1]之内, 超过范围,如果小于0设置0,大于1设置1   |
J
jiangminyang 已提交
1942

1943 1944 1945 1946
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
1947
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1948

M
mali 已提交
1949 1950 1951 1952 1953 1954 1955 1956
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1957 1958 1959 1960
**示例:**

```js
const Point1 = {x: 1, y: 1};
1961 1962 1963
try {
    captureSession.setFocusPoint(Point1);
} catch (error) {
1964
    // 失败返回错误码error.code并处理
1965 1966
    console.log(error.code);
}
J
jiangminyang 已提交
1967 1968 1969 1970
```

### getFocusPoint

1971
getFocusPoint(): Point
J
jiangminyang 已提交
1972

1973
查询焦点。
J
jiangminyang 已提交
1974 1975 1976 1977 1978

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

1979 1980
| 类型        | 说明                          |
| ---------- | ----------------------------- |
1981
| [Point](#point)    | 用于获取当前焦点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
1982

M
mali 已提交
1983 1984 1985 1986 1987 1988 1989 1990
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
1991 1992 1993
**示例:**

```js
1994 1995 1996
try {
    let point = captureSession.getFocusPoint();
} catch (error) {
1997
    // 失败返回错误码error.code并处理
1998 1999
    console.log(error.code);
}
J
jiangminyang 已提交
2000 2001 2002 2003
```

### getFocalLength

2004
getFocalLength(): number
J
jiangminyang 已提交
2005

2006
查询焦距值。
J
jiangminyang 已提交
2007 2008 2009 2010 2011

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

2012 2013
| 类型        | 说明                          |
| ---------- | ----------------------------- |
2014
| number    | 用于获取当前焦距。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2015

M
mali 已提交
2016 2017 2018 2019 2020 2021 2022 2023
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2024 2025 2026
**示例:**

```js
2027 2028 2029
try {
    let focalLength = captureSession.getFocalLength();
} catch (error) {
2030
    // 失败返回错误码error.code并处理
2031 2032
    console.log(error.code);
}
J
jiangminyang 已提交
2033 2034 2035 2036
```

### getZoomRatioRange

C
cold_yixiu 已提交
2037
getZoomRatioRange(): Array\<number\>
J
jiangminyang 已提交
2038

2039
获取支持的变焦范围。
J
jiangminyang 已提交
2040 2041 2042

**系统能力:** SystemCapability.Multimedia.Camera.Core

2043
**返回值:**
J
jiangminyang 已提交
2044

2045 2046
| 类型        | 说明                          |
| ---------- | ----------------------------- |
C
cold_yixiu 已提交
2047
| Array\<number\>   | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2048

M
mali 已提交
2049 2050 2051 2052 2053 2054 2055 2056
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2057 2058 2059
**示例:**

```js
2060 2061 2062
try {
    let zoomRatioRange = captureSession.getZoomRatioRange();
} catch (error) {
2063
    // 失败返回错误码error.code并处理
2064 2065
    console.log(error.code);
}
J
jiangminyang 已提交
2066 2067
```

2068
### setZoomRatio
J
jiangminyang 已提交
2069

2070
setZoomRatio(zoomRatio: number): void
J
jiangminyang 已提交
2071

C
cold_yixiu 已提交
2072
设置变焦比,变焦精度最高为小数点后两位,超过变焦精度的变焦值系统无法响应。
J
jiangminyang 已提交
2073 2074 2075

**系统能力:** SystemCapability.Multimedia.Camera.Core

2076
**参数:**
J
jiangminyang 已提交
2077

2078 2079 2080
| 参数名       | 类型                  | 必填 | 说明                 |
| --------- | -------------------- | ---- | ------------------- |
| zoomRatio | number               | 是   | 可变焦距比,通过getZoomRatioRange获取支持的变焦范围 |
J
jiangminyang 已提交
2081

2082 2083 2084 2085
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
2086
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2087

M
mali 已提交
2088 2089 2090 2091 2092 2093 2094 2095
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2096 2097 2098
**示例:**

```js
2099 2100 2101 2102
let zoomRatio = zoomRatioRange[0];
try {
    captureSession.setZoomRatio(zoomRatio);
} catch (error) {
2103
    // 失败返回错误码error.code并处理
2104 2105
    console.log(error.code);
}
J
jiangminyang 已提交
2106 2107
```

2108
### getZoomRatio
J
jiangminyang 已提交
2109

2110
getZoomRatio(): number
J
jiangminyang 已提交
2111

2112
获取当前的变焦比。
J
jiangminyang 已提交
2113 2114 2115

**系统能力:** SystemCapability.Multimedia.Camera.Core

2116
**返回值:**
J
jiangminyang 已提交
2117

2118 2119
| 类型        | 说明                          |
| ---------- | ----------------------------- |
2120
| number    | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2121

M
mali 已提交
2122 2123 2124 2125 2126 2127 2128 2129
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2130 2131 2132
**示例:**

```js
2133 2134 2135
try {
    let zoomRatio = captureSession.getZoomRatio();
} catch (error) {
2136
    // 失败返回错误码error.code并处理
2137 2138
    console.log(error.code);
}
J
jiangminyang 已提交
2139 2140
```

2141
### isVideoStabilizationModeSupported
J
jiangminyang 已提交
2142

2143
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean
J
jiangminyang 已提交
2144

2145
查询是否支持指定的视频防抖模式。
J
jiangminyang 已提交
2146 2147 2148

**系统能力:** SystemCapability.Multimedia.Camera.Core

2149 2150 2151 2152 2153 2154
**参数:**

| 参数名      | 类型                                              | 必填 | 说明                             |
| -------- | ------------------------------------------------- | ---- | ------------------------------ |
| vsMode   | [VideoStabilizationMode](#videostabilizationmode) | 是   | 视频防抖模式。                    |

J
jiangminyang 已提交
2155 2156
**返回值:**

2157 2158
| 类型        | 说明                          |
| ---------- | ----------------------------- |
2159
| boolean    | 返回视频防抖模式是否支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2160

M
mali 已提交
2161 2162 2163 2164 2165 2166 2167 2168
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2169 2170 2171
**示例:**

```js
2172 2173 2174
try {
    let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF);
} catch (error) {
2175
    // 失败返回错误码error.code并处理
2176 2177
    console.log(error.code);
}
J
jiangminyang 已提交
2178 2179
```

2180
### getActiveVideoStabilizationMode
J
jiangminyang 已提交
2181

2182
getActiveVideoStabilizationMode(): VideoStabilizationMode
J
jiangminyang 已提交
2183

2184
查询当前正在使用的视频防抖模式。
J
jiangminyang 已提交
2185 2186 2187

**系统能力:** SystemCapability.Multimedia.Camera.Core

2188
**返回值:**
J
jiangminyang 已提交
2189

2190 2191
| 类型        | 说明                          |
| ---------- | ----------------------------- |
2192
| VideoStabilizationMode    | 视频防抖是否正在使用。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2193

M
mali 已提交
2194 2195 2196 2197 2198 2199 2200 2201
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2202 2203 2204
**示例:**

```js
2205 2206 2207
try {
    let vsMode = captureSession.getActiveVideoStabilizationMode();
} catch (error) {
2208
    // 失败返回错误码error.code并处理
2209 2210
    console.log(error.code);
}
J
jiangminyang 已提交
2211 2212 2213 2214
```

### setVideoStabilizationMode

2215
setVideoStabilizationMode(mode: VideoStabilizationMode): void
J
jiangminyang 已提交
2216

2217
设置视频防抖模式。
J
jiangminyang 已提交
2218 2219 2220 2221 2222

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2223
| 参数名      | 类型                                              | 必填 | 说明                    |
J
jiangminyang 已提交
2224 2225 2226
| -------- | ------------------------------------------------- | ---- | --------------------- |
| mode     | [VideoStabilizationMode](#videostabilizationmode) | 是   | 需要设置的视频防抖模式。   |

2227 2228 2229 2230
**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
2231
| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2232

M
mali 已提交
2233 2234 2235 2236 2237 2238 2239 2240
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2241 2242 2243
**示例:**

```js
2244 2245 2246
try {
    captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF);
} catch (error) {
2247
    // 失败返回错误码error.code并处理
2248 2249
    console.log(error.code);
}
J
jiangminyang 已提交
2250 2251 2252 2253
```

### on('focusStateChange')

C
cold_yixiu 已提交
2254
on(type: 'focusStateChange', callback: AsyncCallback\<FocusState\>): void
J
jiangminyang 已提交
2255

2256
监听相机聚焦的状态变化,通过注册回调函数获取结果。
J
jiangminyang 已提交
2257 2258 2259 2260 2261

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2262
| 参数名     | 类型                                      | 必填 | 说明                       |
J
jiangminyang 已提交
2263
| -------- | ----------------------------------------- | ---- | ------------------------ |
2264
| type     | string                                    | 是   | 监听事件,固定为'focusStateChange',session 创建成功可监听。仅当自动对焦模式时,且相机对焦状态发生改变时可触发该事件 |
C
cold_yixiu 已提交
2265
| callback | AsyncCallback\<[FocusState](#focusstate)\> | 是   | 回调函数,用于获取当前对焦状态。  |
J
jiangminyang 已提交
2266 2267 2268 2269

**示例:**

```js
J
jiangminyang 已提交
2270
captureSession.on('focusStateChange', (focusState) => {
J
jiangminyang 已提交
2271 2272 2273 2274 2275 2276
    console.log(`Focus state  : ${focusState}`);
})
```

### on('error')

C
cold_yixiu 已提交
2277
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
2278 2279 2280 2281 2282 2283 2284

监听拍照会话的错误事件,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2285
| 参数名     | 类型                                                          | 必填 | 说明                           |
J
jiangminyang 已提交
2286
| -------- | ----------------------------------------------------------- | ---- | ------------------------------ |
2287
| type     | string                                                      | 是   | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用(beginConfig(),commitConfig(),addInput)等接口发生错误时返回错误信息。 |
C
cold_yixiu 已提交
2288
| callback | ErrorCallback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)        |
J
jiangminyang 已提交
2289 2290 2291 2292

**示例:**

```js
2293 2294
captureSession.on('error', (error) => {
    console.log(`Capture session error code: ${error.code}`);
J
jiangminyang 已提交
2295 2296 2297 2298 2299 2300 2301
})
```

## CameraOutput

会话中[CaptureSession](#capturesession)使用的输出信息,output的基类。

M
mali 已提交
2302
## PreviewOutput
J
jiangminyang 已提交
2303

M
mali 已提交
2304
预览输出类。继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
2305

M
mali 已提交
2306 2307
### start

C
cold_yixiu 已提交
2308
start(callback: AsyncCallback\<void\>): void
M
mali 已提交
2309 2310

开始输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
2311 2312 2313 2314 2315

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2316
| 参数名      | 类型                  | 必填 | 说明                 |
M
mali 已提交
2317
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
2318
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2319

M
mali 已提交
2320 2321 2322 2323 2324 2325 2326 2327
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2328 2329 2330
**示例:**

```js
M
mali 已提交
2331
previewOutput.start((err) => {
J
jiangminyang 已提交
2332
    if (err) {
2333
        console.error(`Failed to start the previewOutput. ${err.code}`);
J
jiangminyang 已提交
2334 2335
        return;
    }
M
mali 已提交
2336 2337
    console.log('Callback returned with previewOutput started.');
})
J
jiangminyang 已提交
2338 2339
```

M
mali 已提交
2340
### start
J
jiangminyang 已提交
2341

C
cold_yixiu 已提交
2342
start(): Promise\<void\>
J
jiangminyang 已提交
2343

M
mali 已提交
2344
开始输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
2345 2346 2347 2348 2349 2350 2351

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
2352
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)|
J
jiangminyang 已提交
2353

M
mali 已提交
2354 2355 2356 2357 2358 2359 2360 2361
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |

J
jiangminyang 已提交
2362 2363 2364
**示例:**

```js
M
mali 已提交
2365 2366
previewOutput.start().then(() => {
    console.log('Promise returned with previewOutput started.');
2367 2368 2369
}).catch((err) => {
    console.log('Failed to previewOutput start '+ err.code);
});
J
jiangminyang 已提交
2370 2371
```

M
mali 已提交
2372
### stop
J
jiangminyang 已提交
2373

C
cold_yixiu 已提交
2374
stop(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2375

M
mali 已提交
2376
停止输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
2377 2378 2379 2380 2381

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2382
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
2383
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
2384
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
J
jiangminyang 已提交
2385 2386 2387 2388

**示例:**

```js
M
mali 已提交
2389
previewOutput.stop((err) => {
J
jiangminyang 已提交
2390
    if (err) {
2391
        console.error(`Failed to stop the previewOutput. ${err.code}`);
J
jiangminyang 已提交
2392 2393
        return;
    }
M
mali 已提交
2394
    console.log('Callback returned with previewOutput stopped.');
J
jiangminyang 已提交
2395 2396 2397
})
```

M
mali 已提交
2398
### stop
J
jiangminyang 已提交
2399

C
cold_yixiu 已提交
2400
stop(): Promise\<void\>
J
jiangminyang 已提交
2401

M
mali 已提交
2402
停止输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
2403 2404 2405 2406 2407 2408

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型            | 说明                     |
M
mali 已提交
2409
| -------------- | ------------------------ |
C
cold_yixiu 已提交
2410
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
2411 2412 2413 2414

**示例:**

```js
M
mali 已提交
2415 2416
previewOutput.stop().then(() => {
    console.log('Callback returned with previewOutput stopped.');
2417
}).catch((err) => {
2418
    console.log('Failed to previewOutput stop '+ err.code);
2419
});
J
jiangminyang 已提交
2420 2421
```

M
mali 已提交
2422
### release
J
jiangminyang 已提交
2423

C
cold_yixiu 已提交
2424
release(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2425

M
mali 已提交
2426
释放输出资源,通过注册回调函数获取结果。
J
jiangminyang 已提交
2427 2428 2429 2430 2431

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2432
| 参数名      | 类型                  | 必填 | 说明                 |
M
mali 已提交
2433
| -------- | -------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
2434
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2435

M
mali 已提交
2436 2437 2438 2439 2440 2441 2442 2443
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

J
jiangminyang 已提交
2444 2445 2446
**示例:**

```js
M
mali 已提交
2447
previewOutput.release((err) => {
J
jiangminyang 已提交
2448
    if (err) {
2449
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
J
jiangminyang 已提交
2450 2451
        return;
    }
M
mali 已提交
2452 2453
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
J
jiangminyang 已提交
2454 2455
```

M
mali 已提交
2456
### release
J
jiangminyang 已提交
2457

C
cold_yixiu 已提交
2458
release(): Promise\<void\>
J
jiangminyang 已提交
2459

M
mali 已提交
2460
释放输出资源,通过Promise获取结果。
J
jiangminyang 已提交
2461 2462 2463 2464 2465 2466

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型            | 说明                     |
M
mali 已提交
2467
| -------------- | ----------------------- |
C
cold_yixiu 已提交
2468
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2469

M
mali 已提交
2470 2471 2472 2473 2474 2475 2476 2477
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

J
jiangminyang 已提交
2478 2479 2480
**示例:**

```js
M
mali 已提交
2481 2482
previewOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
2483 2484 2485
}).catch((err) => {
    console.log('Failed to previewOutput release '+ err.code);
});
J
jiangminyang 已提交
2486 2487 2488 2489
```

### on('frameStart')

C
cold_yixiu 已提交
2490
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2491 2492 2493 2494 2495 2496 2497

监听预览帧启动,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2498
| 参数名      | 类型                  | 必填 | 说明                                     |
J
jiangminyang 已提交
2499
| -------- | -------------------- | ---- | --------------------------------------- |
2500
| type     | string               | 是   | 监听事件,固定为'frameStart',previewOutput创建成功可监听。底层第一次开始曝光时触发该事件并返回 |
C
cold_yixiu 已提交
2501
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览开始                     |
J
jiangminyang 已提交
2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512

**示例:**

```js
previewOutput.on('frameStart', () => {
    console.log('Preview frame started');
})
```

### on('frameEnd')

C
cold_yixiu 已提交
2513
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2514 2515 2516 2517 2518 2519 2520

监听预览帧结束,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2521
| 参数名      | 类型                  | 必填 | 说明                                  |
J
jiangminyang 已提交
2522
| -------- | -------------------- | ---- | ------------------------------------- |
2523
| type     | string               | 是   | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。预览完全结束最后一帧时触发该事件并返回, |
C
cold_yixiu 已提交
2524
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览结束                 |
J
jiangminyang 已提交
2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535

**示例:**

```js
previewOutput.on('frameEnd', () => {
    console.log('Preview frame ended');
})
```

### on('error')

C
cold_yixiu 已提交
2536
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
2537 2538 2539 2540 2541 2542 2543

监听预览输出的错误事件,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

2544 2545
| 参数名     | 类型         | 必填 | 说明                       |
| -------- | --------------| ---- | ------------------------ |
2546
| type     | string        | 是   | 监听事件,固定为'error',previewOutput创建成功可监听。预览接口使用错误时触发该事件,比如调用(start(),release())等接口发生错误时返回对应错误信息。|
C
cold_yixiu 已提交
2547
| callback | ErrorCallback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)  |
J
jiangminyang 已提交
2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571

**示例:**

```js
previewOutput.on('error', (previewOutputError) => {
    console.log(`Preview output error code: ${previewOutputError.code}`);
})
```

## ImageRotation

枚举,图片旋转角度。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称          | 值   | 说明           |
| ------------ | ---- | ------------- |
| ROTATION_0   | 0    | 图片旋转0度。   |
| ROTATION_90  | 90   | 图片旋转90度。  |
| ROTATION_180 | 180  | 图片旋转180度。 |
| ROTATION_270 | 270  | 图片旋转270度。 |

## Location

J
jiangminyang 已提交
2572
图片地理位置信息。
J
jiangminyang 已提交
2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称          | 类型   | 必填 |说明         |
| ------------ | ------ | --- |------------ |
| latitude     | number | 是  |纬度(度)。    |
| longitude    | number | 是  |经度(度)。    |
| altitude     | number | 是  |海拔(米)。    |

## QualityLevel

枚举,图片质量。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称                  | 值   | 说明         |
| -------------------- | ---- | ------------ |
| QUALITY_LEVEL_HIGH   | 0    | 图片质量高。   |
| QUALITY_LEVEL_MEDIUM | 1    | 图片质量中等。 |
| QUALITY_LEVEL_LOW    | 2    | 图片质量差。   |


## PhotoCaptureSetting

J
jiangminyang 已提交
2597
拍摄照片的设置。
J
jiangminyang 已提交
2598 2599 2600

**系统能力:** SystemCapability.Multimedia.Camera.Core

M
mali 已提交
2601 2602 2603 2604 2605 2606
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
| quality  | [QualityLevel](#qualitylevel)   | 否   | 图片质量。         |
| rotation | [ImageRotation](#imagerotation) | 否   | 图片旋转角度。      |
| location | [Location](#location)           | 否   | 图片地理位置信息。   |
| mirror   | boolean                         | 否   |镜像使能开关(默认关)。 |
J
jiangminyang 已提交
2607 2608 2609

## PhotoOutput

M
mali 已提交
2610
拍照会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
2611 2612 2613

### capture

C
cold_yixiu 已提交
2614
capture(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2615 2616 2617 2618 2619 2620 2621

以默认设置触发一次拍照,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2622
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
2623
| -------- | -------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
2624
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2625

M
mali 已提交
2626 2627 2628 2629 2630 2631 2632 2633 2634
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400104                |  Session not running.                                  |
| 7400201                |  Camera service fatal error.                           |

J
jiangminyang 已提交
2635 2636 2637 2638 2639
**示例:**

```js
photoOutput.capture((err) => {
    if (err) {
2640
        console.error(`Failed to capture the photo ${err.code}`);
J
jiangminyang 已提交
2641 2642 2643 2644 2645 2646 2647 2648
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
```

### capture

C
cold_yixiu 已提交
2649
capture(): Promise\<void\>
2650 2651 2652 2653 2654 2655 2656 2657 2658

以默认设置触发一次拍照,通过Promise获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型            | 说明                     |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
2659
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2660

M
mali 已提交
2661 2662 2663 2664 2665 2666 2667 2668 2669
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400104                |  Session not running.                                  |
| 7400201                |  Camera service fatal error.                           |

2670 2671 2672 2673 2674
**示例:**

```js
photoOutput.capture().then(() => {
    console.log('Promise returned to indicate that photo capture request success.');
2675 2676 2677
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
2678 2679 2680 2681
```

### capture

C
cold_yixiu 已提交
2682
capture(setting: PhotoCaptureSetting, callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2683 2684 2685 2686 2687 2688 2689

以指定参数触发一次拍照,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2690
| 参数名      | 类型                                         | 必填 | 说明                  |
J
jiangminyang 已提交
2691 2692
| -------- | ------------------------------------------- | ---- | -------------------- |
| setting  | [PhotoCaptureSetting](#photocapturesetting) | 是   | 拍照设置。             |
C
cold_yixiu 已提交
2693
| callback | AsyncCallback\<void\>                        | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)  |
J
jiangminyang 已提交
2694

M
mali 已提交
2695 2696 2697 2698 2699 2700 2701 2702 2703 2704
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400104                |  Session not running.                                  |
| 7400201                |  Camera service fatal error.                           |

J
jiangminyang 已提交
2705 2706 2707
**示例:**

```js
M
mali 已提交
2708 2709 2710 2711 2712 2713 2714 2715 2716 2717
let captureLocation = {
  latitude: 0,
  longitude: 0,
  altitude: 0,
}
let settings = {
  quality: camera.QualityLevel.QUALITY_LEVEL_LOW,
  rotation: camera.ImageRotation.ROTATION_0,
  location: captureLocation,
  mirror: false
J
jiangminyang 已提交
2718 2719
}
photoOutput.capture(settings, (err) => {
Z
zengyawen 已提交
2720
    if (err) {
2721
        console.error(`Failed to capture the photo ${err.code}`);
Z
zengyawen 已提交
2722 2723 2724 2725
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
J
jiangminyang 已提交
2726 2727
```

J
jiangminyang 已提交
2728 2729
### capture

C
cold_yixiu 已提交
2730
capture(setting?: PhotoCaptureSetting): Promise\<void\>
J
jiangminyang 已提交
2731 2732 2733 2734 2735 2736 2737

以指定参数触发一次拍照,通过Promise获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2738
| 参数名     | 类型                                         | 必填 | 说明      |
J
jiangminyang 已提交
2739
| ------- | ------------------------------------------- | ---- | -------- |
M
mali 已提交
2740
| setting | [PhotoCaptureSetting](#photocapturesetting) | 否   | 拍照设置, 传入undefined 类型数据按默认无参处理 |
J
jiangminyang 已提交
2741 2742 2743 2744 2745

**返回值:**

| 类型            | 说明                     |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
2746
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2747

M
mali 已提交
2748 2749 2750 2751 2752 2753 2754 2755 2756
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400104                |  Session not running.                                  |
| 7400201                |  Camera service fatal error.                           |
J
jiangminyang 已提交
2757 2758 2759 2760

**示例:**

```js
2761
photoOutput.capture(settings).then(() => {
J
jiangminyang 已提交
2762
    console.log('Promise returned to indicate that photo capture request success.');
2763 2764 2765
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
J
jiangminyang 已提交
2766 2767 2768 2769
```

### isMirrorSupported

2770
isMirrorSupported(): boolean
J
jiangminyang 已提交
2771

2772
查询是否支持镜像拍照。
J
jiangminyang 已提交
2773 2774 2775

**系统能力:** SystemCapability.Multimedia.Camera.Core

2776
**返回值:**
J
jiangminyang 已提交
2777

2778 2779
| 类型            | 说明                     |
| -------------- | ----------------------- |
2780
| boolean | 返回是否支持镜像拍照。 |
J
jiangminyang 已提交
2781 2782 2783 2784

**示例:**

```js
2785
let isSupported = photoOutput.isMirrorSupported();
J
jiangminyang 已提交
2786 2787
```

M
mali 已提交
2788 2789
### release

C
cold_yixiu 已提交
2790
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
2791 2792 2793 2794 2795 2796 2797 2798 2799

释放输出资源,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

| 参数名      | 类型                  | 必填 | 说明                 |
| -------- | -------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
2800
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
M
mali 已提交
2801

M
mali 已提交
2802 2803 2804 2805 2806 2807 2808 2809
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

M
mali 已提交
2810 2811 2812 2813 2814
**示例:**

```js
photoOutput.release((err) => {
    if (err) {
2815
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
2816 2817 2818 2819 2820 2821 2822 2823
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
2824
release(): Promise\<void\>
M
mali 已提交
2825 2826 2827 2828 2829 2830 2831 2832 2833

释放输出资源,通过Promise获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
2834
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
M
mali 已提交
2835

M
mali 已提交
2836 2837 2838 2839 2840 2841 2842 2843
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

M
mali 已提交
2844 2845 2846 2847 2848
**示例:**

```js
photoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
2849 2850 2851
}).catch((err) => {
    console.log('Failed to photoOutput release '+ err.code);
});
M
mali 已提交
2852 2853
```

J
jiangminyang 已提交
2854 2855
### on('captureStart')

C
cold_yixiu 已提交
2856
on(type: 'captureStart', callback: AsyncCallback\<number\>): void
J
jiangminyang 已提交
2857 2858 2859 2860 2861 2862 2863

监听拍照开始,通过注册回调函数获取Capture ID。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2864
| 参数名      | 类型                    | 必填 | 说明                                       |
J
jiangminyang 已提交
2865
| -------- | ---------------------- | ---- | ------------------------------------------ |
2866
| type     | string                 | 是   | 监听事件,固定为'captureStart',photoOutput创建成功后可监听。每次拍照,底层开始曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
2867
| callback | AsyncCallback\<number\> | 是   | 使用callback的方式获取Capture ID。            |
J
jiangminyang 已提交
2868 2869 2870 2871

**示例:**

```js
2872
photoOutput.on('captureStart', (captureId) => {
J
jiangminyang 已提交
2873 2874 2875 2876 2877 2878
    console.log(`photo capture stated, captureId : ${captureId}`);
})
```

### on('frameShutter')

C
cold_yixiu 已提交
2879
on(type: 'frameShutter', callback: AsyncCallback\<FrameShutterInfo\>): void
J
jiangminyang 已提交
2880 2881 2882 2883 2884 2885 2886

监听拍照帧输出捕获,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

2887 2888
| 参数名     | 类型      | 必填 | 说明                                  |
| -------- | ---------- | --- | ------------------------------------ |
2889
| type     | string     | 是   | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 |
C
cold_yixiu 已提交
2890
| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。该回调返回意味着可以再次下发拍照请求。             |
J
jiangminyang 已提交
2891 2892 2893 2894

**示例:**

```js
2895
photoOutput.on('frameShutter', (frameShutterInfo) => {
J
jiangminyang 已提交
2896 2897 2898 2899 2900 2901
    console.log(`photo capture end, captureId : ${frameShutterInfo.captureId}`);
    console.log(`Timestamp for frame : ${frameShutterInfo.timestamp}`);
})
```

### on('captureEnd')
J
jiangminyang 已提交
2902

C
cold_yixiu 已提交
2903
on(type: 'captureEnd', callback: AsyncCallback\<CaptureEndInfo\>): void
J
jiangminyang 已提交
2904

J
jiangminyang 已提交
2905
监听拍照结束,通过注册回调函数获取结果。
J
jiangminyang 已提交
2906 2907 2908 2909 2910

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

2911 2912
| 参数名     | 类型           | 必填 | 说明                                       |
| -------- | --------------- | ---- | ---------------------------------------- |
2913
| type     | string          | 是   | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 |
C
cold_yixiu 已提交
2914
| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                  |
J
jiangminyang 已提交
2915

J
jiangminyang 已提交
2916
**示例:**
J
jiangminyang 已提交
2917

J
jiangminyang 已提交
2918
```js
2919
photoOutput.on('captureEnd', (captureEndInfo) => {
J
jiangminyang 已提交
2920 2921 2922 2923 2924 2925 2926
    console.log(`photo capture end, captureId : ${captureEndInfo.captureId}`);
    console.log(`frameCount : ${captureEndInfo.frameCount}`);
})
```

### on('error')

C
cold_yixiu 已提交
2927
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
2928 2929

监听拍照输出发生错误,通过注册回调函数获取结果。
J
jiangminyang 已提交
2930

J
jiangminyang 已提交
2931 2932 2933 2934
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

2935 2936
| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
2937
| type     | string       | 是   | 监听事件,固定为'error',photoOutput创建成功后可监听。拍照接口调用时出现错误触发该事件并返回错误信息。 |
C
cold_yixiu 已提交
2938
| callback | ErrorCallback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)             |
J
jiangminyang 已提交
2939 2940 2941 2942

**示例:**

```js
2943
photoOutput.on('error', (error) => {
2944
    console.log(`Photo output error code: ${error.code}`);
J
jiangminyang 已提交
2945 2946 2947
})
```

J
jiangminyang 已提交
2948
## FrameShutterInfo
J
jiangminyang 已提交
2949

J
jiangminyang 已提交
2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971
拍照帧输出信息。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称      | 类型   | 必填 | 说明         |
| --------- | ------ | ---- | ---------- |
| captureId | number | 是   | 拍照的ID。  |
| timestamp | number | 是   | 快门时间戳。 |

## CaptureEndInfo

拍照停止信息。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称       | 类型   | 必填 | 说明       |
| ---------- | ------ | ---- | ---------|
| captureId  | number | 是   | 拍照的ID。 |
| frameCount | number | 是   | 帧数。    |

## VideoOutput

M
mali 已提交
2972
录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
2973 2974 2975

### start

C
cold_yixiu 已提交
2976
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2977 2978

启动录制,通过注册回调函数获取结果。
J
jiangminyang 已提交
2979 2980 2981 2982 2983

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
2984
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
2985
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
2986
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2987

M
mali 已提交
2988 2989 2990 2991 2992 2993 2994 2995 2996
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |

J
jiangminyang 已提交
2997 2998 2999
**示例:**

```js
J
jiangminyang 已提交
3000
videoOutput.start((err) => {
N
nikhilraut 已提交
3001
    if (err) {
3002
        console.error(`Failed to start the video output ${err.code}`);
N
nikhilraut 已提交
3003 3004
        return;
    }
J
jiangminyang 已提交
3005
    console.log('Callback invoked to indicate the video output start success.');
N
nikhilraut 已提交
3006 3007 3008
});
```

J
jiangminyang 已提交
3009
### start
N
nikhilraut 已提交
3010

C
cold_yixiu 已提交
3011
start(): Promise\<void\>
N
nikhilraut 已提交
3012

J
jiangminyang 已提交
3013
启动录制,通过Promise获取结果。
N
nikhilraut 已提交
3014

Z
zengyawen 已提交
3015
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3016 3017 3018

**返回值:**

J
jiangminyang 已提交
3019 3020
| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
3021
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
3022

M
mali 已提交
3023 3024 3025 3026 3027 3028 3029 3030
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |
N
nikhilraut 已提交
3031 3032 3033

**示例:**

Z
zengyawen 已提交
3034
```js
J
jiangminyang 已提交
3035 3036
videoOutput.start().then(() => {
    console.log('Promise returned to indicate that start method execution success.');
3037 3038 3039
}).catch((err) => {
    console.log('Failed to videoOutput start '+ err.code);
});
N
nikhilraut 已提交
3040 3041
```

J
jiangminyang 已提交
3042
### stop
N
nikhilraut 已提交
3043

C
cold_yixiu 已提交
3044
stop(callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3045

J
jiangminyang 已提交
3046
结束录制,通过注册回调函数获取结果。
N
nikhilraut 已提交
3047

Z
zengyawen 已提交
3048
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3049 3050 3051

**参数:**

M
mali 已提交
3052
| 参数名     | 类型                 | 必填 | 说明                     |
J
jiangminyang 已提交
3053
| -------- | -------------------- | ---- | ------------------------ |
C
cold_yixiu 已提交
3054
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
3055 3056 3057

**示例:**

Z
zengyawen 已提交
3058
```js
J
jiangminyang 已提交
3059 3060
videoOutput.stop((err) => {
    if (err) {
3061
        console.error(`Failed to stop the video output ${err.code}`);
J
jiangminyang 已提交
3062 3063 3064 3065
        return;
    }
    console.log('Callback invoked to indicate the video output stop success.');
});
Z
zengyawen 已提交
3066
```
N
nikhilraut 已提交
3067

J
jiangminyang 已提交
3068
### stop
N
nikhilraut 已提交
3069

C
cold_yixiu 已提交
3070
stop(): Promise\<void\>
J
jiangminyang 已提交
3071 3072 3073 3074 3075 3076 3077 3078 3079

结束录制,通过Promise获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
3080
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
3081 3082 3083 3084 3085 3086

**示例:**

```js
videoOutput.stop().then(() => {
    console.log('Promise returned to indicate that stop method execution success.');
3087
}).catch((err) => {
3088
    console.log('Failed to videoOutput stop '+ err.code);
3089
});
3090
```
J
jiangminyang 已提交
3091

M
mali 已提交
3092 3093
### release

C
cold_yixiu 已提交
3094
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
3095 3096 3097 3098 3099 3100 3101 3102 3103

释放输出资源,通过注册回调函数获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

| 参数名      | 类型                  | 必填 | 说明                 |
| -------- | -------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
3104
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
M
mali 已提交
3105

M
mali 已提交
3106 3107 3108 3109 3110 3111 3112 3113
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

M
mali 已提交
3114 3115 3116 3117 3118
**示例:**

```js
videoOutput.release((err) => {
    if (err) {
3119
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
3120 3121 3122 3123 3124 3125 3126 3127
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
3128
release(): Promise\<void\>
M
mali 已提交
3129 3130 3131 3132 3133 3134 3135 3136 3137

释放输出资源,通过Promise获取结果。

**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
3138
| Promise\<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
M
mali 已提交
3139

M
mali 已提交
3140 3141 3142 3143 3144 3145 3146 3147
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400201                |  Camera service fatal error.                           |

M
mali 已提交
3148 3149 3150 3151 3152
**示例:**

```js
videoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3153 3154 3155
}).catch((err) => {
    console.log('Failed to videoOutput release '+ err.code);
});
M
mali 已提交
3156 3157
```

J
jiangminyang 已提交
3158 3159
### on('frameStart')

C
cold_yixiu 已提交
3160
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3161

J
jiangminyang 已提交
3162
监听录像开始,通过注册回调函数获取结果。
N
nikhilraut 已提交
3163

Z
zengyawen 已提交
3164
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3165 3166 3167

**参数:**

M
mali 已提交
3168
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
3169
| -------- | -------------------- | ---- | ----------------------------------------- |
3170
| type     | string               | 是   | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。底层第一次曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
3171
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。  只要有该事件返回就证明录像开始                     |
N
nikhilraut 已提交
3172 3173 3174

**示例:**

Z
zengyawen 已提交
3175
```js
J
jiangminyang 已提交
3176 3177
videoOutput.on('frameStart', () => {
    console.log('Video frame started');
N
nikhilraut 已提交
3178 3179 3180
})
```

J
jiangminyang 已提交
3181
### on('frameEnd')
N
nikhilraut 已提交
3182

C
cold_yixiu 已提交
3183
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3184

J
jiangminyang 已提交
3185
监听录像结束,通过注册回调函数获取结果。
N
nikhilraut 已提交
3186

Z
zengyawen 已提交
3187
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3188 3189 3190

**参数:**

M
mali 已提交
3191
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
3192
| -------- | -------------------- | ---- | ------------------------------------------ |
3193
| type     | string               | 是   | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。录像完全结束最后一帧时触发该事件并返回  。 |
C
cold_yixiu 已提交
3194
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 只要有该事件返回就证明录像结束                      |
N
nikhilraut 已提交
3195 3196 3197

**示例:**

Z
zengyawen 已提交
3198
```js
J
jiangminyang 已提交
3199 3200
videoOutput.on('frameEnd', () => {
    console.log('Video frame ended');
N
nikhilraut 已提交
3201 3202 3203
})
```

J
jiangminyang 已提交
3204
### on('error')
N
nikhilraut 已提交
3205

C
cold_yixiu 已提交
3206
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
N
nikhilraut 已提交
3207

J
jiangminyang 已提交
3208
监听录像输出发生错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
3209

Z
zengyawen 已提交
3210
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3211 3212 3213

**参数:**

3214 3215
| 参数名     | 类型       | 必填 | 说明                                    |
| -------- | ----------- | ---- | -------------------------------------- |
3216
| type     | string      | 是   | 监听事件,固定为'error',videoOutput创建成功后可监听。录像接口调用出现错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时出现错误返回对应错误信息。 |
C
cold_yixiu 已提交
3217
| callback | Callback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)                 |
N
nikhilraut 已提交
3218 3219 3220

**示例:**

Z
zengyawen 已提交
3221
```js
3222 3223
videoOutput.on('error', (error) => {
    console.log(`Video output error code: ${error.code}`);
N
nikhilraut 已提交
3224 3225 3226
})
```

M
mali 已提交
3227
## MetadataOutput
N
nikhilraut 已提交
3228

M
mali 已提交
3229
metadata流。继承[CameraOutput](#cameraoutput)
N
nikhilraut 已提交
3230

M
mali 已提交
3231
### start
J
jiangminyang 已提交
3232

C
cold_yixiu 已提交
3233
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3234

M
mali 已提交
3235
开始输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
3236

Z
zengyawen 已提交
3237
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3238 3239 3240

**参数:**

M
mali 已提交
3241
| 参数名     | 类型                                                         | 必填 | 说明                 |
3242
| -------- | -------------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
3243
| callback | AsyncCallback\<void\>       | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
3244

M
mali 已提交
3245 3246 3247 3248 3249 3250 3251 3252 3253
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
3254 3255
**示例:**

Z
zengyawen 已提交
3256
```js
M
mali 已提交
3257
metadataOutput.start((err) => {
N
nikhilraut 已提交
3258
    if (err) {
3259
        console.error(`Failed to start metadataOutput. ${err.code}`);
N
nikhilraut 已提交
3260 3261
        return;
    }
M
mali 已提交
3262
    console.log('Callback returned with metadataOutput started.');
J
jiangminyang 已提交
3263
})
Z
zengyawen 已提交
3264
```
N
nikhilraut 已提交
3265

M
mali 已提交
3266
### start
N
nikhilraut 已提交
3267

C
cold_yixiu 已提交
3268
start(): Promise\<void\>
N
nikhilraut 已提交
3269

M
mali 已提交
3270
开始输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
3271

Z
zengyawen 已提交
3272
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3273 3274 3275

**返回值:**

M
mali 已提交
3276 3277
| 类型                     | 说明                     |
| ----------------------  | ------------------------ |
C
cold_yixiu 已提交
3278
| Promise\<void\>          | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
N
nikhilraut 已提交
3279

M
mali 已提交
3280 3281 3282 3283 3284 3285 3286 3287 3288
**错误码:**

以下错误码的详细介绍请参见相机错误码

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |

N
nikhilraut 已提交
3289 3290
**示例:**

Z
zengyawen 已提交
3291
```js
M
mali 已提交
3292 3293
metadataOutput.start().then(() => {
    console.log('Callback returned with metadataOutput started.');
3294 3295 3296
}).catch((err) => {
    console.log('Failed to metadataOutput start '+ err.code);
});
N
nikhilraut 已提交
3297 3298
```

M
mali 已提交
3299
### stop
N
nikhilraut 已提交
3300

C
cold_yixiu 已提交
3301
stop(callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3302

M
mali 已提交
3303
停止输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
3304

Z
zengyawen 已提交
3305
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3306 3307 3308

**参数:**

M
mali 已提交
3309 3310
| 参数名     | 类型                         | 必填 | 说明                  |
| -------- | -------------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
3311
| callback | AsyncCallback\<void\>       | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
3312 3313 3314

**示例:**

Z
zengyawen 已提交
3315
```js
M
mali 已提交
3316
metadataOutput.stop((err) => {
N
nikhilraut 已提交
3317
    if (err) {
3318
        console.error(`Failed to stop the metadataOutput. ${err.code}`);
N
nikhilraut 已提交
3319 3320
        return;
    }
M
mali 已提交
3321
    console.log('Callback returned with metadataOutput stopped.');
J
jiangminyang 已提交
3322
})
N
nikhilraut 已提交
3323 3324
```

M
mali 已提交
3325
### stop
N
nikhilraut 已提交
3326

C
cold_yixiu 已提交
3327
stop(): Promise\<void\>
N
nikhilraut 已提交
3328

M
mali 已提交
3329
停止输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
3330

Z
zengyawen 已提交
3331
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3332 3333 3334

**返回值:**

M
mali 已提交
3335 3336
| 类型                    | 说明                        |
| ----------------------  | --------------------------- |
C
cold_yixiu 已提交
3337
| Promise\<void\>         | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
3338 3339 3340

**示例:**

Z
zengyawen 已提交
3341
```js
M
mali 已提交
3342 3343
metadataOutput.stop().then(() => {
    console.log('Callback returned with metadataOutput stopped.');
3344
}).catch((err) => {
3345
    console.log('Failed to metadataOutput stop '+ err.code);
3346
});
N
nikhilraut 已提交
3347 3348
```

M
mali 已提交
3349
### on('metadataObjectsAvailable')
N
nikhilraut 已提交
3350

C
cold_yixiu 已提交
3351
on(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObject\>\>): void
N
nikhilraut 已提交
3352

M
mali 已提交
3353
监听检测到的metadata对象,通过注册回调函数获取结果。
N
nikhilraut 已提交
3354

Z
zengyawen 已提交
3355
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3356 3357 3358

**参数:**

3359 3360 3361
| 参数名      | 类型         | 必填 | 说明                                  |
| -------- | -------------- | ---- | ------------------------------------ |
| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据 |
C
cold_yixiu 已提交
3362
| callback | Callback\<Array\<[MetadataObject](#metadataobject)\>\> | 是   | 回调函数,用于获取metadata数据。 |
N
nikhilraut 已提交
3363 3364 3365

**示例:**

Z
zengyawen 已提交
3366
```js
M
mali 已提交
3367 3368
metadataOutput.on('metadataObjectsAvailable', (metadataObjectArr) => {
    console.log(`metadata output metadataObjectsAvailable`);
J
jiangminyang 已提交
3369
})
N
nikhilraut 已提交
3370 3371
```

M
mali 已提交
3372
### on('error')
N
nikhilraut 已提交
3373

C
cold_yixiu 已提交
3374
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
N
nikhilraut 已提交
3375

M
mali 已提交
3376
监听metadata流的错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
3377

Z
zengyawen 已提交
3378
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3379

M
mali 已提交
3380
**参数:**
N
nikhilraut 已提交
3381

3382 3383
| 参数名     | 类型         | 必填 | 说明                                     |
| -------- | ------------- | ---- | --------------------------------------- |
3384
| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时发生错误返回对应错误信息。 |
C
cold_yixiu 已提交
3385
| callback | Callback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)            |
N
nikhilraut 已提交
3386 3387 3388

**示例:**

Z
zengyawen 已提交
3389
```js
M
mali 已提交
3390 3391
metadataOutput.on('error', (metadataOutputError) => {
    console.log(`Metadata output error code: ${metadataOutputError.code}`);
N
nikhilraut 已提交
3392 3393 3394
})
```

M
mali 已提交
3395 3396 3397 3398 3399 3400 3401 3402
## MetadataObjectType

枚举,metadata流。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称                       | 值   | 说明              |
| ------------------------- | ---- | ----------------- |
C
cold_yixiu 已提交
3403
| FACE_DETECTION            | 0    | metadata对象类型,人脸检测。检测点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。<br> 此坐标系是以设备充电口在右侧时的横向设备方向为基准的,<br> 例如应用的预览界面布局以设备充电口在下侧时的竖向方向为基准,<br> 布局宽高为{w,h}, 返回点为{x,y},则转换后的坐标点为{1-y,x}。 |
M
mali 已提交
3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419

## Rect

矩形定义。

**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称      | 类型   |      必填     |           说明                 |
| -------- | ------ | --------------- | -------------------- |
| topLeftX | number |        是          | 矩形区域左上角x坐标。   |
| topLeftY | number |         是          | 矩形区域左上角y坐标。   |
| width    | number |         是         | 矩形宽。              |
| height   | number |         是           |矩形高。              |

## MetadataObject

M
mali 已提交
3420
相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取
M
mali 已提交
3421

C
cold_yixiu 已提交
3422 3423
**系统能力:** SystemCapability.Multimedia.Camera.Core

3424 3425
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
3426 3427 3428
| type  | [MetadataObjectType](#metadataobjecttype)   | 否   | metadata 类型,目前只有人脸识别。 |
| timestamp | number | 否   | 当前时间戳(毫秒)。 |
| boundingBox | [Rect](#rect)           | 否   | metadata 区域框 |