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

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

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

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

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

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

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

Z
zengyawen 已提交
44
```js
45
let cameraManager = camera.getCameraManager(context);
N
nikhilraut 已提交
46
```
F
fengwei0704 已提交
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
## camera.getModeManager

getModeManager(context: Context): ModeManager

获取模式化管理器实例,同步返回结果。

模式化管理是对于cameraManager功能的增强与扩充,主要用于一些高级功能的管理(如人像模式)。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名     | 类型                                             | 必填 | 说明                           |
| -------- | ----------------------------------------------- | ---- | ---------------------------- |
| context  | [Context](js-apis-inner-app-context.md)      | 是   | 应用上下文。                   |

**返回值:**

| 类型                                  | 说明       |
| --------------------------------------| -----------|
| [ModeManager](#modemanager)           | 模式化管理器。|

**错误码:**

以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)

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

**示例:**

```js
let modeManager = camera.getModeManager(context);
```
N
nikhilraut 已提交
85

Z
zengyawen 已提交
86
## CameraStatus
N
nikhilraut 已提交
87

Z
zengyawen 已提交
88
枚举,相机状态。
N
nikhilraut 已提交
89

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

92 93
| 名称                       | 值   | 说明            |
| ------------------------- | ---- | ------------    |
J
jiangminyang 已提交
94
| CAMERA_STATUS_APPEAR      | 0    | 新的相机出现。   |
95 96 97
| CAMERA_STATUS_DISAPPEAR   | 1    | 相机被移除。     |
| CAMERA_STATUS_AVAILABLE   | 2    | 相机可用。       |
| CAMERA_STATUS_UNAVAILABLE | 3    | 相机不可用。     |
N
nikhilraut 已提交
98

J
jiangminyang 已提交
99
## Profile
J
jiangminyang 已提交
100

J
jiangminyang 已提交
101
相机配置信息项。
J
jiangminyang 已提交
102 103 104

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

M
mali 已提交
105
| 名称      | 类型                           | 必填 | 说明         |
J
jiangminyang 已提交
106 107 108
| -------- | ----------------------------- |---- | ------------- |
| format   | [CameraFormat](#cameraformat) | 是  | 输出格式。      |
| size     | [Size](#size)                 | 是  | 分辨率。       |
J
jiangminyang 已提交
109

J
jiangminyang 已提交
110 111 112 113 114 115
## FrameRateRange

帧率范围。

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

M
mali 已提交
116
| 名称      | 类型                           | 必填 | 说明         |
J
jiangminyang 已提交
117 118 119 120
| -------- | ----------------------------- |---- | ------------- |
| min      | number                        | 是  | 最小帧率。      |
| max      | number                        | 是  | 最大帧率。      |

J
jiangminyang 已提交
121
## VideoProfile
J
jiangminyang 已提交
122

J
jiangminyang 已提交
123
视频配置信息项。
J
jiangminyang 已提交
124 125 126

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

M
mali 已提交
127
| 名称                       | 类型                                      | 必填 | 说明        |
J
jiangminyang 已提交
128
| ------------------------- | ----------------------------------------- | --- |----------- |
J
jiangminyang 已提交
129
| frameRateRange            | [FrameRateRange](#frameraterange)         | 是  | 帧率范围。   |
J
jiangminyang 已提交
130

J
jiangminyang 已提交
131
## CameraOutputCapability
J
jiangminyang 已提交
132

J
jiangminyang 已提交
133
相机输出能力项。
J
jiangminyang 已提交
134 135 136

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

M
mali 已提交
137
| 名称                           | 类型                                               | 必填 | 说明                |
J
jiangminyang 已提交
138
| ----------------------------- | -------------------------------------------------- | --- |------------------- |
C
cold_yixiu 已提交
139 140 141 142
| previewProfiles               | Array\<[Profile](#profile)\>                        | 是  | 支持的预览配置信息。    |
| photoProfiles                 | Array\<[Profile](#profile)\>                        | 是  | 支持的拍照配置信息。    |
| videoProfiles                 | Array\<[VideoProfile](#videoprofile)\>              | 是  | 支持的录像配置信息。    |
| supportedMetadataObjectTypes  | Array\<[MetadataObjectType](#metadataobjecttype)\>  | 是  | 支持的metadata流类型信息。|
J
jiangminyang 已提交
143

144
## CameraErrorCode
N
nikhilraut 已提交
145

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

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

M
mali 已提交
150 151 152 153 154 155 156 157 158 159 160 161
| 名称                       | 值          | 说明            |
| -------------------------  | ----       | ------------    |
| 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    | 设备设置已锁定返回。     |
| CONFLICT_CAMERA            | 7400107    | 设备重复打开返回。     |
| DEVICE_DISABLED            | 7400108    | 安全原因摄像头被禁用。     |
| DEVICE_PREEMPTED           | 7400109    | 相机被抢占导致无法使用     |
| SERVICE_FATAL_ERROR        | 7400201    | 相机服务错误返回。     |
N
nikhilraut 已提交
162

F
fengwei0704 已提交
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
## CameraMode

相机模式。

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

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
| NORMAL           | 0    | 普通模式  |
| CAPTURE          | 1    | 拍照模式  |
| VIDEO            | 2    | 录像模式  |
| PORTRAIT         | 3    | 人像模式  |
| NIGHT            | 4    | 夜景模式  |
| PROFESSIONAL     | 5    | 专业模式  |
| SLOW_MOTION      | 6    | 慢动作模式|

## FilterType

滤镜类型。

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

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
| NONE           | 0      | 原图     |
| CLASSIC        | 1      | 经典     |
| DAWN           | 2      | 晨光     |
| PURE           | 3      | 清纯     |
| GREY           | 4      | 灰调     |
| NATURAL        | 5      | 自然     |
| MORI           | 6      | 森系     |
| FAIR           | 7      | 白皙     |
| PINK           | 8      | 粉调     |


## PortraitEffect

人像效果类型。

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

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
| OFF             | 0      | 关闭    |
| CIRCLES         | 1      | 圆形    |

## BeautyType

美颜类型。

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

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
| AUTO_TYPE      | 0      | 自动     |
| SKIN_SMOOTH    | 1      | 光滑     |
| FACE_SLENDER   | 2      | 瘦脸     |
| SKIN_TONE      | 3      | 肤色     |

222
## CameraManager
N
nikhilraut 已提交
223

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

J
jiangminyang 已提交
226
### getSupportedCameras
N
nikhilraut 已提交
227

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

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

Z
zengyawen 已提交
232
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
233 234 235

**返回值:**

236 237
| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
C
cold_yixiu 已提交
238
|  Array\<[CameraDevice](#cameradevice)>            | 相机设备列表。                   |
N
nikhilraut 已提交
239 240 241

**示例:**

Z
zengyawen 已提交
242
```js
243 244
let cameras = cameraManager.getSupportedCameras();

N
nikhilraut 已提交
245 246
```

J
jiangminyang 已提交
247
### getSupportedOutputCapability
N
nikhilraut 已提交
248

C
cold_yixiu 已提交
249
getSupportedOutputCapability(camera:CameraDevice): CameraOutputCapability
N
nikhilraut 已提交
250

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

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

**参数:**

M
mali 已提交
257
| 参数名         | 类型                                                            | 必填 | 说明                      |
J
jiangminyang 已提交
258
| ------------ |--------------------------------------------------------------- | -- | -------------------------- |
M
mali 已提交
259
| cameraDevice | [CameraDevice](#cameradevice)                              | 是 | 相机设备,通过 getSupportedCameras 接口获取       |
N
nikhilraut 已提交
260 261 262

**返回值:**

263 264 265
| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
| [CameraOutputCapability](#cameraoutputcapability)            | 相机输出能力。                   |
J
jiangminyang 已提交
266

N
nikhilraut 已提交
267 268
**示例:**

Z
zengyawen 已提交
269
```js
M
mali 已提交
270
let cameras = cameraManager.getSupportedCameras();
271
let cameraDevice = cameras[0];
272 273
let cameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice);

J
jiangminyang 已提交
274 275
```

J
jiangminyang 已提交
276 277
### isCameraMuted

J
jiangminyang 已提交
278
isCameraMuted(): boolean
J
jiangminyang 已提交
279

280 281 282
查询相机当前的禁用状态(禁用/未禁用)。

在此之前,需要通过[isCameraMuteSupported](#iscameramutesupported)确认当前设备支持禁用相机。
J
jiangminyang 已提交
283 284 285 286 287

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

**返回值:**

J
jiangminyang 已提交
288 289 290
| 类型        | 说明                                         |
| ---------- | -------------------------------------------- |
| boolean    | 返回true表示相机被禁用,返回false表示相机未被禁用。 |
J
jiangminyang 已提交
291 292 293 294

**示例:**

```js
M
mali 已提交
295
let ismuted = cameraManager.isCameraMuted();
J
jiangminyang 已提交
296 297 298 299
```

### isCameraMuteSupported

J
jiangminyang 已提交
300
isCameraMuteSupported(): boolean
J
jiangminyang 已提交
301

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

M
format  
mali 已提交
304
**系统接口:** 此接口为系统接口。
M
mali 已提交
305

J
jiangminyang 已提交
306 307 308 309 310 311
**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
J
jiangminyang 已提交
312
| boolean    | 返回true表示相机可以被禁用,返回false表示相机不能被禁用。 |
J
jiangminyang 已提交
313 314 315 316

**示例:**

```js
M
mali 已提交
317
let ismutesuppotred = cameraManager.isCameraMuteSupported();
J
jiangminyang 已提交
318 319 320 321
```

### muteCamera

J
jiangminyang 已提交
322
muteCamera(mute: boolean): void
J
jiangminyang 已提交
323 324 325

禁用相机。

M
format  
mali 已提交
326
**系统接口:** 此接口为系统接口。
M
mali 已提交
327

J
jiangminyang 已提交
328 329 330 331
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

M
mali 已提交
332
| 参数名      | 类型                              | 必填  | 说明        |
J
jiangminyang 已提交
333 334 335 336 337 338
| -------- | --------------------------------- | ---- | ---------- |
| mute     | boolean                           |  是  |  禁用相机。  |

**示例:**

```js
M
mali 已提交
339
let mute = true;
J
jiangminyang 已提交
340 341 342
cameraManager.muteCamera(mute);
```

J
jiangminyang 已提交
343
### createCameraInput
N
nikhilraut 已提交
344

345
createCameraInput(camera: CameraDevice): CameraInput
J
jiangminyang 已提交
346

347
使用CameraDevice对象创建CameraInput实例,同步返回结果。
J
jiangminyang 已提交
348 349

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

Z
zengyawen 已提交
351
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
352 353 354

**参数:**

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

N
nikhilraut 已提交
359 360
**返回值:**

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

M
mali 已提交
365 366 367 368 369 370 371 372
**错误码:**

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

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

N
nikhilraut 已提交
373 374
**示例:**

Z
zengyawen 已提交
375
```js
M
mali 已提交
376
let cameraDevice = cameras[0];
377 378 379 380
let cameraInput;
try {
	cameraInput = cameraManager.createCameraInput(cameraDevice);
} catch (error) {
381
    // 失败返回错误码error.code并处理
382 383
    console.log(error.code);
}
N
nikhilraut 已提交
384 385
```

J
jiangminyang 已提交
386
### createCameraInput
N
nikhilraut 已提交
387

388
createCameraInput(position: CameraPosition, type: CameraType): CameraInput
N
nikhilraut 已提交
389

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

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

Z
zengyawen 已提交
394
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
395 396 397

**参数:**

M
mali 已提交
398
| 参数名     | 类型                                        | 必填 | 说明                                |
J
jiangminyang 已提交
399
| -------- | ------------------------------------------- | ---- | --------------------------------- |
M
mali 已提交
400 401
| position | [CameraPosition](#cameraposition)           | 是   | 相机位置,通过 getSupportedCameras 接口获取设备,然后获取设备位置信息  |
| type     | [CameraType](#cameratype)                   | 是   | 相机类型,通过 getSupportedCameras 接口获取设备,然后获取设备类型信息  |
J
jiangminyang 已提交
402 403 404

**返回值:**

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

M
mali 已提交
409 410 411 412 413 414 415 416
**错误码:**

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

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

J
jiangminyang 已提交
417 418 419
**示例:**

```js
M
mali 已提交
420 421 422
let cameraDevice = cameras[0];
let position = cameraDevice.cameraPosition;
let type = cameraDevice.cameraType;
423 424 425 426
let cameraInput;
try {
    cameraInput = cameraManager.createCameraInput(position, type);
} catch (error) {
427
    // 失败返回错误码error.code并处理
428 429
    console.log(error.code);
}
J
jiangminyang 已提交
430 431
```

J
jiangminyang 已提交
432
### createPreviewOutput
N
nikhilraut 已提交
433

434
createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput
J
jiangminyang 已提交
435

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

Z
zengyawen 已提交
438
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
439 440 441

**参数:**

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

N
nikhilraut 已提交
447 448
**返回值:**

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

M
mali 已提交
453 454 455 456 457 458 459 460
**错误码:**

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

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

N
nikhilraut 已提交
461 462
**示例:**

Z
zengyawen 已提交
463
```js
M
mali 已提交
464
let profile = cameraOutputCapability.previewProfiles[0];
465 466 467 468
let previewOutput;
try {
    previewOutput = cameraManager.createPreviewOutput(profile, surfaceId);
} catch (error) {
469
    // 失败返回错误码error.code并处理
470 471
    console.log(error.code);
}
N
nikhilraut 已提交
472 473
```

J
jiangminyang 已提交
474
### createPhotoOutput
N
nikhilraut 已提交
475

476
createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput
N
nikhilraut 已提交
477

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

Z
zengyawen 已提交
480
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
481 482 483

**参数:**

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

N
nikhilraut 已提交
489 490
**返回值:**

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

M
mali 已提交
495 496 497 498 499 500 501 502
**错误码:**

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

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

N
nikhilraut 已提交
503 504
**示例:**

Z
zengyawen 已提交
505
```js
M
mali 已提交
506
let profile = cameraOutputCapability.photoProfiles[0];
507 508 509 510 511 512 513
let photoOutput;
try {
    photoOutput = cameraManager.createPhotoOutput(profile, surfaceId);
} catch (error) {
    // 失败返回错误码error.code并处理
    console.log(error.code);
}
N
nikhilraut 已提交
514 515
```

J
jiangminyang 已提交
516
### createVideoOutput
N
nikhilraut 已提交
517

518
createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput
N
nikhilraut 已提交
519

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

Z
zengyawen 已提交
522
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
523 524 525

**参数:**

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

N
nikhilraut 已提交
531 532
**返回值:**

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

M
mali 已提交
537 538 539 540 541 542 543 544
**错误码:**

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

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

N
nikhilraut 已提交
545 546
**示例:**

Z
zengyawen 已提交
547
```js
M
mali 已提交
548
let profile = cameraOutputCapability.videoProfiles[0];
549 550 551 552
let videoOutput;
try {
    videoOutput = cameraManager.createVideoOutput(profile, surfaceId);
} catch (error) {
553
    // 失败返回错误码error.code并处理
554 555
    console.log(error.code);
}
N
nikhilraut 已提交
556 557
```

J
jiangminyang 已提交
558
### createMetadataOutput
N
nikhilraut 已提交
559

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

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

Z
zengyawen 已提交
564
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
565 566 567

**参数:**

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

N
nikhilraut 已提交
572 573
**返回值:**

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

M
mali 已提交
578 579 580 581 582 583 584 585
**错误码:**

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

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

N
nikhilraut 已提交
586 587
**示例:**

Z
zengyawen 已提交
588
```js
M
mali 已提交
589
let metadataObjectTypes = cameraOutputCapability.supportedMetadataObjectTypes;
590 591 592 593
let metadataOutput;
try {
    metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes);
} catch (error) {
594
    // 失败返回错误码error.code并处理
595 596
    console.log(error.code);
}
N
nikhilraut 已提交
597 598
```

J
jiangminyang 已提交
599
### createCaptureSession
N
nikhilraut 已提交
600

601
createCaptureSession(): CaptureSession
N
nikhilraut 已提交
602

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

Z
zengyawen 已提交
605
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
606 607 608

**返回值:**

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

M
mali 已提交
613 614 615 616 617 618 619 620
**错误码:**

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

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

N
nikhilraut 已提交
621 622
**示例:**

Z
zengyawen 已提交
623
```js
624 625 626 627
let captureSession;
try {
    captureSession = cameraManager.createCaptureSession();
} catch (error) {
628
    // 失败返回错误码error.code并处理
629 630
    console.log(error.code);
}
N
nikhilraut 已提交
631 632
```

J
jiangminyang 已提交
633
### on('cameraStatus')
N
nikhilraut 已提交
634

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

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

Z
zengyawen 已提交
639
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
640 641 642

**参数:**

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

**示例:**

Z
zengyawen 已提交
650
```js
M
mali 已提交
651 652 653
cameraManager.on('cameraStatus', (err, cameraStatusInfo) => {
    console.log(`camera : ${cameraStatusInfo.camera.cameraId}`);
    console.log(`status: ${cameraStatusInfo.status}`);
N
nikhilraut 已提交
654 655 656
})
```

J
jiangminyang 已提交
657 658
### on('cameraMute')

C
cold_yixiu 已提交
659
on(type: 'cameraMute', callback: AsyncCallback\<boolean\>): void
J
jiangminyang 已提交
660 661 662

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

M
format  
mali 已提交
663
**系统接口:** 此接口为系统接口。
M
mali 已提交
664

J
jiangminyang 已提交
665 666 667 668
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

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

**示例:**

```js
M
mali 已提交
677
cameraManager.on('cameraMute', (err, curMuetd) => {
678
    let isMuted = curMuetd;
J
jiangminyang 已提交
679 680 681
})
```

Z
zengyawen 已提交
682
### isPrelaunchSupported
Z
zengyawen 已提交
683

Z
zengyawen 已提交
684
isPrelaunchSupported(camera: CameraDevice): boolean
Z
zengyawen 已提交
685

Z
zengyawen 已提交
686
在setPrelaunchConfig接口使用前调用,用于判断指定cameraDevice是否支持预热启动。
Z
zengyawen 已提交
687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名     | 类型             | 必填 | 说明       |
| -------- | --------------- | ---- | --------- |
| camera | [CameraDevice](#cameradevice) | 是 | 相机信息。|

**返回值:**

| 类型 | 说明 |
| -------- | --------------- |
| boolean | 返回指定cameraDevice是否支持预热启动。|

**错误码:**

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

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

**示例:**

```js
this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
let cameras = this.cameraManager.getSupportedCameras()
Z
zengyawen 已提交
717 718
if(this.cameraManager.isPrelaunchSupported(cameras[0])) {
     this.cameraManager.setPrelaunchConfig({cameraDevice: cameras[0]});
Z
zengyawen 已提交
719 720 721
}
```

Z
zengyawen 已提交
722
### setPrelaunchConfig
Z
zengyawen 已提交
723

Z
zengyawen 已提交
724
setPrelaunchConfig(prelaunchConfig: PrelaunchConfig): void
Z
zengyawen 已提交
725 726 727 728 729 730 731 732 733 734 735

**系统接口:** 此接口为系统接口。

**需要权限:** ohos.permission.CAMERA

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

**参数:**

| 参数名     | 类型             | 必填 | 说明       |
| -------- | --------------- | ---- | --------- |
Z
zengyawen 已提交
736
| prelaunchConfig | [PrelaunchConfig](#prelaunchconfig) | 是 | 预启动配置参数。|
Z
zengyawen 已提交
737 738 739 740 741 742 743 744 745 746 747 748 749 750 751

**错误码:**

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

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

**示例:**

```js
this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
let cameras = this.cameraManager.getSupportedCameras()
Z
zengyawen 已提交
752 753 754 755 756 757 758
if(this.cameraManager.isPrelaunchSupported(cameras[0])) {
    try {
      this.cameraManager.setPrelaunchConfig({cameraDevice: cameras[0]});
    } catch (error) {
       console.error(`catch error: Code: ${error.code}, message: ${error.message}`);
    }
}
Z
zengyawen 已提交
759 760
```

Z
zengyawen 已提交
761
### prelaunch
Z
zengyawen 已提交
762

Z
zengyawen 已提交
763
prelaunch(): void
Z
zengyawen 已提交
764 765 766 767 768 769 770 771 772 773 774

用户点击系统相机图标,拉起相机应用同时调用,下发预热请求,使能相机预热启动。

**系统接口:** 此接口为系统接口。

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

**示例:**

```js
this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
Z
zengyawen 已提交
775 776 777 778 779
try {
  this.cameraManager.prelaunch();
} catch (error) {
  console.error(`catch error: Code: ${error.code}, message: ${error.message}`);
}
Z
zengyawen 已提交
780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819
```

### createDeferredPreviewOutput

createDeferredPreviewOutput(profile: Profile): PreviewOutput

创建延迟预览输出对象,在配流时替代普通的预览输出对象加入数据流。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名     | 类型             | 必填 | 说明       |
| -------- | --------------- | ---- | --------- |
| profile | [Profile](#profile) | 是 | 相机预览流的配置文件。 |

**返回值:**

| 类型 | 说明 |
| -------- | --------------- |
| [PreviewOutput](#previewoutput) | 返回预览输出对象。 |

**错误码:**

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

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

**示例:**

```js
function getDeferredPreviewOutput(context: Context, previewProfile: camera.Profile): Promise<PreviewOutput> {
  const cameraManager = camera.getCameraManager(context);
  const output: Promise<PreviewOutput> = cameraManager.createDeferredPreviewOutput(previewProfile);
  return output;
}
F
fengwei0704 已提交
820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917
```
## ModeManager

相机模式化管理器类,使用前需要通过[getModeManager](#cameragetmodemanager)获取相机模式化管理实例。

### getSupportedModes

getSupportedModes(camera: CameraDevice): Array\<CameraMode\>

获取指定相机设备支持的模式列表,同步返回结果。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名     | 类型                                                         | 必填 | 说明                 |
| -------- | -------------------------- | ---- | ------------------- |
| camera | \<[CameraDevice](#cameradevice)>       | 是   |   相机设备实例,通过[getSupportedCameras](#getsupportedcameras)接口获取。  |

**返回值:**

| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
|  Array\<[CameraMode](#cameramode)>            | 支持的模式列表。                   |

**示例:**

```js
let cameraModes = cameraManager.getSupportedModes(cameraDevices[0]);

```

### getSupportedOutputCapability

getSupportedOutputCapability(camera:CameraDevice, mode: CameraMode): CameraOutputCapability

获取指定模式下相机设备支持的输出能力,同步返回结果。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名         | 类型                                                            | 必填 | 说明                      |
| ------------ |--------------------------------------------------------------- | -- | -------------------------- |
| cameraDevice | [CameraDevice](#cameradevice)                              | 是 | 相机设备,通过[getSupportedCameras](#getsupportedcameras)接口获取。   |
| mode         | [CameraMode](#cameramode)                                  | 是 | 指定模式,通过[getSupportedModes](#getsupportedmodes)接口获取。       |

**返回值:**

| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
| [CameraOutputCapability](#cameraoutputcapability)            | 相机输出能力。                   |

**示例:**

```js
let cameras = cameraManager.getSupportedCameras();
let cameraDevice = cameras[0];
let cameraModes = modeManager.getSupportedModes(cameraDevice);
let mode = cameraModes[0]
let cameraOutputCapability = modeManager.getSupportedOutputCapability(cameraDevice, mode);

```
### createCaptureSession

createCaptureSession(mode: CameraMode): CaptureSession

根据当前的模式名,创建指定模式的会话。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名         | 类型                                                            | 必填 | 说明                      |
| ------------ |--------------------------------------------------------------- | -- | -------------------------- |
| mode | [CameraMode](#cameramode)                              | 是 | 指定模式,通过[getSupportedModes](#getsupportedmodes)获取。       |

**返回值:**

| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
| [CaptureSession](#capturesession)            | 指定模式的会话实例。                   |

**示例:**

```js
let cameras = cameraManager.getSupportedCameras();
let cameraDevice = cameras[0];
let cameraModes = modeManager.getSupportedModes(cameraDevice);
let mode = cameraModes[0]
let captureSession = modeManager.createCaptureSession(mode);

Z
zengyawen 已提交
918 919
```

Z
zengyawen 已提交
920
## PrelaunchConfig
Z
zengyawen 已提交
921 922 923 924 925 926 927 928 929 930 931 932 933

相机预启动配置参数。

当前sensor级别预热,待扩展流预热参数。

**系统接口:** 此接口为系统接口。

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

| 名称   | 类型                            |     必填     | 说明       |
| ------ | ----------------------------- | -------------- | ---------- |
| cameraDevice | [CameraDevice](#cameradevice) |        是       | 相机信息。 |

J
jiangminyang 已提交
934
## CameraStatusInfo
N
nikhilraut 已提交
935

J
jiangminyang 已提交
936 937 938 939
相机管理器回调返回的接口实例,表示相机状态信息。

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

M
mali 已提交
940 941 942 943
| 名称   | 类型                            |     必填     | 说明       |
| ------ | ----------------------------- | -------------- | ---------- |
| camera | [CameraDevice](#cameradevice) |        是       | 相机信息。 |
| status | [CameraStatus](#camerastatus) |        是        | 相机状态。 |
J
jiangminyang 已提交
944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964

## CameraPosition

枚举,相机位置。

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

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

## CameraType

枚举,相机类型。

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

| 名称                     | 值   | 说明            |
| ----------------------- | ---- | -------------- |
965
| CAMERA_TYPE_DEFAULT     | 0    | 相机类型未指定。  |
J
jiangminyang 已提交
966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982
| 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    | 远程连接的相机。 |

M
mali 已提交
983 984 985 986
## HostDeviceType

枚举,远端相机设备类型。

M
format  
mali 已提交
987
**系统接口:** 此接口为系统接口。
M
mali 已提交
988

M
mali 已提交
989 990
**系统能力:** SystemCapability.Multimedia.Camera.Core

M
mali 已提交
991 992 993 994 995
| 名称                          | 值       | 说明           |
| ---------------------------- | ----     | ------------- |
| UNKNOWN_TYPE                 | 0        | 未知设备类型。      |
| PHONE                        | 0x0E     | 智能手机相机设备类型。 |
| TABLET                       | 0x11     | 平板电脑相机设备类型。 |
M
mali 已提交
996

J
jiangminyang 已提交
997 998 999 1000 1001 1002
## CameraDevice

相机设备信息。

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

M
mali 已提交
1003
| 名称           | 类型                                | 必填 | 说明        |
J
jiangminyang 已提交
1004 1005 1006 1007 1008
| -------------- | --------------------------------- | ---- | ---------- |
| cameraId       | string                            | 是   | CameraDevice对象|
| cameraPosition | [CameraPosition](#cameraposition) | 是   | 相机位置。    |
| cameraType     | [CameraType](#cameratype)         | 是   | 相机类型。    |
| connectionType | [ConnectionType](#connectiontype) | 是   | 相机连接类型。 |
M
format  
mali 已提交
1009 1010
| hostDeviceName | string                            | 是   | 远端设备名称,**系统接口:** 此接口为系统接口。 |
| hostDeviceType | [hostDeviceType](#hostdevicetype) | 是   | 远端相机设备类型,**系统接口:** 此接口为系统接口。 |
J
jiangminyang 已提交
1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024

## Size

枚举,输出能力查询。

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

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

## Point

J
jiangminyang 已提交
1025
枚举,点坐标用于对焦、曝光配置。
J
jiangminyang 已提交
1026 1027

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

J
jiangminyang 已提交
1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039
| 名称   | 类型   | 必填   | 说明         |
| ------ | ------ | ---- | ------------ |
| x      | number | 是    | 点的x坐标。   |
| y      | number | 是    | 点的y坐标。   |

## CameraFormat

枚举,输出格式。

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

M
mali 已提交
1040
| 名称                     | 值        | 说明         |
J
jiangminyang 已提交
1041
| ----------------------- | --------- | ------------ |
J
jiangminyang 已提交
1042
| CAMERA_FORMAT_RGBA_8888 | 3         | RGB格式的图片。             |
J
jiangminyang 已提交
1043 1044 1045 1046 1047 1048 1049 1050 1051
| CAMERA_FORMAT_YUV_420_SP| 1003      | YUV 420 SP格式的图片。      |
| CAMERA_FORMAT_JPEG      | 2000      | JPEG格式的图片。            |

## CameraInput

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

### open

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

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

Z
zengyawen 已提交
1056
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1057 1058 1059

**参数:**

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

M
mali 已提交
1064 1065 1066 1067 1068 1069 1070 1071 1072 1073
**错误码:**

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

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

N
nikhilraut 已提交
1074 1075
**示例:**

Z
zengyawen 已提交
1076
```js
J
jiangminyang 已提交
1077
cameraInput.open((err) => {
N
nikhilraut 已提交
1078
    if (err) {
1079
        console.error(`Failed to open the camera. ${err.code}`);
N
nikhilraut 已提交
1080 1081
        return;
    }
J
jiangminyang 已提交
1082 1083
    console.log('Callback returned with camera opened.');
})
N
nikhilraut 已提交
1084 1085
```

J
jiangminyang 已提交
1086
### open
N
nikhilraut 已提交
1087

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

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

Z
zengyawen 已提交
1092
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1093 1094 1095

**返回值:**

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

M
mali 已提交
1100 1101 1102 1103 1104 1105 1106 1107 1108 1109
**错误码:**

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

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

N
nikhilraut 已提交
1110 1111
**示例:**

Z
zengyawen 已提交
1112
```js
J
jiangminyang 已提交
1113 1114
cameraInput.open().then(() => {
    console.log('Promise returned with camera opened.');
1115 1116 1117
}).catch((err) => {
    console.error(`Failed to open the camera. ${err.code}`);
});
N
nikhilraut 已提交
1118 1119
```

J
jiangminyang 已提交
1120
### close
N
nikhilraut 已提交
1121

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

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

Z
zengyawen 已提交
1126
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1127 1128 1129

**参数:**

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

M
mali 已提交
1134 1135 1136 1137 1138 1139 1140 1141
**错误码:**

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

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

N
nikhilraut 已提交
1142 1143
**示例:**

Z
zengyawen 已提交
1144
```js
J
jiangminyang 已提交
1145 1146
cameraInput.close((err) => {
    if (err) {
1147
        console.error(`Failed to close the cameras. ${err.code}`);
J
jiangminyang 已提交
1148 1149 1150 1151 1152 1153 1154 1155
        return;
    }
    console.log('Callback returned with camera closed.');
})
```

### close

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

J
jiangminyang 已提交
1158
关闭相机,通过Promise获取状态。
J
jiangminyang 已提交
1159 1160 1161 1162 1163 1164 1165

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

**返回值:**

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

M
mali 已提交
1168 1169 1170 1171 1172 1173 1174 1175
**错误码:**

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

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

J
jiangminyang 已提交
1176 1177 1178 1179 1180
**示例:**

```js
cameraInput.close().then(() => {
    console.log('Promise returned with camera closed.');
1181 1182 1183
}).catch((err) => {
    console.error(`Failed to close the cameras. ${err.code}`);
});
J
jiangminyang 已提交
1184 1185
```

1186
### on('error')
J
jiangminyang 已提交
1187

Z
zengyawen 已提交
1188
on(type: 'error', camera:CameraDevice, callback: ErrorCallback): void
J
jiangminyang 已提交
1189

1190
监听CameraInput的错误事件,通过注册回调函数获取结果。
J
jiangminyang 已提交
1191 1192 1193 1194 1195

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

**参数:**

1196 1197
| 参数名     | 类型                              | 必填 | 说明                                          |
| -------- | -------------------------------- | --- | ------------------------------------------- |
1198
| type     | string                           | 是   | 监听事件,固定为'error',CameraInput对象创建成功可监听。相机设备出错情况下可触发该事件并返回结果,比如(设备不可用或者冲突等返回对应错误信息) |
1199
| cameraDevice   | [CameraDevice](#cameradevice)    | 是   | CameraDevice对象。 |
Z
zengyawen 已提交
1200
| callback | ErrorCallback | 是   | 回调函数,用于获取结果。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)   |
J
jiangminyang 已提交
1201 1202 1203 1204

**示例:**

```js
1205 1206 1207
cameraInput.on('error', cameraDevice, (error) => {
    console.log(`Camera input error code: ${error.code}`);
})
J
jiangminyang 已提交
1208 1209
```

1210
## FlashMode
J
jiangminyang 已提交
1211

1212
枚举,闪光灯模式。
J
jiangminyang 已提交
1213

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

1216 1217 1218 1219 1220 1221
| 名称                    | 值   | 说明        |
| ---------------------- | ---- | ---------- |
| FLASH_MODE_CLOSE       | 0    | 闪光灯关闭。 |
| FLASH_MODE_OPEN        | 1    | 闪光灯打开。 |
| FLASH_MODE_AUTO        | 2    | 自动闪光灯。 |
| FLASH_MODE_ALWAYS_OPEN | 3    | 闪光灯常亮。 |
J
jiangminyang 已提交
1222

1223
## ExposureMode
N
nikhilraut 已提交
1224

J
jiangminyang 已提交
1225
枚举,曝光模式。
N
nikhilraut 已提交
1226

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

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

Z
zengyawen 已提交
1235
## FocusMode
N
nikhilraut 已提交
1236

J
jiangminyang 已提交
1237
枚举,焦距模式。
N
nikhilraut 已提交
1238

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

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

J
jiangminyang 已提交
1248
## FocusState
N
nikhilraut 已提交
1249

J
jiangminyang 已提交
1250
枚举,焦距状态。
Z
zengyawen 已提交
1251

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

J
jiangminyang 已提交
1254 1255 1256 1257 1258
| 名称                   | 值   | 说明       |
| --------------------- | ---- | --------- |
| FOCUS_STATE_SCAN      | 0    | 触发对焦。  |
| FOCUS_STATE_FOCUSED   | 1    | 对焦成功。  |
| FOCUS_STATE_UNFOCUSED | 2    | 未完成对焦。 |
Z
zengyawen 已提交
1259

J
jiangminyang 已提交
1260
## VideoStabilizationMode
Z
zengyawen 已提交
1261

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

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

J
jiangminyang 已提交
1266 1267 1268 1269 1270 1271 1272
| 名称       | 值   | 说明         |
| --------- | ---- | ------------ |
| OFF       | 0    | 关闭视频防抖功能。   |
| LOW       | 1    | 使用基础防抖算法。   |
| MIDDLE    | 2    | 使用防抖效果一般的防抖算法,防抖效果优于LOW类型。   |
| HIGH      | 3    | 使用防抖效果最好的防抖算法,防抖效果优于MIDDLE类型。   |
| AUTO      | 4    | 自动进行选择。   |
N
nikhilraut 已提交
1273

J
jiangminyang 已提交
1274
## CaptureSession
N
nikhilraut 已提交
1275

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

Z
zengyawen 已提交
1278
### beginConfig
N
nikhilraut 已提交
1279

1280
beginConfig(): void
N
nikhilraut 已提交
1281

1282
开始配置会话。
N
nikhilraut 已提交
1283

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

1286 1287 1288 1289
**返回值:**

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

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

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

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

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

Z
zengyawen 已提交
1302
```js
1303 1304 1305
try {
    captureSession.beginConfig();
} catch (error) {
1306
    // 失败返回错误码error.code并处理
1307 1308
    console.log(error.code);
}
N
nikhilraut 已提交
1309 1310
```

Z
zengyawen 已提交
1311
### commitConfig
N
nikhilraut 已提交
1312

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

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

Z
zengyawen 已提交
1317
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1318 1319 1320

**参数:**

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

M
mali 已提交
1325 1326 1327 1328 1329 1330 1331 1332 1333
**错误码:**

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

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

N
nikhilraut 已提交
1334 1335
**示例:**

Z
zengyawen 已提交
1336
```js
N
nikhilraut 已提交
1337 1338
captureSession.commitConfig((err) => {
    if (err) {
1339
        console.log('Failed to commitConfig '+ err.code);
N
nikhilraut 已提交
1340 1341 1342 1343 1344 1345
        return;
    }
    console.log('Callback invoked to indicate the commit config success.');
});
```

Z
zengyawen 已提交
1346
### commitConfig
N
nikhilraut 已提交
1347

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

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

Z
zengyawen 已提交
1352
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1353 1354 1355

**返回值:**

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

M
mali 已提交
1360 1361 1362 1363 1364 1365 1366 1367 1368
**错误码:**

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

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

N
nikhilraut 已提交
1369 1370
**示例:**

Z
zengyawen 已提交
1371
```js
N
nikhilraut 已提交
1372 1373
captureSession.commitConfig().then(() => {
    console.log('Promise returned to indicate the commit config success.');
1374 1375 1376 1377
}).catch((err) => {
    // 失败返回错误码error.code并处理
    console.log('Failed to commitConfig '+ err.code);
});
N
nikhilraut 已提交
1378 1379
```

J
jiangminyang 已提交
1380
### addInput
N
nikhilraut 已提交
1381

1382
addInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1383

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

Z
zengyawen 已提交
1386
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1387 1388 1389

**参数:**

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

1394 1395 1396 1397
**返回值:**

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

M
mali 已提交
1400 1401 1402 1403 1404 1405 1406 1407 1408
**错误码:**

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

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

N
nikhilraut 已提交
1409 1410
**示例:**

Z
zengyawen 已提交
1411
```js
1412 1413 1414
try {
    captureSession.addInput(cameraInput);
} catch (error) {
1415
    // 失败返回错误码error.code并处理
1416 1417
    console.log(error.code);
}
N
nikhilraut 已提交
1418 1419
```

J
jiangminyang 已提交
1420
### removeInput
N
nikhilraut 已提交
1421

1422
removeInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1423

1424
移除[CameraInput](#camerainput)
N
nikhilraut 已提交
1425

Z
zengyawen 已提交
1426
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1427 1428 1429

**参数:**

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

1434 1435 1436 1437
**返回值:**

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

M
mali 已提交
1440 1441 1442 1443 1444 1445 1446 1447 1448
**错误码:**

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

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

N
nikhilraut 已提交
1449 1450
**示例:**

Z
zengyawen 已提交
1451
```js
1452 1453 1454
try {
    captureSession.removeInput(cameraInput);
} catch (error) {
1455
    // 失败返回错误码error.code并处理
1456 1457
    console.log(error.code);
}
N
nikhilraut 已提交
1458 1459
```

J
jiangminyang 已提交
1460
### addOutput
N
nikhilraut 已提交
1461

C
cold_yixiu 已提交
1462
addOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1463

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

Z
zengyawen 已提交
1466
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1467 1468 1469

**参数:**

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

1474 1475 1476 1477
**返回值:**

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

M
mali 已提交
1480 1481 1482 1483 1484 1485 1486 1487 1488
**错误码:**

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

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

N
nikhilraut 已提交
1489 1490
**示例:**

Z
zengyawen 已提交
1491
```js
1492
try {
C
cold_yixiu 已提交
1493
    captureSession.addOutput(cameraOutput);
1494
} catch (error) {
1495
    // 失败返回错误码error.code并处理
1496 1497
    console.log(error.code);
}
N
nikhilraut 已提交
1498 1499
```

Z
zengyawen 已提交
1500
### removeOutput
N
nikhilraut 已提交
1501

C
cold_yixiu 已提交
1502
removeOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1503

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

Z
zengyawen 已提交
1506
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1507 1508 1509

**参数:**

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

1514 1515 1516 1517
**返回值:**

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

M
mali 已提交
1520 1521 1522 1523 1524 1525 1526 1527 1528
**错误码:**

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

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

N
nikhilraut 已提交
1529 1530
**示例:**

Z
zengyawen 已提交
1531
```js
1532 1533 1534
try {
    captureSession.removeOutput(previewOutput);
} catch (error) {
1535
    // 失败返回错误码error.code并处理
1536 1537
    console.log(error.code);
}
N
nikhilraut 已提交
1538 1539
```

J
jiangminyang 已提交
1540
### start
N
nikhilraut 已提交
1541

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

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

Z
zengyawen 已提交
1546
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1547 1548 1549

**参数:**

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

M
mali 已提交
1554 1555 1556 1557 1558 1559 1560 1561 1562
**错误码:**

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

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

N
nikhilraut 已提交
1563 1564
**示例:**

Z
zengyawen 已提交
1565
```js
J
jiangminyang 已提交
1566
captureSession.start((err) => {
N
nikhilraut 已提交
1567
    if (err) {
1568
        console.error(`Failed to start the session ${err.code}`);
N
nikhilraut 已提交
1569 1570
        return;
    }
J
jiangminyang 已提交
1571
    console.log('Callback invoked to indicate the session start success.');
N
nikhilraut 已提交
1572 1573 1574
});
```

J
jiangminyang 已提交
1575
### start
N
nikhilraut 已提交
1576

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

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

Z
zengyawen 已提交
1581
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1582 1583 1584

**返回值:**

J
jiangminyang 已提交
1585 1586
| 类型            | 说明                     |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
1587
| Promise\<void\> | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
1588

M
mali 已提交
1589 1590 1591 1592 1593 1594 1595 1596 1597
**错误码:**

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

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

N
nikhilraut 已提交
1598 1599
**示例:**

Z
zengyawen 已提交
1600
```js
J
jiangminyang 已提交
1601 1602
captureSession.start().then(() => {
    console.log('Promise returned to indicate the session start success.');
1603 1604 1605
}).catch((err) => {
    console.error(`Failed to start the session ${err.code}`);
});
N
nikhilraut 已提交
1606 1607
```

J
jiangminyang 已提交
1608
### stop
N
nikhilraut 已提交
1609

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

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

Z
zengyawen 已提交
1614
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1615 1616 1617

**参数:**

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

M
mali 已提交
1622 1623 1624 1625 1626 1627 1628 1629
**错误码:**

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

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

N
nikhilraut 已提交
1630 1631
**示例:**

Z
zengyawen 已提交
1632
```js
J
jiangminyang 已提交
1633
captureSession.stop((err) => {
N
nikhilraut 已提交
1634
    if (err) {
1635
        console.error(`Failed to stop the session ${err.code}`);
N
nikhilraut 已提交
1636 1637
        return;
    }
J
jiangminyang 已提交
1638
    console.log('Callback invoked to indicate the session stop success.');
N
nikhilraut 已提交
1639 1640 1641
});
```

J
jiangminyang 已提交
1642
### stop
N
nikhilraut 已提交
1643

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

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

Z
zengyawen 已提交
1648
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1649 1650 1651

**返回值:**

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

M
mali 已提交
1656 1657 1658 1659 1660 1661 1662 1663
**错误码:**

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

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

N
nikhilraut 已提交
1664 1665
**示例:**

Z
zengyawen 已提交
1666
```js
J
jiangminyang 已提交
1667 1668
captureSession.stop().then(() => {
    console.log('Promise returned to indicate the session stop success.');
1669 1670 1671
}).catch((err) => {
    console.error(`Failed to stop the session ${err.code}`);
});
N
nikhilraut 已提交
1672 1673
```

Z
zengyawen 已提交
1674
### release
N
nikhilraut 已提交
1675

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

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

Z
zengyawen 已提交
1680
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1681 1682

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

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

M
mali 已提交
1688 1689 1690 1691 1692 1693 1694 1695
**错误码:**

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

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

N
nikhilraut 已提交
1696 1697
**示例:**

Z
zengyawen 已提交
1698
```js
N
nikhilraut 已提交
1699 1700
captureSession.release((err) => {
    if (err) {
1701
        console.error(`Failed to release the CaptureSession instance ${err.code}`);
N
nikhilraut 已提交
1702 1703 1704 1705 1706 1707
        return;
    }
    console.log('Callback invoked to indicate that the CaptureSession instance is released successfully.');
});
```

Z
zengyawen 已提交
1708
### release
N
nikhilraut 已提交
1709

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

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

Z
zengyawen 已提交
1714
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1715 1716 1717

**返回值:**

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

M
mali 已提交
1722 1723 1724 1725 1726 1727 1728 1729
**错误码:**

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

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

N
nikhilraut 已提交
1730 1731
**示例:**

Z
zengyawen 已提交
1732
```js
N
nikhilraut 已提交
1733 1734
captureSession.release().then(() => {
    console.log('Promise returned to indicate that the CaptureSession instance is released successfully.');
1735 1736 1737
}).catch((err) => {
    console.error(`Failed to release the CaptureSession instance ${err.code}`);
});
N
nikhilraut 已提交
1738 1739
```

J
jiangminyang 已提交
1740
### hasFlash
N
nikhilraut 已提交
1741

1742
hasFlash(): boolean
N
nikhilraut 已提交
1743

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

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

J
jiangminyang 已提交
1748
**返回值:**
Z
zengyawen 已提交
1749

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

M
mali 已提交
1754 1755 1756 1757 1758 1759 1760 1761
**错误码:**

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

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

J
jiangminyang 已提交
1762
**示例:**
Z
zengyawen 已提交
1763

J
jiangminyang 已提交
1764
```js
1765 1766 1767
try {
    let status = captureSession.hasFlash();
} catch (error) {
1768
    // 失败返回错误码error.code并处理
1769 1770
    console.log(error.code);
}
J
jiangminyang 已提交
1771
```
N
nikhilraut 已提交
1772

J
jiangminyang 已提交
1773
### isFlashModeSupported
Z
zengyawen 已提交
1774

1775
isFlashModeSupported(flashMode: FlashMode): boolean
N
nikhilraut 已提交
1776

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

Z
zengyawen 已提交
1779
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1780 1781 1782

**参数:**

M
mali 已提交
1783
| 参数名       | 类型                     | 必填 | 说明                               |
J
jiangminyang 已提交
1784 1785
| --------- | ----------------------- | ---- | --------------------------------- |
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。                     |
N
nikhilraut 已提交
1786 1787 1788

**返回值:**

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

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

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

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

N
nikhilraut 已提交
1801 1802
**示例:**

Z
zengyawen 已提交
1803
```js
1804 1805 1806
try {
    let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1807
    // 失败返回错误码error.code并处理
1808 1809
    console.log(error.code);
}
N
nikhilraut 已提交
1810 1811
```

J
jiangminyang 已提交
1812
### setFlashMode
N
nikhilraut 已提交
1813

1814
setFlashMode(flashMode: FlashMode): void
N
nikhilraut 已提交
1815

1816
设置闪光灯模式。
N
nikhilraut 已提交
1817

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

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

Z
zengyawen 已提交
1823
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1824 1825 1826

**参数:**

M
mali 已提交
1827
| 参数名       | 类型                     | 必填 | 说明                  |
J
jiangminyang 已提交
1828
| --------- | ----------------------- | ---- | --------------------- |
1829 1830 1831 1832 1833 1834
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。       |

**返回值:**

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

M
mali 已提交
1837 1838 1839 1840 1841 1842 1843 1844
**错误码:**

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

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

N
nikhilraut 已提交
1845 1846
**示例:**

Z
zengyawen 已提交
1847
```js
1848 1849 1850
try {
    captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1851
    // 失败返回错误码error.code并处理
1852 1853
    console.log(error.code);
}
N
nikhilraut 已提交
1854 1855
```

1856
### getFlashMode
J
jiangminyang 已提交
1857

1858
getFlashMode(): FlashMode
J
jiangminyang 已提交
1859

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

Z
zengyawen 已提交
1862
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1863 1864 1865

**返回值:**

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

M
mali 已提交
1870 1871 1872 1873 1874 1875 1876 1877
**错误码:**

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

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

N
nikhilraut 已提交
1878 1879
**示例:**

Z
zengyawen 已提交
1880
```js
1881 1882 1883
try {
    let flashMode = captureSession.getFlashMode();
} catch (error) {
1884
    // 失败返回错误码error.code并处理
1885 1886
    console.log(error.code);
}
N
nikhilraut 已提交
1887 1888
```

J
jiangminyang 已提交
1889
### isExposureModeSupported
J
jiangminyang 已提交
1890

1891
isExposureModeSupported(aeMode: ExposureMode): boolean;
J
jiangminyang 已提交
1892

1893
检测曝光模式是否支持。
Z
zengyawen 已提交
1894 1895 1896

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

J
jiangminyang 已提交
1897
**参数:**
J
jiangminyang 已提交
1898

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

J
jiangminyang 已提交
1903
**返回值:**
Z
zengyawen 已提交
1904

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

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

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

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

J
jiangminyang 已提交
1917 1918 1919
**示例:**

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

J
jiangminyang 已提交
1928
### getExposureMode
J
jiangminyang 已提交
1929

1930
getExposureMode(): ExposureMode
J
jiangminyang 已提交
1931

1932
获取当前曝光模式。
Z
zengyawen 已提交
1933

J
jiangminyang 已提交
1934 1935 1936 1937
**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

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

M
mali 已提交
1942 1943 1944 1945 1946 1947 1948 1949
**错误码:**

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

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

J
jiangminyang 已提交
1950 1951 1952
**示例:**

```js
1953 1954 1955
try {
    let exposureMode = captureSession.getExposureMode();
} catch (error) {
1956
    // 失败返回错误码error.code并处理
1957 1958
    console.log(error.code);
}
J
jiangminyang 已提交
1959
```
N
nikhilraut 已提交
1960

J
jiangminyang 已提交
1961
### setExposureMode
N
nikhilraut 已提交
1962

1963
setExposureMode(aeMode: ExposureMode): void
N
nikhilraut 已提交
1964

1965
设置曝光模式。
N
nikhilraut 已提交
1966

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

J
jiangminyang 已提交
1969
**参数:**
N
nikhilraut 已提交
1970

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

1975 1976 1977 1978
**返回值:**

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

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

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

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

J
jiangminyang 已提交
1989 1990 1991
**示例:**

```js
1992 1993 1994
try {
    captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
} catch (error) {
1995
    // 失败返回错误码error.code并处理
1996 1997
    console.log(error.code);
}
J
jiangminyang 已提交
1998 1999
```

J
jiangminyang 已提交
2000
### getMeteringPoint
J
jiangminyang 已提交
2001

2002
getMeteringPoint(): Point
J
jiangminyang 已提交
2003

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

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

J
jiangminyang 已提交
2008
**返回值:**
N
nikhilraut 已提交
2009

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

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

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

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

J
jiangminyang 已提交
2022 2023 2024
**示例:**

```js
2025 2026 2027
try {
    let exposurePoint = captureSession.getMeteringPoint();
} catch (error) {
2028
    // 失败返回错误码error.code并处理
2029 2030
    console.log(error.code);
}
J
jiangminyang 已提交
2031 2032
```

J
jiangminyang 已提交
2033
### setMeteringPoint
J
jiangminyang 已提交
2034

2035
setMeteringPoint(point: Point): void
J
jiangminyang 已提交
2036

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

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

J
jiangminyang 已提交
2044 2045
**参数:**

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

2050 2051 2052 2053
**返回值:**

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

M
mali 已提交
2056 2057 2058 2059 2060 2061 2062 2063
**错误码:**

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

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

J
jiangminyang 已提交
2064 2065 2066
**示例:**

```js
2067 2068 2069 2070
const exposurePoint = {x: 1, y: 1};
try {
    captureSession.setMeteringPoint(exposurePoint);
} catch (error) {
2071
    // 失败返回错误码error.code并处理
2072 2073
    console.log(error.code);
}
J
jiangminyang 已提交
2074 2075 2076 2077
```

### getExposureBiasRange

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

2080
查询曝光补偿范围。
J
jiangminyang 已提交
2081 2082 2083 2084 2085

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
2098 2099 2100
**示例:**

```js
2101 2102 2103
try {
    let biasRangeArray = captureSession.getExposureBiasRange();
} catch (error) {
2104
    // 失败返回错误码error.code并处理
2105 2106
    console.log(error.code);
}
J
jiangminyang 已提交
2107 2108 2109 2110
```

### setExposureBias

2111
setExposureBias(exposureBias: number): void
J
jiangminyang 已提交
2112

C
cold_yixiu 已提交
2113
设置曝光补偿,曝光补偿值(EV)。
J
jiangminyang 已提交
2114 2115 2116 2117 2118 2119 2120

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

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

**参数:**

M
mali 已提交
2121
| 参数名     | 类型                            | 必填 | 说明                 |
J
jiangminyang 已提交
2122
| -------- | -------------------------------| ---- | ------------------- |
C
cold 已提交
2123
| exposureBias   | number                   | 是   | 曝光补偿,getExposureBiasRange查询支持的范围,如果设置超过支持范围的值,自动匹配到就近临界点。曝光补偿存在步长,如步长为0.5。则设置1.2时,获取到实际生效曝光补偿为1.0。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode), |
J
jiangminyang 已提交
2124

M
mali 已提交
2125 2126 2127 2128 2129 2130 2131 2132
**错误码:**

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

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

J
jiangminyang 已提交
2133 2134 2135
**示例:**

```js
M
mali 已提交
2136
let exposureBias = biasRangeArray[0];
2137 2138 2139
try {
    captureSession.setExposureBias(exposureBias);
} catch (error) {
2140
    // 失败返回错误码error.code并处理
2141 2142
    console.log(error.code);
}
J
jiangminyang 已提交
2143 2144 2145 2146
```

### getExposureValue

2147
getExposureValue(): number
J
jiangminyang 已提交
2148

2149
查询当前曝光值。
J
jiangminyang 已提交
2150 2151 2152 2153 2154

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

**返回值:**

2155 2156
| 类型        | 说明                          |
| ---------- | ----------------------------- |
C
cold 已提交
2157
| number    | 获取曝光值。曝光补偿存在步长,如步长为0.5。则设置1.2时,获取到实际生效曝光补偿为1.0。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
J
jiangminyang 已提交
2158

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

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

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

J
jiangminyang 已提交
2167 2168 2169
**示例:**

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

### isFocusModeSupported

2180
isFocusModeSupported(afMode: FocusMode): boolean
J
jiangminyang 已提交
2181

2182
检测对焦模式是否支持。
J
jiangminyang 已提交
2183 2184 2185 2186 2187

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

**参数:**

M
mali 已提交
2188
| 参数名      | 类型                     | 必填 | 说明                              |
J
jiangminyang 已提交
2189 2190 2191 2192 2193
| -------- | ----------------------- | ---- | -------------------------------- |
| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。                    |

**返回值:**

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

M
mali 已提交
2198 2199 2200 2201 2202 2203 2204 2205
**错误码:**

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

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

J
jiangminyang 已提交
2206 2207 2208
**示例:**

```js
2209 2210 2211
try {
    let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
2212
    // 失败返回错误码error.code并处理
2213 2214
    console.log(error.code);
}
J
jiangminyang 已提交
2215 2216 2217 2218
```

### setFocusMode

2219
setFocusMode(afMode: FocusMode): void
J
jiangminyang 已提交
2220

2221
设置对焦模式。
J
jiangminyang 已提交
2222

J
jiangminyang 已提交
2223
进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)
J
jiangminyang 已提交
2224 2225 2226 2227 2228

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

**参数:**

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

2233 2234 2235 2236
**返回值:**

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

M
mali 已提交
2239 2240 2241 2242 2243 2244 2245 2246
**错误码:**

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

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

J
jiangminyang 已提交
2247 2248 2249
**示例:**

```js
2250 2251 2252
try {
    captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
2253
    // 失败返回错误码error.code并处理
2254 2255
    console.log(error.code);
}
J
jiangminyang 已提交
2256 2257 2258 2259
```

### getFocusMode

2260
getFocusMode(): FocusMode
J
jiangminyang 已提交
2261

2262
获取当前的对焦模式。
J
jiangminyang 已提交
2263 2264 2265 2266 2267

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

**返回值:**

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

M
mali 已提交
2272 2273 2274 2275 2276 2277 2278 2279
**错误码:**

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

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

J
jiangminyang 已提交
2280 2281 2282
**示例:**

```js
2283 2284 2285
try {
    let afMode = captureSession.getFocusMode();
} catch (error) {
2286
    // 失败返回错误码error.code并处理
2287 2288
    console.log(error.code);
}
J
jiangminyang 已提交
2289 2290 2291 2292
```

### setFocusPoint

2293
setFocusPoint(point: Point): void
J
jiangminyang 已提交
2294

C
cold_yixiu 已提交
2295 2296 2297 2298
设置焦点,焦点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。
此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以
设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y},
则转换后的坐标点为{y/h,1-x/w}。
J
jiangminyang 已提交
2299 2300 2301 2302 2303

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

**参数:**

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

2308 2309 2310 2311
**返回值:**

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

M
mali 已提交
2314 2315 2316 2317 2318 2319 2320 2321
**错误码:**

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

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

J
jiangminyang 已提交
2322 2323 2324 2325
**示例:**

```js
const Point1 = {x: 1, y: 1};
2326 2327 2328
try {
    captureSession.setFocusPoint(Point1);
} catch (error) {
2329
    // 失败返回错误码error.code并处理
2330 2331
    console.log(error.code);
}
J
jiangminyang 已提交
2332 2333 2334 2335
```

### getFocusPoint

2336
getFocusPoint(): Point
J
jiangminyang 已提交
2337

2338
查询焦点。
J
jiangminyang 已提交
2339 2340 2341 2342 2343

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

**返回值:**

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

M
mali 已提交
2348 2349 2350 2351 2352 2353 2354 2355
**错误码:**

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

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

J
jiangminyang 已提交
2356 2357 2358
**示例:**

```js
2359 2360 2361
try {
    let point = captureSession.getFocusPoint();
} catch (error) {
2362
    // 失败返回错误码error.code并处理
2363 2364
    console.log(error.code);
}
J
jiangminyang 已提交
2365 2366 2367 2368
```

### getFocalLength

2369
getFocalLength(): number
J
jiangminyang 已提交
2370

2371
查询焦距值。
J
jiangminyang 已提交
2372 2373 2374 2375 2376

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

**返回值:**

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

M
mali 已提交
2381 2382 2383 2384 2385 2386 2387 2388
**错误码:**

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

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

J
jiangminyang 已提交
2389 2390 2391
**示例:**

```js
2392 2393 2394
try {
    let focalLength = captureSession.getFocalLength();
} catch (error) {
2395
    // 失败返回错误码error.code并处理
2396 2397
    console.log(error.code);
}
J
jiangminyang 已提交
2398 2399 2400 2401
```

### getZoomRatioRange

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

2404
获取支持的变焦范围。
J
jiangminyang 已提交
2405 2406 2407

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

2408
**返回值:**
J
jiangminyang 已提交
2409

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

M
mali 已提交
2414 2415 2416 2417 2418 2419 2420 2421
**错误码:**

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

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

J
jiangminyang 已提交
2422 2423 2424
**示例:**

```js
2425 2426 2427
try {
    let zoomRatioRange = captureSession.getZoomRatioRange();
} catch (error) {
2428
    // 失败返回错误码error.code并处理
2429 2430
    console.log(error.code);
}
J
jiangminyang 已提交
2431 2432
```

2433
### setZoomRatio
J
jiangminyang 已提交
2434

2435
setZoomRatio(zoomRatio: number): void
J
jiangminyang 已提交
2436

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

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

2441
**参数:**
J
jiangminyang 已提交
2442

2443 2444
| 参数名       | 类型                  | 必填 | 说明                 |
| --------- | -------------------- | ---- | ------------------- |
M
mali 已提交
2445
| zoomRatio | number               | 是   | 可变焦距比,通过getZoomRatioRange获取支持的变焦范围,如果设置超过支持范围的值,自动匹配到就近临界点。 |
J
jiangminyang 已提交
2446

2447 2448 2449 2450
**返回值:**

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

M
mali 已提交
2453 2454 2455 2456 2457 2458 2459 2460
**错误码:**

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

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

J
jiangminyang 已提交
2461 2462 2463
**示例:**

```js
2464 2465 2466 2467
let zoomRatio = zoomRatioRange[0];
try {
    captureSession.setZoomRatio(zoomRatio);
} catch (error) {
2468
    // 失败返回错误码error.code并处理
2469 2470
    console.log(error.code);
}
J
jiangminyang 已提交
2471 2472
```

2473
### getZoomRatio
J
jiangminyang 已提交
2474

2475
getZoomRatio(): number
J
jiangminyang 已提交
2476

2477
获取当前的变焦比。
J
jiangminyang 已提交
2478 2479 2480

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

2481
**返回值:**
J
jiangminyang 已提交
2482

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

M
mali 已提交
2487 2488 2489 2490 2491 2492 2493 2494
**错误码:**

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

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

J
jiangminyang 已提交
2495 2496 2497
**示例:**

```js
2498 2499 2500
try {
    let zoomRatio = captureSession.getZoomRatio();
} catch (error) {
2501
    // 失败返回错误码error.code并处理
2502 2503
    console.log(error.code);
}
J
jiangminyang 已提交
2504 2505
```

2506
### isVideoStabilizationModeSupported
J
jiangminyang 已提交
2507

2508
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean
J
jiangminyang 已提交
2509

2510
查询是否支持指定的视频防抖模式。
J
jiangminyang 已提交
2511 2512 2513

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

2514 2515 2516 2517 2518 2519
**参数:**

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

J
jiangminyang 已提交
2520 2521
**返回值:**

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

M
mali 已提交
2526 2527 2528 2529 2530 2531 2532 2533
**错误码:**

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

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

J
jiangminyang 已提交
2534 2535 2536
**示例:**

```js
2537 2538 2539
try {
    let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF);
} catch (error) {
2540
    // 失败返回错误码error.code并处理
2541 2542
    console.log(error.code);
}
J
jiangminyang 已提交
2543 2544
```

2545
### getActiveVideoStabilizationMode
J
jiangminyang 已提交
2546

2547
getActiveVideoStabilizationMode(): VideoStabilizationMode
J
jiangminyang 已提交
2548

2549
查询当前正在使用的视频防抖模式。
J
jiangminyang 已提交
2550 2551 2552

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

2553
**返回值:**
J
jiangminyang 已提交
2554

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

M
mali 已提交
2559 2560 2561 2562 2563 2564 2565 2566
**错误码:**

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

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

J
jiangminyang 已提交
2567 2568 2569
**示例:**

```js
2570 2571 2572
try {
    let vsMode = captureSession.getActiveVideoStabilizationMode();
} catch (error) {
2573
    // 失败返回错误码error.code并处理
2574 2575
    console.log(error.code);
}
J
jiangminyang 已提交
2576 2577 2578 2579
```

### setVideoStabilizationMode

2580
setVideoStabilizationMode(mode: VideoStabilizationMode): void
J
jiangminyang 已提交
2581

2582
设置视频防抖模式。
J
jiangminyang 已提交
2583 2584 2585 2586 2587

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

**参数:**

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

2592 2593 2594 2595
**返回值:**

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

M
mali 已提交
2598 2599 2600 2601 2602 2603 2604 2605
**错误码:**

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

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

J
jiangminyang 已提交
2606 2607 2608
**示例:**

```js
2609 2610 2611
try {
    captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF);
} catch (error) {
2612
    // 失败返回错误码error.code并处理
2613 2614
    console.log(error.code);
}
J
jiangminyang 已提交
2615
```
F
fengwei0704 已提交
2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796
### getSupportedFilters

getSupportedFilters(): Array\<FilterType>

获取当前支持的滤镜效果列表。

**系统接口:** 此接口为系统接口。

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

**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
|  Array\<FilterType\>     | 返回支持的滤镜效果列表。 |

**示例:**

```js
let FilterTypes = captureSession.getSupportedFilters();
```
### setFilter

setFilter(filter: FilterType): void

设置滤镜效果。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名    | 类型                        | 必填 | 说明                  |
| -------- | ----------------------------| ---- | ---------------------|
| filter     | [FilterType](#filtertype) | 是   | 当前用户设置的滤镜类型。  |

**示例:**

```js
let FilterTypes = captureSession.getSupportedFilters();
if (!FilterTypes.empty()) {
    captureSession.setFilter(FilterTypes[0]);
}
```

### getFilter

 getFilter(): number

获取当前已设置的滤镜效果。

**系统接口:** 此接口为系统接口。

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

**返回值:**

| 类型                     | 说明                         |
| ----------               | ----------------------------|
| [FilterType](#filtertype)| 已设置的滤镜效果。可查阅[FilterType](#filtertype)。|

**示例:**

```js
let FilterType = captureSession.getFilter();
```
### getSupportedBeautyTypes

getSupportedBeautyTypes(): Array<BeautyType>

获取当前支持的美颜效果列表。

**系统接口:** 此接口为系统接口。

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

**返回值:**

| 类型                | 说明                                                  |
| ----------          | -----------------------------                         |
|  Array\<BeautyType\>| 返回当前支持的美颜效果列表。                             |

**示例:**

```js
let FilterTypes = captureSession.getSupportedBeautyTypes();
```
### getSupportedBeautyRanges

getSupportedBeautyRanges(type: BeautyType): Array<number>

获取指定美颜效果的范围值。

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

**参数:**

| 参数名      | 类型                    | 必填 | 说明       |
| -------- | --------------------------| ---- | ----------|
| type     | [BeautyType](#beautytype) | 是   | 美颜类型。   |

**返回值:**

| 类型        | 说明                          |
| ---------- | ----------------------------- |
|  Array\<number\>     | 当前美颜类型所支持的美颜强度。 |

**示例:**

```js
let beautyTypes = captureSession.getSupportedBeautyTypes();
if (!beautyTypes.empty()) {
    let nums = captureSession.getSupportedBeautyRanges(beautyTypes[0]);
}
```

### setBeauty

setBeauty(type: BeautyType, value: number): void

设置美颜类型以及对应的美颜强度

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名      | 类型                    | 必填 | 说明                   |
| -------- | --------------------------| ---- | --------------------- |
| type     | [BeautyType](#beautytype) | 是   | 美颜类型   |
| value    | [number]                  | 是   | 美颜强度,通过[getSupportedBeautyRanges](#getsupportedbeautyranges)接口获取。|

**示例:**

```js
let beautyTypes = captureSession.getSupportedBeautyTypes();
let beautyLevels;
if (!beautyTypes.empty()) {
    beautyLevels = captureSession.getSupportedBeautyRanges(beautyTypes[0]);
}
if (!beautyTypes.empty() && beautyLevels.empty()) {
    captureSession.setBeauty(beautyTypes[0], beautyLevels[0]);
}
```

### getBeauty

getBeauty(type: BeautyType): number

查询当前已设置的美颜效果对应的美颜强度。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名      | 类型                                              | 必填 | 说明                    |
| -------- | ------------------------------------------------- | ---- | --------------------- |
| type     | [BeautyType](#beautytype) | 是   | 美颜类型   |

**返回值:**
| 参数名      | 类型                                              | 必填 | 说明                    |
| -------- | ------------------------------------------------- | ---- | --------------------- |
| value     | [number] | 是   | 美颜强度  |

**示例:**

```js
let BeautyTypes = captureSession.getSupportedBeautyTypes();
let beautyLevels;
if (!BeautyTypes.empty()) {
    beautyLevels = captureSession.getSupportedBeautyRanges(BeautyTypes[0]);
}
if (!BeautyTypes.empty() && beautyLevels.empty()) {
    captureSession.setBeauty(BeautyTypes[0], beautyLevels[0]);
}
let beautyLevel = captureSession.getBeauty(BeautyTypes[0]);
```
J
jiangminyang 已提交
2797 2798 2799

### on('focusStateChange')

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

2802
监听相机聚焦的状态变化,通过注册回调函数获取结果。
J
jiangminyang 已提交
2803 2804 2805 2806 2807

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

**参数:**

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

**示例:**

```js
M
mali 已提交
2816
captureSession.on('focusStateChange', (err, focusState) => {
J
jiangminyang 已提交
2817 2818 2819 2820 2821 2822
    console.log(`Focus state  : ${focusState}`);
})
```

### on('error')

Z
zengyawen 已提交
2823
on(type: 'error', callback: ErrorCallback): void
J
jiangminyang 已提交
2824 2825 2826 2827 2828 2829 2830

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

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

**参数:**

M
mali 已提交
2831
| 参数名     | 类型                                                          | 必填 | 说明                           |
J
jiangminyang 已提交
2832
| -------- | ----------------------------------------------------------- | ---- | ------------------------------ |
2833
| type     | string                                                      | 是   | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用(beginConfig(),commitConfig(),addInput)等接口发生错误时返回错误信息。 |
Z
zengyawen 已提交
2834
| callback | ErrorCallback| 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)        |
J
jiangminyang 已提交
2835 2836 2837 2838

**示例:**

```js
2839 2840
captureSession.on('error', (error) => {
    console.log(`Capture session error code: ${error.code}`);
J
jiangminyang 已提交
2841 2842
})
```
F
fengwei0704 已提交
2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916
## PortraitSession

继承自[CaptureSession](#capturesession),用于设置人像模式的参数。

### getSupportedPortraitEffects

getSupportedPortraitEffects(): Array<PortraitEffect>

获取支持的人像虚化效果列表。

**系统接口:** 此接口为系统接口。

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

**返回值:**

| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
| Array<[PortraitEffect](#portraiteffect) > | 支持的人像虚化效果列表。               |

**示例:**

```js
let portraitEffect = PortraitSession.getSupportedPortraitEffects();
```
### setPortraitEffect

setPortraitEffect(effect: PortraitEffect): void

设置人像虚化效果。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名         | 类型                                                            | 必填 | 说明                      |
| ------------ |--------------------------------------------------------------- | -- | -------------------------- |
| effect | [PortraitEffect](#portraiteffect)                              | 是 | 人像虚化效果,通过[getSupportedPortraitEffects](#getsupportedportraiteffects)接口获取。   |

**示例:**

```js
let portraitEffects = PortraitSession.getSupportedPortraitEffects();
if (!portraitEffects.empty()) {
    PortraitSession.setPortraitEffect(portraitEffects[0]);
}
```
### getPortraitEffect

getPortraitEffect(): PortraitEffect

获取当前设置的人像虚化效果。

**系统接口:** 此接口为系统接口。

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

**返回值:**

| 类型                                             | 说明                           |
| ----------------------------------------------- | ---------------------------- |
| [PortraitEffect](#portraiteffect)               | 当前设置的人像虚化效果。                |


**示例:**

```js
let portraitEffects = PortraitSession.getSupportedPortraitEffects();
if (!portraitEffects.empty()) {
    PortraitSession.setPortraitEffect(portraitEffects[0]);
}
```
J
jiangminyang 已提交
2917 2918 2919 2920 2921

## CameraOutput

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

M
mali 已提交
2922
## PreviewOutput
J
jiangminyang 已提交
2923

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

M
mali 已提交
2926 2927
### start

C
cold_yixiu 已提交
2928
start(callback: AsyncCallback\<void\>): void
M
mali 已提交
2929 2930

开始输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
2931 2932 2933 2934 2935

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

**参数:**

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

M
mali 已提交
2940 2941 2942 2943 2944 2945 2946 2947
**错误码:**

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

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

J
jiangminyang 已提交
2948 2949 2950
**示例:**

```js
M
mali 已提交
2951
previewOutput.start((err) => {
J
jiangminyang 已提交
2952
    if (err) {
2953
        console.error(`Failed to start the previewOutput. ${err.code}`);
J
jiangminyang 已提交
2954 2955
        return;
    }
M
mali 已提交
2956 2957
    console.log('Callback returned with previewOutput started.');
})
J
jiangminyang 已提交
2958 2959
```

M
mali 已提交
2960
### start
J
jiangminyang 已提交
2961

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

M
mali 已提交
2964
开始输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
2965 2966 2967 2968 2969 2970 2971

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

**返回值:**

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

M
mali 已提交
2974 2975 2976 2977 2978 2979 2980 2981
**错误码:**

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

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

J
jiangminyang 已提交
2982 2983 2984
**示例:**

```js
M
mali 已提交
2985 2986
previewOutput.start().then(() => {
    console.log('Promise returned with previewOutput started.');
2987 2988 2989
}).catch((err) => {
    console.log('Failed to previewOutput start '+ err.code);
});
J
jiangminyang 已提交
2990 2991
```

M
mali 已提交
2992
### stop
J
jiangminyang 已提交
2993

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

M
mali 已提交
2996
停止输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
2997 2998 2999 3000 3001

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

**参数:**

M
mali 已提交
3002
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
3003
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
3004
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
J
jiangminyang 已提交
3005 3006 3007 3008

**示例:**

```js
M
mali 已提交
3009
previewOutput.stop((err) => {
J
jiangminyang 已提交
3010
    if (err) {
3011
        console.error(`Failed to stop the previewOutput. ${err.code}`);
J
jiangminyang 已提交
3012 3013
        return;
    }
M
mali 已提交
3014
    console.log('Callback returned with previewOutput stopped.');
J
jiangminyang 已提交
3015 3016 3017
})
```

M
mali 已提交
3018
### stop
J
jiangminyang 已提交
3019

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

M
mali 已提交
3022
停止输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
3023 3024 3025 3026 3027 3028

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

**返回值:**

| 类型            | 说明                     |
M
mali 已提交
3029
| -------------- | ------------------------ |
C
cold_yixiu 已提交
3030
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
3031 3032 3033 3034

**示例:**

```js
M
mali 已提交
3035 3036
previewOutput.stop().then(() => {
    console.log('Callback returned with previewOutput stopped.');
3037
}).catch((err) => {
3038
    console.log('Failed to previewOutput stop '+ err.code);
3039
});
J
jiangminyang 已提交
3040 3041
```

M
mali 已提交
3042
### release
J
jiangminyang 已提交
3043

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

M
mali 已提交
3046
释放输出资源,通过注册回调函数获取结果。
J
jiangminyang 已提交
3047 3048 3049 3050 3051

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

**参数:**

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

M
mali 已提交
3056 3057 3058 3059 3060 3061 3062 3063
**错误码:**

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

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

J
jiangminyang 已提交
3064 3065 3066
**示例:**

```js
M
mali 已提交
3067
previewOutput.release((err) => {
J
jiangminyang 已提交
3068
    if (err) {
3069
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
J
jiangminyang 已提交
3070 3071
        return;
    }
M
mali 已提交
3072 3073
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
J
jiangminyang 已提交
3074 3075
```

M
mali 已提交
3076
### release
J
jiangminyang 已提交
3077

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

M
mali 已提交
3080
释放输出资源,通过Promise获取结果。
J
jiangminyang 已提交
3081 3082 3083 3084 3085 3086

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

**返回值:**

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

M
mali 已提交
3090 3091 3092 3093 3094 3095 3096 3097
**错误码:**

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

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

J
jiangminyang 已提交
3098 3099 3100
**示例:**

```js
M
mali 已提交
3101 3102
previewOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3103 3104 3105
}).catch((err) => {
    console.log('Failed to previewOutput release '+ err.code);
});
J
jiangminyang 已提交
3106 3107 3108 3109
```

### on('frameStart')

C
cold_yixiu 已提交
3110
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3111 3112 3113 3114 3115 3116 3117

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

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

**参数:**

M
mali 已提交
3118
| 参数名      | 类型                  | 必填 | 说明                                     |
J
jiangminyang 已提交
3119
| -------- | -------------------- | ---- | --------------------------------------- |
3120
| type     | string               | 是   | 监听事件,固定为'frameStart',previewOutput创建成功可监听。底层第一次开始曝光时触发该事件并返回 |
C
cold_yixiu 已提交
3121
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览开始                     |
J
jiangminyang 已提交
3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132

**示例:**

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

### on('frameEnd')

C
cold_yixiu 已提交
3133
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3134 3135 3136 3137 3138 3139 3140

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

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

**参数:**

M
mali 已提交
3141
| 参数名      | 类型                  | 必填 | 说明                                  |
J
jiangminyang 已提交
3142
| -------- | -------------------- | ---- | ------------------------------------- |
3143
| type     | string               | 是   | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。预览完全结束最后一帧时触发该事件并返回, |
C
cold_yixiu 已提交
3144
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览结束                 |
J
jiangminyang 已提交
3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155

**示例:**

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

### on('error')

Z
zengyawen 已提交
3156
on(type: 'error', callback: ErrorCallback): void
J
jiangminyang 已提交
3157 3158 3159 3160 3161 3162 3163

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

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

**参数:**

3164 3165
| 参数名     | 类型         | 必填 | 说明                       |
| -------- | --------------| ---- | ------------------------ |
3166
| type     | string        | 是   | 监听事件,固定为'error',previewOutput创建成功可监听。预览接口使用错误时触发该事件,比如调用(start(),release())等接口发生错误时返回对应错误信息。|
Z
zengyawen 已提交
3167
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)  |
J
jiangminyang 已提交
3168 3169 3170 3171 3172 3173 3174 3175 3176

**示例:**

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

Z
zengyawen 已提交
3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219
### addDeferredSurface

addDeferredSurface(surfaceId: string): void

配置延迟预览的Surface,可以在session.commitConfig()配流和session.start()启流之后运行。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名     | 类型         | 必填 | 说明                       |
| -------- | --------------| ---- | ------------------------ |
| surfaceId | string | 是 | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)组件获取的surfaceId。|

**错误码:**

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

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

**示例:**

```js
function async preview(context: Context, cameraInfo: camera.Device, previewProfile: camera.Profile, photoProfile: camera.Profile, surfaceId: string): Promise<void> {
  const cameraManager: camera.CameraManager = camera.getCameraManager(context);
  const cameraInput camera.CameraInput = await cameraManager.createCameraInput(cameraInfo)
  const previewOutput: camera.PreviewOutput = await cameraManager.createDeferredPreviewOutput(previewProfile);
  const photoOutput: camera.PhotoOutput = await cameraManager.createPhotoOutput(photoProfile);
  const session: camera.CaptureSession  = await this.mCameraManager.createCaptureSession();
  await session.beginConfig();
  await session.addInput(cameraInput);
  await session.addOutput(previewOutput);
  await session.addOutput(photoOutput);
  await session.commitConfig();
  await session.start();
  await previewOutput.addDeferredSurface(surfaceId);
}
```

J
jiangminyang 已提交
3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234
## ImageRotation

枚举,图片旋转角度。

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

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

## Location

J
jiangminyang 已提交
3235
图片地理位置信息。
J
jiangminyang 已提交
3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259

**系统能力:** 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 已提交
3260
拍摄照片的设置。
J
jiangminyang 已提交
3261 3262 3263

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

M
mali 已提交
3264 3265 3266 3267 3268 3269
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
| quality  | [QualityLevel](#qualitylevel)   | 否   | 图片质量。         |
| rotation | [ImageRotation](#imagerotation) | 否   | 图片旋转角度。      |
| location | [Location](#location)           | 否   | 图片地理位置信息。   |
| mirror   | boolean                         | 否   |镜像使能开关(默认关)。 |
J
jiangminyang 已提交
3270 3271 3272

## PhotoOutput

M
mali 已提交
3273
拍照会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
3274 3275 3276

### capture

C
cold_yixiu 已提交
3277
capture(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3278 3279 3280 3281 3282 3283 3284

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

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

**参数:**

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

M
mali 已提交
3289 3290 3291 3292 3293 3294 3295 3296 3297
**错误码:**

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

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

J
jiangminyang 已提交
3298 3299 3300 3301 3302
**示例:**

```js
photoOutput.capture((err) => {
    if (err) {
3303
        console.error(`Failed to capture the photo ${err.code}`);
J
jiangminyang 已提交
3304 3305 3306 3307 3308 3309 3310 3311
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
```

### capture

C
cold_yixiu 已提交
3312
capture(): Promise\<void\>
3313 3314 3315 3316 3317 3318 3319 3320 3321

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

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

**返回值:**

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

M
mali 已提交
3324 3325 3326 3327 3328 3329 3330 3331 3332
**错误码:**

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

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

3333 3334 3335 3336 3337
**示例:**

```js
photoOutput.capture().then(() => {
    console.log('Promise returned to indicate that photo capture request success.');
3338 3339 3340
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
3341 3342 3343 3344
```

### capture

C
cold_yixiu 已提交
3345
capture(setting: PhotoCaptureSetting, callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3346 3347 3348 3349 3350 3351 3352

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

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

**参数:**

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

M
mali 已提交
3358 3359 3360 3361 3362 3363 3364 3365 3366 3367
**错误码:**

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

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

J
jiangminyang 已提交
3368 3369 3370
**示例:**

```js
M
mali 已提交
3371 3372 3373 3374 3375 3376 3377 3378 3379 3380
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 已提交
3381 3382
}
photoOutput.capture(settings, (err) => {
Z
zengyawen 已提交
3383
    if (err) {
3384
        console.error(`Failed to capture the photo ${err.code}`);
Z
zengyawen 已提交
3385 3386 3387 3388
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
J
jiangminyang 已提交
3389 3390
```

J
jiangminyang 已提交
3391 3392
### capture

C
cold_yixiu 已提交
3393
capture(setting?: PhotoCaptureSetting): Promise\<void\>
J
jiangminyang 已提交
3394 3395 3396 3397 3398 3399 3400

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

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

**参数:**

M
mali 已提交
3401
| 参数名     | 类型                                         | 必填 | 说明      |
J
jiangminyang 已提交
3402
| ------- | ------------------------------------------- | ---- | -------- |
M
review  
mali 已提交
3403
| setting | [PhotoCaptureSetting](#photocapturesetting) | 否   | 拍照设置,传入undefined类型数据按默认无参处理。 |
J
jiangminyang 已提交
3404 3405 3406 3407 3408

**返回值:**

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

M
mali 已提交
3411 3412 3413 3414 3415 3416 3417 3418 3419
**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400104                |  Session not running.                                  |
| 7400201                |  Camera service fatal error.                           |
J
jiangminyang 已提交
3420 3421 3422 3423

**示例:**

```js
M
mali 已提交
3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434
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
}
3435
photoOutput.capture(settings).then(() => {
J
jiangminyang 已提交
3436
    console.log('Promise returned to indicate that photo capture request success.');
3437 3438 3439
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
J
jiangminyang 已提交
3440 3441 3442 3443
```

### isMirrorSupported

3444
isMirrorSupported(): boolean
J
jiangminyang 已提交
3445

3446
查询是否支持镜像拍照。
J
jiangminyang 已提交
3447 3448 3449

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

3450
**返回值:**
J
jiangminyang 已提交
3451

3452 3453
| 类型            | 说明                     |
| -------------- | ----------------------- |
3454
| boolean | 返回是否支持镜像拍照。 |
J
jiangminyang 已提交
3455 3456 3457 3458

**示例:**

```js
3459
let isSupported = photoOutput.isMirrorSupported();
J
jiangminyang 已提交
3460 3461
```

M
mali 已提交
3462 3463
### release

C
cold_yixiu 已提交
3464
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
3465 3466 3467 3468 3469 3470 3471 3472 3473

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

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

**参数:**

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

M
mali 已提交
3476 3477 3478 3479 3480 3481 3482 3483
**错误码:**

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

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

M
mali 已提交
3484 3485 3486 3487 3488
**示例:**

```js
photoOutput.release((err) => {
    if (err) {
3489
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
3490 3491 3492 3493 3494 3495 3496 3497
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
3498
release(): Promise\<void\>
M
mali 已提交
3499 3500 3501 3502 3503 3504 3505 3506 3507

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

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

**返回值:**

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

M
mali 已提交
3510 3511 3512 3513 3514 3515 3516 3517
**错误码:**

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

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

M
mali 已提交
3518 3519 3520 3521 3522
**示例:**

```js
photoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3523 3524 3525
}).catch((err) => {
    console.log('Failed to photoOutput release '+ err.code);
});
M
mali 已提交
3526 3527
```

J
jiangminyang 已提交
3528 3529
### on('captureStart')

C
cold_yixiu 已提交
3530
on(type: 'captureStart', callback: AsyncCallback\<number\>): void
J
jiangminyang 已提交
3531 3532 3533 3534 3535 3536 3537

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

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

**参数:**

M
mali 已提交
3538
| 参数名      | 类型                    | 必填 | 说明                                       |
J
jiangminyang 已提交
3539
| -------- | ---------------------- | ---- | ------------------------------------------ |
3540
| type     | string                 | 是   | 监听事件,固定为'captureStart',photoOutput创建成功后可监听。每次拍照,底层开始曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
3541
| callback | AsyncCallback\<number\> | 是   | 使用callback的方式获取Capture ID。            |
J
jiangminyang 已提交
3542 3543 3544 3545

**示例:**

```js
M
mali 已提交
3546
photoOutput.on('captureStart', (err, captureId) => {
J
jiangminyang 已提交
3547 3548 3549 3550 3551 3552
    console.log(`photo capture stated, captureId : ${captureId}`);
})
```

### on('frameShutter')

C
cold_yixiu 已提交
3553
on(type: 'frameShutter', callback: AsyncCallback\<FrameShutterInfo\>): void
J
jiangminyang 已提交
3554 3555 3556 3557 3558 3559 3560

监听拍照帧输出捕获,通过注册回调函数获取结果。

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

**参数:**

3561 3562
| 参数名     | 类型      | 必填 | 说明                                  |
| -------- | ---------- | --- | ------------------------------------ |
3563
| type     | string     | 是   | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 |
C
cold_yixiu 已提交
3564
| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。该回调返回意味着可以再次下发拍照请求。             |
J
jiangminyang 已提交
3565 3566 3567 3568

**示例:**

```js
M
mali 已提交
3569
photoOutput.on('frameShutter', (err, frameShutterInfo) => {
J
jiangminyang 已提交
3570 3571 3572 3573 3574 3575
    console.log(`photo capture end, captureId : ${frameShutterInfo.captureId}`);
    console.log(`Timestamp for frame : ${frameShutterInfo.timestamp}`);
})
```

### on('captureEnd')
J
jiangminyang 已提交
3576

C
cold_yixiu 已提交
3577
on(type: 'captureEnd', callback: AsyncCallback\<CaptureEndInfo\>): void
J
jiangminyang 已提交
3578

J
jiangminyang 已提交
3579
监听拍照结束,通过注册回调函数获取结果。
J
jiangminyang 已提交
3580 3581 3582 3583 3584

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

**参数:**

3585 3586
| 参数名     | 类型           | 必填 | 说明                                       |
| -------- | --------------- | ---- | ---------------------------------------- |
3587
| type     | string          | 是   | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 |
C
cold_yixiu 已提交
3588
| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                  |
J
jiangminyang 已提交
3589

J
jiangminyang 已提交
3590
**示例:**
J
jiangminyang 已提交
3591

J
jiangminyang 已提交
3592
```js
M
mali 已提交
3593
photoOutput.on('captureEnd', (err, captureEndInfo) => {
J
jiangminyang 已提交
3594 3595 3596 3597 3598 3599 3600
    console.log(`photo capture end, captureId : ${captureEndInfo.captureId}`);
    console.log(`frameCount : ${captureEndInfo.frameCount}`);
})
```

### on('error')

Z
zengyawen 已提交
3601
on(type: 'error', callback: ErrorCallback): void
J
jiangminyang 已提交
3602 3603

监听拍照输出发生错误,通过注册回调函数获取结果。
J
jiangminyang 已提交
3604

J
jiangminyang 已提交
3605 3606 3607 3608
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

3609 3610
| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
3611
| type     | string       | 是   | 监听事件,固定为'error',photoOutput创建成功后可监听。拍照接口调用时出现错误触发该事件并返回错误信息。 |
Z
zengyawen 已提交
3612
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)             |
J
jiangminyang 已提交
3613 3614 3615 3616

**示例:**

```js
3617
photoOutput.on('error', (error) => {
3618
    console.log(`Photo output error code: ${error.code}`);
J
jiangminyang 已提交
3619 3620 3621
})
```

Z
zengyawen 已提交
3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768
### isQuickThumbnailSupported

isQuickThumbnailSupported(): boolean

是否支持输出快速缩略图。

在CaptureSession.addOutput、CaptureSession.addInput之后,CaptureSession.commitConfig之前生效。

**系统接口:** 此接口为系统接口。

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

**返回值:**

| 类型 | 说明 |
| --------- | ------ |
| boolean | 返回支持情况,如果返回true表示支持,否则不支持。 |

**错误码:**

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

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

**示例:**

```js
this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
let cameras = this.cameraManager.getSupportedCameras()
// 创建CaptureSession实例
this.captureSession = await this.cameraManager.createCaptureSession()
// 开始配置会话
await this.captureSession.beginConfig()
// 把CameraInput加入到会话
this.mCameraInput = await this.cameraManager.createCameraInput(cameras[0])
await this.cameraInput.open()
await this.captureSession.addInput(this.cameraInput)
// 把PhotoOutPut加入到会话
this.photoOutPut = await this.cameraManager.createPhotoOutput(photoProfile, surfaceId)
await this.captureSession.addOutput(this.photoOutPut)

boolean isSupported = this.photoOutPut.isQuickThumbnailSupported()
```

### enableQuickThumbnail

enableQuickThumbnail(enabled: boolean): void

使能/去使能快速缩略图。

在CaptureSession.addOutput、CaptureSession.addInput之后,CaptureSession.commitConfig之前生效。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
| enabled    | boolean       | 是   | true:使能快速缩略图;false:去使能快速缩略图。 |

**错误码:**

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

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

**示例:**

```js
this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
let cameras = this.cameraManager.getSupportedCameras()
// 创建CaptureSession实例
this.captureSession = await this.cameraManager.createCaptureSession()
// 开始配置会话
await this.captureSession.beginConfig()
// 把CameraInput加入到会话
this.cameraInput = await this.cameraManager.createCameraInput(cameras[0])
await this.cameraInput.open()
await this.captureSession.addInput(this.cameraInput)
// 把PhotoOutPut加入到会话
this.photoOutPut = await this.cameraManager.createPhotoOutput(photoProfile, surfaceId)
await this.captureSession.addOutput(this.photoOutPut)
boolean isSupported = this.photoOutPut.isQuickThumbnailSupported()
if (isSupported) {
    // 使能快速缩略图
    this.photoOutPut.enableQuickThumbnail(true)
}
```

### on('quickThumbnail')

on(type: 'quickThumbnail', callback: AsyncCallback\<image.PixelMap>): void

监听快速缩略图输出事件。

在enableQuickThumbnail(true)使能快速缩略图之后监听生效。

**系统接口:** 此接口为系统接口。

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

**参数:**

| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
| type    | string     | 是   | 监听事件,固定为'quickThumbnail'。 |
| callback | AsyncCallback\<[image.PixelMap](js-apis-image.md#pixelmap7)> | 回调返回PixelMap。 |

**示例:**

```js
import camera from '@ohos.multimedia.camera'

this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
let cameras = this.cameraManager.getSupportedCameras()
// 创建CaptureSession实例
this.captureSession = await this.cameraManager.createCaptureSession()
// 开始配置会话
await this.captureSession.beginConfig()
// 把CameraInput加入到会话
this.cameraInput = await this.cameraManager.createCameraInput(cameras[0])
await this.cameraInput.open()
await this.captureSession.addInput(this.cameraInput)
// 把PhotoOutPut加入到会话
this.photoOutPut = await this.cameraManager.createPhotoOutput(photoProfile, surfaceId)
await this.captureSession.addOutput(this.photoOutPut)
boolean isSupported = this.photoOutPut.isQuickThumbnailSupported()
if (isSupported) {
    // 使能快速缩略图
    this.photoOutPut.enableQuickThumbnail(true)
}
this.photoOutPut.on('quickThumbnail', (err, pixelmap) => {
    if (err || pixelmap === undefined) {
        Logger.error(this.tag, 'photoOutPut on thumbnail failed ')
        return
    }
    // 显示或保存pixelmap
    this.showOrSavePicture(pixelmap)
})
```

J
jiangminyang 已提交
3769
## FrameShutterInfo
J
jiangminyang 已提交
3770

J
jiangminyang 已提交
3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792
拍照帧输出信息。

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

| 名称      | 类型   | 必填 | 说明         |
| --------- | ------ | ---- | ---------- |
| captureId | number | 是   | 拍照的ID。  |
| timestamp | number | 是   | 快门时间戳。 |

## CaptureEndInfo

拍照停止信息。

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

| 名称       | 类型   | 必填 | 说明       |
| ---------- | ------ | ---- | ---------|
| captureId  | number | 是   | 拍照的ID。 |
| frameCount | number | 是   | 帧数。    |

## VideoOutput

M
mali 已提交
3793
录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
3794 3795 3796

### start

C
cold_yixiu 已提交
3797
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3798 3799

启动录制,通过注册回调函数获取结果。
J
jiangminyang 已提交
3800 3801 3802 3803 3804

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

**参数:**

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

M
mali 已提交
3809 3810 3811 3812 3813 3814 3815 3816 3817
**错误码:**

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

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

J
jiangminyang 已提交
3818 3819 3820
**示例:**

```js
J
jiangminyang 已提交
3821
videoOutput.start((err) => {
N
nikhilraut 已提交
3822
    if (err) {
3823
        console.error(`Failed to start the video output ${err.code}`);
N
nikhilraut 已提交
3824 3825
        return;
    }
J
jiangminyang 已提交
3826
    console.log('Callback invoked to indicate the video output start success.');
N
nikhilraut 已提交
3827 3828 3829
});
```

J
jiangminyang 已提交
3830
### start
N
nikhilraut 已提交
3831

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

J
jiangminyang 已提交
3834
启动录制,通过Promise获取结果。
N
nikhilraut 已提交
3835

Z
zengyawen 已提交
3836
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3837 3838 3839

**返回值:**

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

M
mali 已提交
3844 3845 3846 3847 3848 3849 3850 3851
**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |
N
nikhilraut 已提交
3852 3853 3854

**示例:**

Z
zengyawen 已提交
3855
```js
J
jiangminyang 已提交
3856 3857
videoOutput.start().then(() => {
    console.log('Promise returned to indicate that start method execution success.');
3858 3859 3860
}).catch((err) => {
    console.log('Failed to videoOutput start '+ err.code);
});
N
nikhilraut 已提交
3861 3862
```

J
jiangminyang 已提交
3863
### stop
N
nikhilraut 已提交
3864

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

J
jiangminyang 已提交
3867
结束录制,通过注册回调函数获取结果。
N
nikhilraut 已提交
3868

Z
zengyawen 已提交
3869
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3870 3871 3872

**参数:**

M
mali 已提交
3873
| 参数名     | 类型                 | 必填 | 说明                     |
J
jiangminyang 已提交
3874
| -------- | -------------------- | ---- | ------------------------ |
C
cold_yixiu 已提交
3875
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
3876 3877 3878

**示例:**

Z
zengyawen 已提交
3879
```js
J
jiangminyang 已提交
3880 3881
videoOutput.stop((err) => {
    if (err) {
3882
        console.error(`Failed to stop the video output ${err.code}`);
J
jiangminyang 已提交
3883 3884 3885 3886
        return;
    }
    console.log('Callback invoked to indicate the video output stop success.');
});
Z
zengyawen 已提交
3887
```
N
nikhilraut 已提交
3888

J
jiangminyang 已提交
3889
### stop
N
nikhilraut 已提交
3890

C
cold_yixiu 已提交
3891
stop(): Promise\<void\>
J
jiangminyang 已提交
3892 3893 3894 3895 3896 3897 3898 3899 3900

结束录制,通过Promise获取结果。

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

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
3901
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
3902 3903 3904 3905 3906 3907

**示例:**

```js
videoOutput.stop().then(() => {
    console.log('Promise returned to indicate that stop method execution success.');
3908
}).catch((err) => {
3909
    console.log('Failed to videoOutput stop '+ err.code);
3910
});
3911
```
J
jiangminyang 已提交
3912

M
mali 已提交
3913 3914
### release

C
cold_yixiu 已提交
3915
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
3916 3917 3918 3919 3920 3921 3922 3923 3924

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

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

**参数:**

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

M
mali 已提交
3927 3928 3929 3930 3931 3932 3933 3934
**错误码:**

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

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

M
mali 已提交
3935 3936 3937 3938 3939
**示例:**

```js
videoOutput.release((err) => {
    if (err) {
3940
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
3941 3942 3943 3944 3945 3946 3947 3948
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
3949
release(): Promise\<void\>
M
mali 已提交
3950 3951 3952 3953 3954 3955 3956 3957 3958

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

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

**返回值:**

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

M
mali 已提交
3961 3962 3963 3964 3965 3966 3967 3968
**错误码:**

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

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

M
mali 已提交
3969 3970 3971 3972 3973
**示例:**

```js
videoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3974 3975 3976
}).catch((err) => {
    console.log('Failed to videoOutput release '+ err.code);
});
M
mali 已提交
3977 3978
```

J
jiangminyang 已提交
3979 3980
### on('frameStart')

C
cold_yixiu 已提交
3981
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3982

J
jiangminyang 已提交
3983
监听录像开始,通过注册回调函数获取结果。
N
nikhilraut 已提交
3984

Z
zengyawen 已提交
3985
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3986 3987 3988

**参数:**

M
mali 已提交
3989
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
3990
| -------- | -------------------- | ---- | ----------------------------------------- |
3991
| type     | string               | 是   | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。底层第一次曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
3992
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。  只要有该事件返回就证明录像开始                     |
N
nikhilraut 已提交
3993 3994 3995

**示例:**

Z
zengyawen 已提交
3996
```js
J
jiangminyang 已提交
3997 3998
videoOutput.on('frameStart', () => {
    console.log('Video frame started');
N
nikhilraut 已提交
3999 4000 4001
})
```

J
jiangminyang 已提交
4002
### on('frameEnd')
N
nikhilraut 已提交
4003

C
cold_yixiu 已提交
4004
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
4005

J
jiangminyang 已提交
4006
监听录像结束,通过注册回调函数获取结果。
N
nikhilraut 已提交
4007

Z
zengyawen 已提交
4008
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4009 4010 4011

**参数:**

M
mali 已提交
4012
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
4013
| -------- | -------------------- | ---- | ------------------------------------------ |
4014
| type     | string               | 是   | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。录像完全结束最后一帧时触发该事件并返回  。 |
C
cold_yixiu 已提交
4015
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 只要有该事件返回就证明录像结束                      |
N
nikhilraut 已提交
4016 4017 4018

**示例:**

Z
zengyawen 已提交
4019
```js
J
jiangminyang 已提交
4020 4021
videoOutput.on('frameEnd', () => {
    console.log('Video frame ended');
N
nikhilraut 已提交
4022 4023 4024
})
```

J
jiangminyang 已提交
4025
### on('error')
N
nikhilraut 已提交
4026

Z
zengyawen 已提交
4027
on(type: 'error', callback: ErrorCallback): void
N
nikhilraut 已提交
4028

J
jiangminyang 已提交
4029
监听录像输出发生错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
4030

Z
zengyawen 已提交
4031
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4032 4033 4034

**参数:**

4035 4036
| 参数名     | 类型       | 必填 | 说明                                    |
| -------- | ----------- | ---- | -------------------------------------- |
4037
| type     | string      | 是   | 监听事件,固定为'error',videoOutput创建成功后可监听。录像接口调用出现错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时出现错误返回对应错误信息。 |
Z
zengyawen 已提交
4038
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)                 |
N
nikhilraut 已提交
4039 4040 4041

**示例:**

Z
zengyawen 已提交
4042
```js
4043 4044
videoOutput.on('error', (error) => {
    console.log(`Video output error code: ${error.code}`);
N
nikhilraut 已提交
4045 4046 4047
})
```

M
mali 已提交
4048
## MetadataOutput
N
nikhilraut 已提交
4049

M
mali 已提交
4050
metadata流。继承[CameraOutput](#cameraoutput)
N
nikhilraut 已提交
4051

M
mali 已提交
4052
### start
J
jiangminyang 已提交
4053

C
cold_yixiu 已提交
4054
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
4055

M
mali 已提交
4056
开始输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
4057

Z
zengyawen 已提交
4058
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4059 4060 4061

**参数:**

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

M
mali 已提交
4066 4067 4068 4069 4070 4071 4072 4073 4074
**错误码:**

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

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

N
nikhilraut 已提交
4075 4076
**示例:**

Z
zengyawen 已提交
4077
```js
M
mali 已提交
4078
metadataOutput.start((err) => {
N
nikhilraut 已提交
4079
    if (err) {
4080
        console.error(`Failed to start metadataOutput. ${err.code}`);
N
nikhilraut 已提交
4081 4082
        return;
    }
M
mali 已提交
4083
    console.log('Callback returned with metadataOutput started.');
J
jiangminyang 已提交
4084
})
Z
zengyawen 已提交
4085
```
N
nikhilraut 已提交
4086

M
mali 已提交
4087
### start
N
nikhilraut 已提交
4088

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

M
mali 已提交
4091
开始输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
4092

Z
zengyawen 已提交
4093
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4094 4095 4096

**返回值:**

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

M
mali 已提交
4101 4102 4103 4104 4105 4106 4107 4108 4109
**错误码:**

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

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

N
nikhilraut 已提交
4110 4111
**示例:**

Z
zengyawen 已提交
4112
```js
M
mali 已提交
4113 4114
metadataOutput.start().then(() => {
    console.log('Callback returned with metadataOutput started.');
4115 4116 4117
}).catch((err) => {
    console.log('Failed to metadataOutput start '+ err.code);
});
N
nikhilraut 已提交
4118 4119
```

M
mali 已提交
4120
### stop
N
nikhilraut 已提交
4121

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

M
mali 已提交
4124
停止输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
4125

Z
zengyawen 已提交
4126
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4127 4128 4129

**参数:**

M
mali 已提交
4130 4131
| 参数名     | 类型                         | 必填 | 说明                  |
| -------- | -------------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
4132
| callback | AsyncCallback\<void\>       | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
4133 4134 4135

**示例:**

Z
zengyawen 已提交
4136
```js
M
mali 已提交
4137
metadataOutput.stop((err) => {
N
nikhilraut 已提交
4138
    if (err) {
4139
        console.error(`Failed to stop the metadataOutput. ${err.code}`);
N
nikhilraut 已提交
4140 4141
        return;
    }
M
mali 已提交
4142
    console.log('Callback returned with metadataOutput stopped.');
J
jiangminyang 已提交
4143
})
N
nikhilraut 已提交
4144 4145
```

M
mali 已提交
4146
### stop
N
nikhilraut 已提交
4147

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

M
mali 已提交
4150
停止输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
4151

Z
zengyawen 已提交
4152
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4153 4154 4155

**返回值:**

M
mali 已提交
4156 4157
| 类型                    | 说明                        |
| ----------------------  | --------------------------- |
C
cold_yixiu 已提交
4158
| Promise\<void\>         | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
4159 4160 4161

**示例:**

Z
zengyawen 已提交
4162
```js
M
mali 已提交
4163 4164
metadataOutput.stop().then(() => {
    console.log('Callback returned with metadataOutput stopped.');
4165
}).catch((err) => {
4166
    console.log('Failed to metadataOutput stop '+ err.code);
4167
});
N
nikhilraut 已提交
4168 4169
```

M
mali 已提交
4170
### on('metadataObjectsAvailable')
N
nikhilraut 已提交
4171

C
cold_yixiu 已提交
4172
on(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObject\>\>): void
N
nikhilraut 已提交
4173

M
mali 已提交
4174
监听检测到的metadata对象,通过注册回调函数获取结果。
N
nikhilraut 已提交
4175

Z
zengyawen 已提交
4176
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4177 4178 4179

**参数:**

4180 4181 4182
| 参数名      | 类型         | 必填 | 说明                                  |
| -------- | -------------- | ---- | ------------------------------------ |
| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据 |
C
cold_yixiu 已提交
4183
| callback | Callback\<Array\<[MetadataObject](#metadataobject)\>\> | 是   | 回调函数,用于获取metadata数据。 |
N
nikhilraut 已提交
4184 4185 4186

**示例:**

Z
zengyawen 已提交
4187
```js
M
mali 已提交
4188
metadataOutput.on('metadataObjectsAvailable', (err, metadataObjectArr) => {
M
mali 已提交
4189
    console.log(`metadata output metadataObjectsAvailable`);
J
jiangminyang 已提交
4190
})
N
nikhilraut 已提交
4191 4192
```

M
mali 已提交
4193
### on('error')
N
nikhilraut 已提交
4194

Z
zengyawen 已提交
4195
on(type: 'error', callback: ErrorCallback): void
N
nikhilraut 已提交
4196

M
mali 已提交
4197
监听metadata流的错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
4198

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

M
mali 已提交
4201
**参数:**
N
nikhilraut 已提交
4202

4203 4204
| 参数名     | 类型         | 必填 | 说明                                     |
| -------- | ------------- | ---- | --------------------------------------- |
4205
| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时发生错误返回对应错误信息。 |
Z
zengyawen 已提交
4206
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)            |
N
nikhilraut 已提交
4207 4208 4209

**示例:**

Z
zengyawen 已提交
4210
```js
M
review  
mali 已提交
4211
metadataOutput.on('error', (metadataOutputError) => {
M
mali 已提交
4212
    console.log(`Metadata output error code: ${metadataOutputError.code}`);
N
nikhilraut 已提交
4213 4214 4215
})
```

M
mali 已提交
4216 4217 4218 4219 4220 4221 4222 4223
## MetadataObjectType

枚举,metadata流。

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

| 名称                       | 值   | 说明              |
| ------------------------- | ---- | ----------------- |
C
cold_yixiu 已提交
4224
| FACE_DETECTION            | 0    | metadata对象类型,人脸检测。检测点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。<br> 此坐标系是以设备充电口在右侧时的横向设备方向为基准的,<br> 例如应用的预览界面布局以设备充电口在下侧时的竖向方向为基准,<br> 布局宽高为{w,h}, 返回点为{x,y},则转换后的坐标点为{1-y,x}。 |
M
mali 已提交
4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240

## Rect

矩形定义。

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

| 名称      | 类型   |      必填     |           说明                 |
| -------- | ------ | --------------- | -------------------- |
| topLeftX | number |        是          | 矩形区域左上角x坐标。   |
| topLeftY | number |         是          | 矩形区域左上角y坐标。   |
| width    | number |         是         | 矩形宽。              |
| height   | number |         是           |矩形高。              |

## MetadataObject

M
mali 已提交
4241
相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取
M
mali 已提交
4242

C
cold_yixiu 已提交
4243 4244
**系统能力:** SystemCapability.Multimedia.Camera.Core

4245 4246
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
4247 4248 4249
| type  | [MetadataObjectType](#metadataobjecttype)   | 否   | metadata 类型,目前只有人脸识别。 |
| timestamp | number | 否   | 当前时间戳(毫秒)。 |
| boundingBox | [Rect](#rect)           | 否   | metadata 区域框 |