js-apis-camera.md 152.3 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
**错误码:**

Z
zengyawen 已提交
35
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
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
## CameraMode

相机模式。

M
mali 已提交
167 168
**系统接口:** 此接口为系统接口。

F
fengwei0704 已提交
169 170 171 172
**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
M
mali 已提交
173
| PORTRAIT         | 1    | 人像模式  |
F
fengwei0704 已提交
174 175 176 177 178

## FilterType

滤镜类型。

M
mali 已提交
179 180
**系统接口:** 此接口为系统接口。

F
fengwei0704 已提交
181 182 183 184
**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
M
mali 已提交
185 186 187 188 189 190 191 192 193
| NONE           | 0      | 原图。     |
| CLASSIC        | 1      | 经典。     |
| DAWN           | 2      | 晨光。     |
| PURE           | 3      | 清纯。     |
| GREY           | 4      | 灰调。     |
| NATURAL        | 5      | 自然。     |
| MORI           | 6      | 森系。     |
| FAIR           | 7      | 白皙。     |
| PINK           | 8      | 粉调。     |
F
fengwei0704 已提交
194 195 196 197 198 199


## PortraitEffect

人像效果类型。

M
mali 已提交
200 201
**系统接口:** 此接口为系统接口。

F
fengwei0704 已提交
202 203 204 205
**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
M
mali 已提交
206 207
| OFF             | 0      | 关闭。    |
| CIRCLES         | 1      | 圆形。    |
F
fengwei0704 已提交
208 209 210 211 212

## BeautyType

美颜类型。

M
mali 已提交
213 214
**系统接口:** 此接口为系统接口。

F
fengwei0704 已提交
215 216 217 218
**系统能力:** SystemCapability.Multimedia.Camera.Core

| 名称             | 值    | 说明     |
| ----------------| ----  | ---------|
M
mali 已提交
219 220 221 222
| AUTO           | 0      | 自动。     |
| SKIN_SMOOTH    | 1      | 光滑。     |
| FACE_SLENDER   | 2      | 瘦脸。     |
| SKIN_TONE      | 3      | 肤色。     |
F
fengwei0704 已提交
223

224
## CameraManager
N
nikhilraut 已提交
225

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

J
jiangminyang 已提交
228
### getSupportedCameras
N
nikhilraut 已提交
229

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

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

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

**返回值:**

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

**示例:**

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

N
nikhilraut 已提交
247 248
```

J
jiangminyang 已提交
249
### getSupportedOutputCapability
N
nikhilraut 已提交
250

C
cold_yixiu 已提交
251
getSupportedOutputCapability(camera:CameraDevice): CameraOutputCapability
N
nikhilraut 已提交
252

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

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

**参数:**

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

**返回值:**

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

N
nikhilraut 已提交
269 270
**示例:**

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

J
jiangminyang 已提交
276 277
```

J
jiangminyang 已提交
278 279
### isCameraMuted

J
jiangminyang 已提交
280
isCameraMuted(): boolean
J
jiangminyang 已提交
281

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

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

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

**返回值:**

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

**示例:**

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

### isCameraMuteSupported

J
jiangminyang 已提交
302
isCameraMuteSupported(): boolean
J
jiangminyang 已提交
303

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

M
format  
mali 已提交
306
**系统接口:** 此接口为系统接口。
M
mali 已提交
307

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

**返回值:**

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

**示例:**

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

### muteCamera

J
jiangminyang 已提交
324
muteCamera(mute: boolean): void
J
jiangminyang 已提交
325 326 327

禁用相机。

M
format  
mali 已提交
328
**系统接口:** 此接口为系统接口。
M
mali 已提交
329

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

**参数:**

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

**示例:**

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

J
jiangminyang 已提交
345
### createCameraInput
N
nikhilraut 已提交
346

347
createCameraInput(camera: CameraDevice): CameraInput
J
jiangminyang 已提交
348

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

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

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

**参数:**

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

N
nikhilraut 已提交
361 362
**返回值:**

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

M
mali 已提交
367 368
**错误码:**

Z
zengyawen 已提交
369
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
370 371 372 373 374

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

N
nikhilraut 已提交
375 376
**示例:**

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

J
jiangminyang 已提交
388
### createCameraInput
N
nikhilraut 已提交
389

390
createCameraInput(position: CameraPosition, type: CameraType): CameraInput
N
nikhilraut 已提交
391

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

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

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

**参数:**

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

**返回值:**

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

M
mali 已提交
411 412
**错误码:**

Z
zengyawen 已提交
413
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
414 415 416 417 418

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

J
jiangminyang 已提交
419 420 421
**示例:**

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

J
jiangminyang 已提交
434
### createPreviewOutput
N
nikhilraut 已提交
435

436
createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput
J
jiangminyang 已提交
437

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

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

**参数:**

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

N
nikhilraut 已提交
449 450
**返回值:**

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

M
mali 已提交
455 456
**错误码:**

Z
zengyawen 已提交
457
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
458 459 460 461 462

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

N
nikhilraut 已提交
463 464
**示例:**

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

J
jiangminyang 已提交
476
### createPhotoOutput
N
nikhilraut 已提交
477

478
createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput
N
nikhilraut 已提交
479

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

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

**参数:**

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

N
nikhilraut 已提交
491 492
**返回值:**

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

M
mali 已提交
497 498
**错误码:**

Z
zengyawen 已提交
499
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
500 501 502 503 504

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

N
nikhilraut 已提交
505 506
**示例:**

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

J
jiangminyang 已提交
518
### createVideoOutput
N
nikhilraut 已提交
519

520
createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput
N
nikhilraut 已提交
521

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

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

**参数:**

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

N
nikhilraut 已提交
533 534
**返回值:**

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

M
mali 已提交
539 540
**错误码:**

Z
zengyawen 已提交
541
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
542 543 544 545 546

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

N
nikhilraut 已提交
547 548
**示例:**

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

J
jiangminyang 已提交
560
### createMetadataOutput
N
nikhilraut 已提交
561

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

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

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

**参数:**

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

N
nikhilraut 已提交
574 575
**返回值:**

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

M
mali 已提交
580 581
**错误码:**

Z
zengyawen 已提交
582
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
583 584 585 586 587

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

N
nikhilraut 已提交
588 589
**示例:**

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

J
jiangminyang 已提交
601
### createCaptureSession
N
nikhilraut 已提交
602

603
createCaptureSession(): CaptureSession
N
nikhilraut 已提交
604

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

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

**返回值:**

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

M
mali 已提交
615 616
**错误码:**

Z
zengyawen 已提交
617
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
618 619 620 621 622

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

N
nikhilraut 已提交
623 624
**示例:**

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

J
jiangminyang 已提交
635
### on('cameraStatus')
N
nikhilraut 已提交
636

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

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

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

**参数:**

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

**示例:**

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

M
mali 已提交
659 660
### off('cameraStatus')

M
mali 已提交
661
off(type: 'cameraStatus', callback?: AsyncCallback\<CameraStatusInfo\>): void
M
mali 已提交
662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679

相机设备状态注销回调,通过注销回调函数取消获取相机的状态变化。

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

**参数:**

| 参数名     | 类型            | 必填 | 说明       |
| -------- | -----------------| ---- | --------- |
| type     | string           | 是   | 监听事件,固定为'cameraStatus'。cameraManager对象获取成功后可监听。 |
| callback | AsyncCallback\<[CameraStatusInfo](#camerastatusinfo)\> | 否   | 可选参数,有表明匹配on接口callback。 |                 |

**示例:**

```js
cameraManager.off('cameraStatus')
```

J
jiangminyang 已提交
680 681
### on('cameraMute')

C
cold_yixiu 已提交
682
on(type: 'cameraMute', callback: AsyncCallback\<boolean\>): void
J
jiangminyang 已提交
683 684 685

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

M
format  
mali 已提交
686
**系统接口:** 此接口为系统接口。
M
mali 已提交
687

J
jiangminyang 已提交
688 689 690 691
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

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

**示例:**

```js
M
mali 已提交
700
cameraManager.on('cameraMute', (err, curMuetd) => {
701
    let isMuted = curMuetd;
J
jiangminyang 已提交
702 703 704
})
```

M
mali 已提交
705 706
### off('cameraMute')

M
mali 已提交
707
off(type: 'cameraMute', callback?: AsyncCallback\<boolean\>): void
M
mali 已提交
708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731

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

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

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

**参数:**

| 参数名     | 类型             | 必填 | 说明       |
| -------- | --------------- | ---- | --------- |
| type     | string          | 是   | 监听事件,固定为'cameraMute',系统相机摄像头开关,cameraManager对象获取成功后可监听。 |
| callback | AsyncCallback\<boolean> | 否   | 回调函数,可选参数,有表明匹配on接口callback。               |

**示例:**

```js
func(err, curMuetd) {
    let isMuted = curMuetd;
}
cameraManager.on('cameraMute', func)
cameraManager.off('cameraMute', func)
```

Z
zengyawen 已提交
732
### isPrelaunchSupported
Z
zengyawen 已提交
733

Z
zengyawen 已提交
734
isPrelaunchSupported(camera: CameraDevice): boolean
Z
zengyawen 已提交
735

Z
zengyawen 已提交
736
在setPrelaunchConfig接口使用前调用,用于判断指定cameraDevice是否支持预热启动。
Z
zengyawen 已提交
737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755

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

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

**参数:**

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

**返回值:**

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

**错误码:**

Z
zengyawen 已提交
756
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)。。
Z
zengyawen 已提交
757 758 759 760 761 762 763 764 765 766

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

**示例:**

```js
this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
let cameras = this.cameraManager.getSupportedCameras()
Z
zengyawen 已提交
767 768
if(this.cameraManager.isPrelaunchSupported(cameras[0])) {
     this.cameraManager.setPrelaunchConfig({cameraDevice: cameras[0]});
Z
zengyawen 已提交
769 770 771
}
```

Z
zengyawen 已提交
772
### setPrelaunchConfig
Z
zengyawen 已提交
773

Z
zengyawen 已提交
774
setPrelaunchConfig(prelaunchConfig: PrelaunchConfig): void
Z
zengyawen 已提交
775 776 777 778 779 780 781 782 783 784 785

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

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

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

**参数:**

| 参数名     | 类型             | 必填 | 说明       |
| -------- | --------------- | ---- | --------- |
Z
zengyawen 已提交
786
| prelaunchConfig | [PrelaunchConfig](#prelaunchconfig) | 是 | 预启动配置参数。|
Z
zengyawen 已提交
787 788 789

**错误码:**

Z
zengyawen 已提交
790
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)。。
Z
zengyawen 已提交
791 792 793 794 795 796 797 798 799 800 801

| 错误码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 已提交
802 803 804 805 806 807 808
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 已提交
809 810
```

Z
zengyawen 已提交
811
### prelaunch
Z
zengyawen 已提交
812

Z
zengyawen 已提交
813
prelaunch(): void
Z
zengyawen 已提交
814 815 816 817 818 819 820 821 822 823 824

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

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

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

**示例:**

```js
this.cameraManager = camera.getCameraManager(globalThis.abilityContext);
Z
zengyawen 已提交
825 826 827 828 829
try {
  this.cameraManager.prelaunch();
} catch (error) {
  console.error(`catch error: Code: ${error.code}, message: ${error.message}`);
}
Z
zengyawen 已提交
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
```

### createDeferredPreviewOutput

createDeferredPreviewOutput(profile: Profile): PreviewOutput

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

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

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

**参数:**

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

**返回值:**

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

**错误码:**

Z
zengyawen 已提交
856
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)。。
Z
zengyawen 已提交
857 858 859 860 861 862 863 864 865 866 867 868 869

| 错误码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 已提交
870 871 872 873 874 875 876
```
## ModeManager

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

### getSupportedModes

M
mali 已提交
877
getSupportedModes(device: CameraDevice): Array\<CameraMode\>
F
fengwei0704 已提交
878 879 880 881 882 883 884 885 886 887 888

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

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

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

**参数:**

| 参数名     | 类型                                                         | 必填 | 说明                 |
| -------- | -------------------------- | ---- | ------------------- |
M
mali 已提交
889
| device | [CameraDevice](#cameradevice)      | 是   |   相机设备实例,通过[getSupportedCameras](#getsupportedcameras)接口获取。  |
F
fengwei0704 已提交
890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905

**返回值:**

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

**示例:**

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

```

### getSupportedOutputCapability

M
mali 已提交
906
getSupportedOutputCapability(device:CameraDevice, mode: CameraMode): CameraOutputCapability
F
fengwei0704 已提交
907 908 909 910 911 912 913 914 915 916 917

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

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

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

**参数:**

| 参数名         | 类型                                                            | 必填 | 说明                      |
| ------------ |--------------------------------------------------------------- | -- | -------------------------- |
M
mali 已提交
918
| device       | [CameraDevice](#cameradevice)                              | 是 | 相机设备,通过[getSupportedCameras](#getsupportedcameras)接口获取。   |
F
fengwei0704 已提交
919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967
| 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 已提交
968 969
```

Z
zengyawen 已提交
970
## PrelaunchConfig
Z
zengyawen 已提交
971 972 973 974 975 976 977 978 979 980 981 982 983

相机预启动配置参数。

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

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

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

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

J
jiangminyang 已提交
984
## CameraStatusInfo
N
nikhilraut 已提交
985

J
jiangminyang 已提交
986 987 988 989
相机管理器回调返回的接口实例,表示相机状态信息。

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

M
mali 已提交
990 991 992 993
| 名称   | 类型                            |     必填     | 说明       |
| ------ | ----------------------------- | -------------- | ---------- |
| camera | [CameraDevice](#cameradevice) |        是       | 相机信息。 |
| status | [CameraStatus](#camerastatus) |        是        | 相机状态。 |
J
jiangminyang 已提交
994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014

## CameraPosition

枚举,相机位置。

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

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

## CameraType

枚举,相机类型。

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

| 名称                     | 值   | 说明            |
| ----------------------- | ---- | -------------- |
1015
| CAMERA_TYPE_DEFAULT     | 0    | 相机类型未指定。  |
J
jiangminyang 已提交
1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032
| 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 已提交
1033 1034 1035 1036
## HostDeviceType

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

M
format  
mali 已提交
1037
**系统接口:** 此接口为系统接口。
M
mali 已提交
1038

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

M
mali 已提交
1041 1042 1043 1044 1045
| 名称                          | 值       | 说明           |
| ---------------------------- | ----     | ------------- |
| UNKNOWN_TYPE                 | 0        | 未知设备类型。      |
| PHONE                        | 0x0E     | 智能手机相机设备类型。 |
| TABLET                       | 0x11     | 平板电脑相机设备类型。 |
M
mali 已提交
1046

J
jiangminyang 已提交
1047 1048 1049 1050 1051 1052
## CameraDevice

相机设备信息。

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

M
mali 已提交
1053
| 名称           | 类型                                | 必填 | 说明        |
J
jiangminyang 已提交
1054 1055 1056 1057 1058
| -------------- | --------------------------------- | ---- | ---------- |
| cameraId       | string                            | 是   | CameraDevice对象|
| cameraPosition | [CameraPosition](#cameraposition) | 是   | 相机位置。    |
| cameraType     | [CameraType](#cameratype)         | 是   | 相机类型。    |
| connectionType | [ConnectionType](#connectiontype) | 是   | 相机连接类型。 |
M
format  
mali 已提交
1059 1060
| hostDeviceName | string                            | 是   | 远端设备名称,**系统接口:** 此接口为系统接口。 |
| hostDeviceType | [hostDeviceType](#hostdevicetype) | 是   | 远端相机设备类型,**系统接口:** 此接口为系统接口。 |
J
jiangminyang 已提交
1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074

## Size

枚举,输出能力查询。

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

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

## Point

J
jiangminyang 已提交
1075
枚举,点坐标用于对焦、曝光配置。
J
jiangminyang 已提交
1076 1077

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

J
jiangminyang 已提交
1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089
| 名称   | 类型   | 必填   | 说明         |
| ------ | ------ | ---- | ------------ |
| x      | number | 是    | 点的x坐标。   |
| y      | number | 是    | 点的y坐标。   |

## CameraFormat

枚举,输出格式。

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

M
mali 已提交
1090
| 名称                     | 值        | 说明         |
J
jiangminyang 已提交
1091
| ----------------------- | --------- | ------------ |
J
jiangminyang 已提交
1092
| CAMERA_FORMAT_RGBA_8888 | 3         | RGB格式的图片。             |
J
jiangminyang 已提交
1093 1094 1095 1096 1097 1098 1099 1100 1101
| CAMERA_FORMAT_YUV_420_SP| 1003      | YUV 420 SP格式的图片。      |
| CAMERA_FORMAT_JPEG      | 2000      | JPEG格式的图片。            |

## CameraInput

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

### open

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

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

Z
zengyawen 已提交
1106
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1107 1108 1109

**参数:**

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

M
mali 已提交
1114 1115
**错误码:**

Z
zengyawen 已提交
1116
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1117 1118 1119 1120 1121 1122 1123

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

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

Z
zengyawen 已提交
1126
```js
J
jiangminyang 已提交
1127
cameraInput.open((err) => {
N
nikhilraut 已提交
1128
    if (err) {
1129
        console.error(`Failed to open the camera. ${err.code}`);
N
nikhilraut 已提交
1130 1131
        return;
    }
J
jiangminyang 已提交
1132 1133
    console.log('Callback returned with camera opened.');
})
N
nikhilraut 已提交
1134 1135
```

J
jiangminyang 已提交
1136
### open
N
nikhilraut 已提交
1137

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

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

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

**返回值:**

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

M
mali 已提交
1150 1151
**错误码:**

Z
zengyawen 已提交
1152
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1153 1154 1155 1156 1157 1158 1159

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

N
nikhilraut 已提交
1160 1161
**示例:**

Z
zengyawen 已提交
1162
```js
J
jiangminyang 已提交
1163 1164
cameraInput.open().then(() => {
    console.log('Promise returned with camera opened.');
1165 1166 1167
}).catch((err) => {
    console.error(`Failed to open the camera. ${err.code}`);
});
N
nikhilraut 已提交
1168 1169
```

J
jiangminyang 已提交
1170
### close
N
nikhilraut 已提交
1171

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

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

Z
zengyawen 已提交
1176
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1177 1178 1179

**参数:**

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

M
mali 已提交
1184 1185
**错误码:**

Z
zengyawen 已提交
1186
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1187 1188 1189 1190 1191

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

N
nikhilraut 已提交
1192 1193
**示例:**

Z
zengyawen 已提交
1194
```js
J
jiangminyang 已提交
1195 1196
cameraInput.close((err) => {
    if (err) {
1197
        console.error(`Failed to close the cameras. ${err.code}`);
J
jiangminyang 已提交
1198 1199 1200 1201 1202 1203 1204 1205
        return;
    }
    console.log('Callback returned with camera closed.');
})
```

### close

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

J
jiangminyang 已提交
1208
关闭相机,通过Promise获取状态。
J
jiangminyang 已提交
1209 1210 1211 1212 1213 1214 1215

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

**返回值:**

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

M
mali 已提交
1218 1219
**错误码:**

Z
zengyawen 已提交
1220
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1221 1222 1223 1224 1225

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

J
jiangminyang 已提交
1226 1227 1228 1229 1230
**示例:**

```js
cameraInput.close().then(() => {
    console.log('Promise returned with camera closed.');
1231 1232 1233
}).catch((err) => {
    console.error(`Failed to close the cameras. ${err.code}`);
});
J
jiangminyang 已提交
1234 1235
```

1236
### on('error')
J
jiangminyang 已提交
1237

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

1240
监听CameraInput的错误事件,通过注册回调函数获取结果。
J
jiangminyang 已提交
1241 1242 1243 1244 1245

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

**参数:**

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

**示例:**

```js
1255 1256 1257
cameraInput.on('error', cameraDevice, (error) => {
    console.log(`Camera input error code: ${error.code}`);
})
J
jiangminyang 已提交
1258 1259
```

M
mali 已提交
1260 1261
### off('error')

M
mali 已提交
1262
off(type: 'error', camera:CameraDevice, callback?: ErrorCallback): void
M
mali 已提交
1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281

注销监听CameraInput的错误事件。

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

**参数:**

| 参数名     | 类型                              | 必填 | 说明                                          |
| -------- | -------------------------------- | --- | ------------------------------------------- |
| type     | string                           | 是   | 监听事件,固定为'error',CameraInput对象创建成功可监听。相机设备出错情况下可触发该事件并返回结果,比如(设备不可用或者冲突等返回对应错误信息) |
| cameraDevice   | [CameraDevice](#cameradevice)    | 是   | CameraDevice对象。 |
| callback | ErrorCallback | 否   | 回调函数,可选,有就是匹配on('error') callback   |

**示例:**

```js
cameraInput.off('error', cameraDevice)
```

1282
## FlashMode
J
jiangminyang 已提交
1283

1284
枚举,闪光灯模式。
J
jiangminyang 已提交
1285

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

1288 1289 1290 1291 1292 1293
| 名称                    | 值   | 说明        |
| ---------------------- | ---- | ---------- |
| FLASH_MODE_CLOSE       | 0    | 闪光灯关闭。 |
| FLASH_MODE_OPEN        | 1    | 闪光灯打开。 |
| FLASH_MODE_AUTO        | 2    | 自动闪光灯。 |
| FLASH_MODE_ALWAYS_OPEN | 3    | 闪光灯常亮。 |
J
jiangminyang 已提交
1294

1295
## ExposureMode
N
nikhilraut 已提交
1296

J
jiangminyang 已提交
1297
枚举,曝光模式。
N
nikhilraut 已提交
1298

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

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

Z
zengyawen 已提交
1307
## FocusMode
N
nikhilraut 已提交
1308

J
jiangminyang 已提交
1309
枚举,焦距模式。
N
nikhilraut 已提交
1310

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

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

J
jiangminyang 已提交
1320
## FocusState
N
nikhilraut 已提交
1321

J
jiangminyang 已提交
1322
枚举,焦距状态。
Z
zengyawen 已提交
1323

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

J
jiangminyang 已提交
1326 1327 1328 1329 1330
| 名称                   | 值   | 说明       |
| --------------------- | ---- | --------- |
| FOCUS_STATE_SCAN      | 0    | 触发对焦。  |
| FOCUS_STATE_FOCUSED   | 1    | 对焦成功。  |
| FOCUS_STATE_UNFOCUSED | 2    | 未完成对焦。 |
Z
zengyawen 已提交
1331

J
jiangminyang 已提交
1332
## VideoStabilizationMode
Z
zengyawen 已提交
1333

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

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

J
jiangminyang 已提交
1338 1339 1340 1341 1342 1343 1344
| 名称       | 值   | 说明         |
| --------- | ---- | ------------ |
| OFF       | 0    | 关闭视频防抖功能。   |
| LOW       | 1    | 使用基础防抖算法。   |
| MIDDLE    | 2    | 使用防抖效果一般的防抖算法,防抖效果优于LOW类型。   |
| HIGH      | 3    | 使用防抖效果最好的防抖算法,防抖效果优于MIDDLE类型。   |
| AUTO      | 4    | 自动进行选择。   |
N
nikhilraut 已提交
1345

J
jiangminyang 已提交
1346
## CaptureSession
N
nikhilraut 已提交
1347

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

Z
zengyawen 已提交
1350
### beginConfig
N
nikhilraut 已提交
1351

1352
beginConfig(): void
N
nikhilraut 已提交
1353

1354
开始配置会话。
N
nikhilraut 已提交
1355

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

1358 1359 1360 1361
**返回值:**

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

M
mali 已提交
1364 1365
**错误码:**

Z
zengyawen 已提交
1366
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1367 1368 1369 1370 1371

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

N
nikhilraut 已提交
1372 1373
**示例:**

Z
zengyawen 已提交
1374
```js
1375 1376 1377
try {
    captureSession.beginConfig();
} catch (error) {
1378
    // 失败返回错误码error.code并处理
1379 1380
    console.log(error.code);
}
N
nikhilraut 已提交
1381 1382
```

Z
zengyawen 已提交
1383
### commitConfig
N
nikhilraut 已提交
1384

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

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

Z
zengyawen 已提交
1389
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1390 1391 1392

**参数:**

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

M
mali 已提交
1397 1398
**错误码:**

Z
zengyawen 已提交
1399
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1400 1401 1402 1403 1404 1405

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

N
nikhilraut 已提交
1406 1407
**示例:**

Z
zengyawen 已提交
1408
```js
N
nikhilraut 已提交
1409 1410
captureSession.commitConfig((err) => {
    if (err) {
1411
        console.log('Failed to commitConfig '+ err.code);
N
nikhilraut 已提交
1412 1413 1414 1415 1416 1417
        return;
    }
    console.log('Callback invoked to indicate the commit config success.');
});
```

Z
zengyawen 已提交
1418
### commitConfig
N
nikhilraut 已提交
1419

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

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

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

**返回值:**

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

M
mali 已提交
1432 1433
**错误码:**

Z
zengyawen 已提交
1434
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1435 1436 1437 1438 1439 1440

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

N
nikhilraut 已提交
1441 1442
**示例:**

Z
zengyawen 已提交
1443
```js
N
nikhilraut 已提交
1444 1445
captureSession.commitConfig().then(() => {
    console.log('Promise returned to indicate the commit config success.');
1446 1447 1448 1449
}).catch((err) => {
    // 失败返回错误码error.code并处理
    console.log('Failed to commitConfig '+ err.code);
});
N
nikhilraut 已提交
1450 1451
```

J
jiangminyang 已提交
1452
### addInput
N
nikhilraut 已提交
1453

1454
addInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1455

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

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

**参数:**

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

1466 1467 1468 1469
**返回值:**

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

M
mali 已提交
1472 1473
**错误码:**

Z
zengyawen 已提交
1474
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1475 1476 1477 1478 1479 1480

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

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

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

J
jiangminyang 已提交
1492
### removeInput
N
nikhilraut 已提交
1493

1494
removeInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1495

1496
移除[CameraInput](#camerainput)
N
nikhilraut 已提交
1497

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

**参数:**

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

1506 1507 1508 1509
**返回值:**

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

M
mali 已提交
1512 1513
**错误码:**

Z
zengyawen 已提交
1514
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1515 1516 1517 1518 1519 1520

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

N
nikhilraut 已提交
1521 1522
**示例:**

Z
zengyawen 已提交
1523
```js
1524 1525 1526
try {
    captureSession.removeInput(cameraInput);
} catch (error) {
1527
    // 失败返回错误码error.code并处理
1528 1529
    console.log(error.code);
}
N
nikhilraut 已提交
1530 1531
```

J
jiangminyang 已提交
1532
### addOutput
N
nikhilraut 已提交
1533

C
cold_yixiu 已提交
1534
addOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1535

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

Z
zengyawen 已提交
1538
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1539 1540 1541

**参数:**

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

1546 1547 1548 1549
**返回值:**

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

M
mali 已提交
1552 1553
**错误码:**

Z
zengyawen 已提交
1554
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1555 1556 1557 1558 1559 1560

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

N
nikhilraut 已提交
1561 1562
**示例:**

Z
zengyawen 已提交
1563
```js
1564
try {
C
cold_yixiu 已提交
1565
    captureSession.addOutput(cameraOutput);
1566
} catch (error) {
1567
    // 失败返回错误码error.code并处理
1568 1569
    console.log(error.code);
}
N
nikhilraut 已提交
1570 1571
```

Z
zengyawen 已提交
1572
### removeOutput
N
nikhilraut 已提交
1573

C
cold_yixiu 已提交
1574
removeOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1575

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

Z
zengyawen 已提交
1578
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1579 1580 1581

**参数:**

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

1586 1587 1588 1589
**返回值:**

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

M
mali 已提交
1592 1593
**错误码:**

Z
zengyawen 已提交
1594
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1595 1596 1597 1598 1599 1600

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

N
nikhilraut 已提交
1601 1602
**示例:**

Z
zengyawen 已提交
1603
```js
1604 1605 1606
try {
    captureSession.removeOutput(previewOutput);
} catch (error) {
1607
    // 失败返回错误码error.code并处理
1608 1609
    console.log(error.code);
}
N
nikhilraut 已提交
1610 1611
```

J
jiangminyang 已提交
1612
### start
N
nikhilraut 已提交
1613

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

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

Z
zengyawen 已提交
1618
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1619 1620 1621

**参数:**

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

M
mali 已提交
1626 1627
**错误码:**

Z
zengyawen 已提交
1628
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1629 1630 1631 1632 1633 1634

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

N
nikhilraut 已提交
1635 1636
**示例:**

Z
zengyawen 已提交
1637
```js
J
jiangminyang 已提交
1638
captureSession.start((err) => {
N
nikhilraut 已提交
1639
    if (err) {
1640
        console.error(`Failed to start the session ${err.code}`);
N
nikhilraut 已提交
1641 1642
        return;
    }
J
jiangminyang 已提交
1643
    console.log('Callback invoked to indicate the session start success.');
N
nikhilraut 已提交
1644 1645 1646
});
```

J
jiangminyang 已提交
1647
### start
N
nikhilraut 已提交
1648

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

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

Z
zengyawen 已提交
1653
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1654 1655 1656

**返回值:**

J
jiangminyang 已提交
1657 1658
| 类型            | 说明                     |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
1659
| Promise\<void\> | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
1660

M
mali 已提交
1661 1662
**错误码:**

Z
zengyawen 已提交
1663
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1664 1665 1666 1667 1668 1669

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

N
nikhilraut 已提交
1670 1671
**示例:**

Z
zengyawen 已提交
1672
```js
J
jiangminyang 已提交
1673 1674
captureSession.start().then(() => {
    console.log('Promise returned to indicate the session start success.');
1675 1676 1677
}).catch((err) => {
    console.error(`Failed to start the session ${err.code}`);
});
N
nikhilraut 已提交
1678 1679
```

J
jiangminyang 已提交
1680
### stop
N
nikhilraut 已提交
1681

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

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

Z
zengyawen 已提交
1686
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1687 1688 1689

**参数:**

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

M
mali 已提交
1694 1695
**错误码:**

Z
zengyawen 已提交
1696
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1697 1698 1699 1700 1701

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

N
nikhilraut 已提交
1702 1703
**示例:**

Z
zengyawen 已提交
1704
```js
J
jiangminyang 已提交
1705
captureSession.stop((err) => {
N
nikhilraut 已提交
1706
    if (err) {
1707
        console.error(`Failed to stop the session ${err.code}`);
N
nikhilraut 已提交
1708 1709
        return;
    }
J
jiangminyang 已提交
1710
    console.log('Callback invoked to indicate the session stop success.');
N
nikhilraut 已提交
1711 1712 1713
});
```

J
jiangminyang 已提交
1714
### stop
N
nikhilraut 已提交
1715

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

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

Z
zengyawen 已提交
1720
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1721 1722 1723

**返回值:**

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

M
mali 已提交
1728 1729
**错误码:**

Z
zengyawen 已提交
1730
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1731 1732 1733 1734 1735

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

N
nikhilraut 已提交
1736 1737
**示例:**

Z
zengyawen 已提交
1738
```js
J
jiangminyang 已提交
1739 1740
captureSession.stop().then(() => {
    console.log('Promise returned to indicate the session stop success.');
1741 1742 1743
}).catch((err) => {
    console.error(`Failed to stop the session ${err.code}`);
});
N
nikhilraut 已提交
1744 1745
```

Z
zengyawen 已提交
1746
### release
N
nikhilraut 已提交
1747

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

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

Z
zengyawen 已提交
1752
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1753 1754

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

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

M
mali 已提交
1760 1761
**错误码:**

Z
zengyawen 已提交
1762
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1763 1764 1765 1766 1767

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

N
nikhilraut 已提交
1768 1769
**示例:**

Z
zengyawen 已提交
1770
```js
N
nikhilraut 已提交
1771 1772
captureSession.release((err) => {
    if (err) {
1773
        console.error(`Failed to release the CaptureSession instance ${err.code}`);
N
nikhilraut 已提交
1774 1775 1776 1777 1778 1779
        return;
    }
    console.log('Callback invoked to indicate that the CaptureSession instance is released successfully.');
});
```

Z
zengyawen 已提交
1780
### release
N
nikhilraut 已提交
1781

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

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

Z
zengyawen 已提交
1786
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1787 1788 1789

**返回值:**

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

M
mali 已提交
1794 1795
**错误码:**

Z
zengyawen 已提交
1796
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1797 1798 1799 1800 1801

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

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

Z
zengyawen 已提交
1804
```js
N
nikhilraut 已提交
1805 1806
captureSession.release().then(() => {
    console.log('Promise returned to indicate that the CaptureSession instance is released successfully.');
1807 1808 1809
}).catch((err) => {
    console.error(`Failed to release the CaptureSession instance ${err.code}`);
});
N
nikhilraut 已提交
1810 1811
```

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

1814
hasFlash(): boolean
N
nikhilraut 已提交
1815

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

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

J
jiangminyang 已提交
1820
**返回值:**
Z
zengyawen 已提交
1821

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

M
mali 已提交
1826 1827
**错误码:**

Z
zengyawen 已提交
1828
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1829 1830 1831 1832 1833

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

J
jiangminyang 已提交
1834
**示例:**
Z
zengyawen 已提交
1835

J
jiangminyang 已提交
1836
```js
1837 1838 1839
try {
    let status = captureSession.hasFlash();
} catch (error) {
1840
    // 失败返回错误码error.code并处理
1841 1842
    console.log(error.code);
}
J
jiangminyang 已提交
1843
```
N
nikhilraut 已提交
1844

J
jiangminyang 已提交
1845
### isFlashModeSupported
Z
zengyawen 已提交
1846

1847
isFlashModeSupported(flashMode: FlashMode): boolean
N
nikhilraut 已提交
1848

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

Z
zengyawen 已提交
1851
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1852 1853 1854

**参数:**

M
mali 已提交
1855
| 参数名       | 类型                     | 必填 | 说明                               |
J
jiangminyang 已提交
1856 1857
| --------- | ----------------------- | ---- | --------------------------------- |
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。                     |
N
nikhilraut 已提交
1858 1859 1860

**返回值:**

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

M
mali 已提交
1865 1866
**错误码:**

Z
zengyawen 已提交
1867
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1868 1869 1870 1871 1872

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

N
nikhilraut 已提交
1873 1874
**示例:**

Z
zengyawen 已提交
1875
```js
1876 1877 1878
try {
    let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1879
    // 失败返回错误码error.code并处理
1880 1881
    console.log(error.code);
}
N
nikhilraut 已提交
1882 1883
```

J
jiangminyang 已提交
1884
### setFlashMode
N
nikhilraut 已提交
1885

1886
setFlashMode(flashMode: FlashMode): void
N
nikhilraut 已提交
1887

1888
设置闪光灯模式。
N
nikhilraut 已提交
1889

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

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

Z
zengyawen 已提交
1895
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1896 1897 1898

**参数:**

M
mali 已提交
1899
| 参数名       | 类型                     | 必填 | 说明                  |
J
jiangminyang 已提交
1900
| --------- | ----------------------- | ---- | --------------------- |
1901 1902 1903 1904 1905 1906
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。       |

**返回值:**

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

M
mali 已提交
1909 1910
**错误码:**

Z
zengyawen 已提交
1911
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1912 1913 1914 1915 1916

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

N
nikhilraut 已提交
1917 1918
**示例:**

Z
zengyawen 已提交
1919
```js
1920 1921 1922
try {
    captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1923
    // 失败返回错误码error.code并处理
1924 1925
    console.log(error.code);
}
N
nikhilraut 已提交
1926 1927
```

1928
### getFlashMode
J
jiangminyang 已提交
1929

1930
getFlashMode(): FlashMode
J
jiangminyang 已提交
1931

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

Z
zengyawen 已提交
1934
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1935 1936 1937

**返回值:**

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

M
mali 已提交
1942 1943
**错误码:**

Z
zengyawen 已提交
1944
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1945 1946 1947 1948 1949

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

N
nikhilraut 已提交
1950 1951
**示例:**

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

J
jiangminyang 已提交
1961
### isExposureModeSupported
J
jiangminyang 已提交
1962

1963
isExposureModeSupported(aeMode: ExposureMode): boolean;
J
jiangminyang 已提交
1964

1965
检测曝光模式是否支持。
Z
zengyawen 已提交
1966 1967 1968

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

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

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

J
jiangminyang 已提交
1975
**返回值:**
Z
zengyawen 已提交
1976

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

M
mali 已提交
1981 1982
**错误码:**

Z
zengyawen 已提交
1983
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
1984 1985 1986 1987 1988

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

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

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

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

2002
getExposureMode(): ExposureMode
J
jiangminyang 已提交
2003

2004
获取当前曝光模式。
Z
zengyawen 已提交
2005

J
jiangminyang 已提交
2006 2007 2008 2009
**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

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

M
mali 已提交
2014 2015
**错误码:**

Z
zengyawen 已提交
2016
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2017 2018 2019 2020 2021

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

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

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

J
jiangminyang 已提交
2033
### setExposureMode
N
nikhilraut 已提交
2034

2035
setExposureMode(aeMode: ExposureMode): void
N
nikhilraut 已提交
2036

2037
设置曝光模式。
N
nikhilraut 已提交
2038

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

J
jiangminyang 已提交
2041
**参数:**
N
nikhilraut 已提交
2042

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

2047 2048 2049 2050
**返回值:**

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

M
mali 已提交
2053 2054
**错误码:**

Z
zengyawen 已提交
2055
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2056 2057 2058 2059 2060

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

J
jiangminyang 已提交
2061 2062 2063
**示例:**

```js
2064 2065 2066
try {
    captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
} catch (error) {
2067
    // 失败返回错误码error.code并处理
2068 2069
    console.log(error.code);
}
J
jiangminyang 已提交
2070 2071
```

J
jiangminyang 已提交
2072
### getMeteringPoint
J
jiangminyang 已提交
2073

2074
getMeteringPoint(): Point
J
jiangminyang 已提交
2075

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

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

J
jiangminyang 已提交
2080
**返回值:**
N
nikhilraut 已提交
2081

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

M
mali 已提交
2086 2087
**错误码:**

Z
zengyawen 已提交
2088
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2089 2090 2091 2092 2093

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

J
jiangminyang 已提交
2094 2095 2096
**示例:**

```js
2097 2098 2099
try {
    let exposurePoint = captureSession.getMeteringPoint();
} catch (error) {
2100
    // 失败返回错误码error.code并处理
2101 2102
    console.log(error.code);
}
J
jiangminyang 已提交
2103 2104
```

J
jiangminyang 已提交
2105
### setMeteringPoint
J
jiangminyang 已提交
2106

2107
setMeteringPoint(point: Point): void
J
jiangminyang 已提交
2108

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

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

J
jiangminyang 已提交
2116 2117
**参数:**

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

2122 2123 2124 2125
**返回值:**

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

M
mali 已提交
2128 2129
**错误码:**

Z
zengyawen 已提交
2130
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2131 2132 2133 2134 2135

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

J
jiangminyang 已提交
2136 2137 2138
**示例:**

```js
2139 2140 2141 2142
const exposurePoint = {x: 1, y: 1};
try {
    captureSession.setMeteringPoint(exposurePoint);
} catch (error) {
2143
    // 失败返回错误码error.code并处理
2144 2145
    console.log(error.code);
}
J
jiangminyang 已提交
2146 2147 2148 2149
```

### getExposureBiasRange

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

2152
查询曝光补偿范围。
J
jiangminyang 已提交
2153 2154 2155 2156 2157

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

**返回值:**

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

M
mali 已提交
2162 2163
**错误码:**

Z
zengyawen 已提交
2164
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2165 2166 2167 2168 2169

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

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

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

### setExposureBias

2183
setExposureBias(exposureBias: number): void
J
jiangminyang 已提交
2184

C
cold_yixiu 已提交
2185
设置曝光补偿,曝光补偿值(EV)。
J
jiangminyang 已提交
2186 2187 2188 2189 2190 2191 2192

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

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

**参数:**

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

M
mali 已提交
2197 2198
**错误码:**

Z
zengyawen 已提交
2199
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2200 2201 2202 2203 2204

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

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

```js
M
mali 已提交
2208
let exposureBias = biasRangeArray[0];
2209 2210 2211
try {
    captureSession.setExposureBias(exposureBias);
} catch (error) {
2212
    // 失败返回错误码error.code并处理
2213 2214
    console.log(error.code);
}
J
jiangminyang 已提交
2215 2216 2217 2218
```

### getExposureValue

2219
getExposureValue(): number
J
jiangminyang 已提交
2220

2221
查询当前曝光值。
J
jiangminyang 已提交
2222 2223 2224 2225 2226

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

**返回值:**

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

M
mali 已提交
2231 2232
**错误码:**

Z
zengyawen 已提交
2233
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2234 2235 2236 2237 2238

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

J
jiangminyang 已提交
2239 2240 2241
**示例:**

```js
2242 2243 2244
try {
    let exposureValue = captureSession.getExposureValue();
} catch (error) {
2245
    // 失败返回错误码error.code并处理
2246 2247
    console.log(error.code);
}
J
jiangminyang 已提交
2248 2249 2250 2251
```

### isFocusModeSupported

2252
isFocusModeSupported(afMode: FocusMode): boolean
J
jiangminyang 已提交
2253

2254
检测对焦模式是否支持。
J
jiangminyang 已提交
2255 2256 2257 2258 2259

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

**参数:**

M
mali 已提交
2260
| 参数名      | 类型                     | 必填 | 说明                              |
J
jiangminyang 已提交
2261 2262 2263 2264 2265
| -------- | ----------------------- | ---- | -------------------------------- |
| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。                    |

**返回值:**

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

M
mali 已提交
2270 2271
**错误码:**

Z
zengyawen 已提交
2272
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2273 2274 2275 2276 2277

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

J
jiangminyang 已提交
2278 2279 2280
**示例:**

```js
2281 2282 2283
try {
    let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
2284
    // 失败返回错误码error.code并处理
2285 2286
    console.log(error.code);
}
J
jiangminyang 已提交
2287 2288 2289 2290
```

### setFocusMode

2291
setFocusMode(afMode: FocusMode): void
J
jiangminyang 已提交
2292

2293
设置对焦模式。
J
jiangminyang 已提交
2294

J
jiangminyang 已提交
2295
进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)
J
jiangminyang 已提交
2296 2297 2298 2299 2300

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

**参数:**

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

2305 2306 2307 2308
**返回值:**

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

M
mali 已提交
2311 2312
**错误码:**

Z
zengyawen 已提交
2313
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2314 2315 2316 2317 2318

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

J
jiangminyang 已提交
2319 2320 2321
**示例:**

```js
2322 2323 2324
try {
    captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
2325
    // 失败返回错误码error.code并处理
2326 2327
    console.log(error.code);
}
J
jiangminyang 已提交
2328 2329 2330 2331
```

### getFocusMode

2332
getFocusMode(): FocusMode
J
jiangminyang 已提交
2333

2334
获取当前的对焦模式。
J
jiangminyang 已提交
2335 2336 2337 2338 2339

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

**返回值:**

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

M
mali 已提交
2344 2345
**错误码:**

Z
zengyawen 已提交
2346
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2347 2348 2349 2350 2351

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

J
jiangminyang 已提交
2352 2353 2354
**示例:**

```js
2355 2356 2357
try {
    let afMode = captureSession.getFocusMode();
} catch (error) {
2358
    // 失败返回错误码error.code并处理
2359 2360
    console.log(error.code);
}
J
jiangminyang 已提交
2361 2362 2363 2364
```

### setFocusPoint

2365
setFocusPoint(point: Point): void
J
jiangminyang 已提交
2366

C
cold_yixiu 已提交
2367 2368 2369 2370
设置焦点,焦点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。
此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以
设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y},
则转换后的坐标点为{y/h,1-x/w}。
J
jiangminyang 已提交
2371 2372 2373 2374 2375

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

**参数:**

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

2380 2381 2382 2383
**返回值:**

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

M
mali 已提交
2386 2387
**错误码:**

Z
zengyawen 已提交
2388
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2389 2390 2391 2392 2393

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

J
jiangminyang 已提交
2394 2395 2396 2397
**示例:**

```js
const Point1 = {x: 1, y: 1};
2398 2399 2400
try {
    captureSession.setFocusPoint(Point1);
} catch (error) {
2401
    // 失败返回错误码error.code并处理
2402 2403
    console.log(error.code);
}
J
jiangminyang 已提交
2404 2405 2406 2407
```

### getFocusPoint

2408
getFocusPoint(): Point
J
jiangminyang 已提交
2409

2410
查询焦点。
J
jiangminyang 已提交
2411 2412 2413 2414 2415

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

**返回值:**

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

M
mali 已提交
2420 2421
**错误码:**

Z
zengyawen 已提交
2422
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2423 2424 2425 2426 2427

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

J
jiangminyang 已提交
2428 2429 2430
**示例:**

```js
2431 2432 2433
try {
    let point = captureSession.getFocusPoint();
} catch (error) {
2434
    // 失败返回错误码error.code并处理
2435 2436
    console.log(error.code);
}
J
jiangminyang 已提交
2437 2438 2439 2440
```

### getFocalLength

2441
getFocalLength(): number
J
jiangminyang 已提交
2442

2443
查询焦距值。
J
jiangminyang 已提交
2444 2445 2446 2447 2448

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

**返回值:**

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

M
mali 已提交
2453 2454
**错误码:**

Z
zengyawen 已提交
2455
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2456 2457 2458 2459 2460

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

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

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

### getZoomRatioRange

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

2476
获取支持的变焦范围。
J
jiangminyang 已提交
2477 2478 2479

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

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

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

M
mali 已提交
2486 2487
**错误码:**

Z
zengyawen 已提交
2488
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2489 2490 2491 2492 2493

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

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

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

2505
### setZoomRatio
J
jiangminyang 已提交
2506

2507
setZoomRatio(zoomRatio: number): void
J
jiangminyang 已提交
2508

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

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

2513
**参数:**
J
jiangminyang 已提交
2514

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

2519 2520 2521 2522
**返回值:**

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

M
mali 已提交
2525 2526
**错误码:**

Z
zengyawen 已提交
2527
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2528 2529 2530 2531 2532

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

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

```js
2536 2537 2538 2539
let zoomRatio = zoomRatioRange[0];
try {
    captureSession.setZoomRatio(zoomRatio);
} catch (error) {
2540
    // 失败返回错误码error.code并处理
2541 2542
    console.log(error.code);
}
J
jiangminyang 已提交
2543 2544
```

2545
### getZoomRatio
J
jiangminyang 已提交
2546

2547
getZoomRatio(): number
J
jiangminyang 已提交
2548

2549
获取当前的变焦比。
J
jiangminyang 已提交
2550 2551 2552

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

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

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

M
mali 已提交
2559 2560
**错误码:**

Z
zengyawen 已提交
2561
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2562 2563 2564 2565 2566

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

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

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

2578
### isVideoStabilizationModeSupported
J
jiangminyang 已提交
2579

2580
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean
J
jiangminyang 已提交
2581

2582
查询是否支持指定的视频防抖模式。
J
jiangminyang 已提交
2583 2584 2585

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

2586 2587 2588 2589 2590 2591
**参数:**

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

J
jiangminyang 已提交
2592 2593
**返回值:**

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

M
mali 已提交
2598 2599
**错误码:**

Z
zengyawen 已提交
2600
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2601 2602 2603 2604 2605

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

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

```js
2609 2610 2611
try {
    let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF);
} catch (error) {
2612
    // 失败返回错误码error.code并处理
2613 2614
    console.log(error.code);
}
J
jiangminyang 已提交
2615 2616
```

2617
### getActiveVideoStabilizationMode
J
jiangminyang 已提交
2618

2619
getActiveVideoStabilizationMode(): VideoStabilizationMode
J
jiangminyang 已提交
2620

2621
查询当前正在使用的视频防抖模式。
J
jiangminyang 已提交
2622 2623 2624

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

2625
**返回值:**
J
jiangminyang 已提交
2626

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

M
mali 已提交
2631 2632
**错误码:**

Z
zengyawen 已提交
2633
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2634 2635 2636 2637 2638

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

J
jiangminyang 已提交
2639 2640 2641
**示例:**

```js
2642 2643 2644
try {
    let vsMode = captureSession.getActiveVideoStabilizationMode();
} catch (error) {
2645
    // 失败返回错误码error.code并处理
2646 2647
    console.log(error.code);
}
J
jiangminyang 已提交
2648 2649 2650 2651
```

### setVideoStabilizationMode

2652
setVideoStabilizationMode(mode: VideoStabilizationMode): void
J
jiangminyang 已提交
2653

2654
设置视频防抖模式。
J
jiangminyang 已提交
2655 2656 2657 2658 2659

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

**参数:**

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

2664 2665 2666 2667
**返回值:**

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

M
mali 已提交
2670 2671
**错误码:**

Z
zengyawen 已提交
2672
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
2673 2674 2675 2676 2677

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

J
jiangminyang 已提交
2678 2679 2680
**示例:**

```js
2681 2682 2683
try {
    captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF);
} catch (error) {
2684
    // 失败返回错误码error.code并处理
2685 2686
    console.log(error.code);
}
J
jiangminyang 已提交
2687
```
F
fengwei0704 已提交
2688 2689
### getSupportedFilters

M
mali 已提交
2690
getSupportedFilters(): Array\<number>
F
fengwei0704 已提交
2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703

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

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

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

**返回值:**

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

M
mali 已提交
2704 2705 2706 2707 2708 2709 2710 2711
**错误码:**

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

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

F
fengwei0704 已提交
2712 2713 2714 2715 2716 2717 2718
**示例:**

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

M
mali 已提交
2719
setFilter(filter: number): void
F
fengwei0704 已提交
2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730

设置滤镜效果。

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

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

**参数:**

| 参数名    | 类型                        | 必填 | 说明                  |
| -------- | ----------------------------| ---- | ---------------------|
M
mali 已提交
2731 2732 2733 2734 2735 2736 2737 2738 2739 2740
| filter     | [number](#filtertype) | 是   | 当前用户设置的滤镜类型。  |

**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect.        |
| 7400103                |  Session not config.                                   |
F
fengwei0704 已提交
2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764

**示例:**

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

### getFilter

 getFilter(): number

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

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

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

**返回值:**

| 类型                     | 说明                         |
| ----------               | ----------------------------|
M
mali 已提交
2765 2766 2767 2768 2769 2770 2771 2772 2773
| [number](#filtertype)| 已设置的滤镜效果。可查阅[FilterType](#filtertype)。|

**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
F
fengwei0704 已提交
2774 2775 2776 2777 2778 2779 2780 2781

**示例:**

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

M
mali 已提交
2782
getSupportedBeautyTypes(): Array<[BeautyType](#beautytype)>
F
fengwei0704 已提交
2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793

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

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

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

**返回值:**

| 类型                | 说明                                                  |
| ----------          | -----------------------------                         |
M
mali 已提交
2794
|  Array\<[BeautyType](#beautytype)\>| 返回当前支持的美颜效果列表。                             |
F
fengwei0704 已提交
2795

M
mali 已提交
2796 2797 2798 2799 2800 2801 2802 2803
**错误码:**

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

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

F
fengwei0704 已提交
2804 2805 2806 2807 2808
**示例:**

```js
let FilterTypes = captureSession.getSupportedBeautyTypes();
```
M
mali 已提交
2809
### getSupportedBeautyRange
F
fengwei0704 已提交
2810

M
mali 已提交
2811
getSupportedBeautyRange(type: BeautyType): Array\<number\>
F
fengwei0704 已提交
2812 2813 2814

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

M
mali 已提交
2815 2816
**系统接口:** 此接口为系统接口。

F
fengwei0704 已提交
2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

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

**返回值:**

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

M
mali 已提交
2831 2832 2833 2834 2835 2836 2837 2838
**错误码:**

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

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

F
fengwei0704 已提交
2839 2840 2841 2842 2843
**示例:**

```js
let beautyTypes = captureSession.getSupportedBeautyTypes();
if (!beautyTypes.empty()) {
M
mali 已提交
2844
    let nums = captureSession.getSupportedBeautyRange(beautyTypes[0]);
F
fengwei0704 已提交
2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861
}
```

### setBeauty

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

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

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

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

**参数:**

| 参数名      | 类型                    | 必填 | 说明                   |
| -------- | --------------------------| ---- | --------------------- |
M
review  
mali 已提交
2862 2863
| type     | [BeautyType](#beautytype) | 是   | 美颜类型               |
| value    | number                    | 是   | 美颜强度,通过[getSupportedBeautyRange](#getsupportedbeautyrange)接口获取。|
M
mali 已提交
2864 2865 2866 2867 2868 2869 2870 2871

**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
F
fengwei0704 已提交
2872 2873 2874 2875 2876 2877 2878

**示例:**

```js
let beautyTypes = captureSession.getSupportedBeautyTypes();
let beautyLevels;
if (!beautyTypes.empty()) {
M
mali 已提交
2879
    beautyLevels = captureSession.getSupportedBeautyRange(beautyTypes[0]);
F
fengwei0704 已提交
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
}
if (!beautyTypes.empty() && beautyLevels.empty()) {
    captureSession.setBeauty(beautyTypes[0], beautyLevels[0]);
}
```

### getBeauty

getBeauty(type: BeautyType): number

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

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

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

**参数:**

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

**返回值:**
| 参数名      | 类型                                              | 必填 | 说明                    |
| -------- | ------------------------------------------------- | ---- | --------------------- |
M
mali 已提交
2905 2906 2907 2908 2909 2910 2911 2912 2913
| value     | number | 是   | 美颜强度  |

**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
F
fengwei0704 已提交
2914 2915 2916 2917 2918 2919 2920

**示例:**

```js
let BeautyTypes = captureSession.getSupportedBeautyTypes();
let beautyLevels;
if (!BeautyTypes.empty()) {
M
mali 已提交
2921
    beautyLevels = captureSession.getSupportedBeautyRange(BeautyTypes[0]);
F
fengwei0704 已提交
2922 2923 2924 2925 2926 2927
}
if (!BeautyTypes.empty() && beautyLevels.empty()) {
    captureSession.setBeauty(BeautyTypes[0], beautyLevels[0]);
}
let beautyLevel = captureSession.getBeauty(BeautyTypes[0]);
```
J
jiangminyang 已提交
2928 2929 2930

### on('focusStateChange')

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

2933
监听相机聚焦的状态变化,通过注册回调函数获取结果。
J
jiangminyang 已提交
2934 2935 2936 2937 2938

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

**参数:**

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

**示例:**

```js
M
mali 已提交
2947
captureSession.on('focusStateChange', (err, focusState) => {
J
jiangminyang 已提交
2948 2949 2950 2951
    console.log(`Focus state  : ${focusState}`);
})
```

M
mali 已提交
2952 2953
### off('focusStateChange')

M
mali 已提交
2954
off(type: 'focusStateChange', callback?: AsyncCallback\<FocusState\>): void
M
mali 已提交
2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972

注销监听相机聚焦的状态变化。

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

**参数:**

| 参数名     | 类型                                      | 必填 | 说明                       |
| -------- | ----------------------------------------- | ---- | ------------------------ |
| type     | string                                    | 是   | 监听事件,固定为'focusStateChange',session 创建成功可监听。|
| callback | AsyncCallback\<[FocusState](#focusstate)\> | 否   | 回调函数,可选  |

**示例:**

```js
captureSession.off('focusStateChange')
```

J
jiangminyang 已提交
2973 2974
### on('error')

Z
zengyawen 已提交
2975
on(type: 'error', callback: ErrorCallback): void
J
jiangminyang 已提交
2976 2977 2978 2979 2980 2981 2982

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

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

**参数:**

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

**示例:**

```js
2991 2992
captureSession.on('error', (error) => {
    console.log(`Capture session error code: ${error.code}`);
J
jiangminyang 已提交
2993 2994
})
```
M
mali 已提交
2995 2996 2997

### off('error')

M
mali 已提交
2998
off(type: 'error', callback?: ErrorCallback): void
M
mali 已提交
2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015

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

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

**参数:**

| 参数名     | 类型                                                          | 必填 | 说明                           |
| -------- | ----------------------------------------------------------- | ---- | ------------------------------ |
| type     | string                                                      | 是   | 监听事件,固定为'error',session创建成功之后可监听该接口。 |
| callback | ErrorCallback| 否   | 回调函数,可选       |

**示例:**

```js
captureSession.off('error')
```
F
fengwei0704 已提交
3016 3017 3018 3019 3020 3021
## PortraitSession

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

### getSupportedPortraitEffects

M
mali 已提交
3022
getSupportedPortraitEffects(): Array<[PortraitEffect](#portraiteffect)>
F
fengwei0704 已提交
3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035

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

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

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

**返回值:**

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

M
mali 已提交
3036 3037 3038 3039 3040 3041 3042 3043
**错误码:**

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

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

F
fengwei0704 已提交
3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064
**示例:**

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

setPortraitEffect(effect: PortraitEffect): void

设置人像虚化效果。

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

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

**参数:**

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

M
mali 已提交
3065 3066 3067 3068 3069 3070 3071 3072
**错误码:**

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

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

F
fengwei0704 已提交
3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096
**示例:**

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

getPortraitEffect(): PortraitEffect

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

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

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

**返回值:**

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

M
mali 已提交
3097 3098 3099 3100 3101 3102 3103
**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
F
fengwei0704 已提交
3104 3105 3106 3107 3108 3109 3110 3111 3112

**示例:**

```js
let portraitEffects = PortraitSession.getSupportedPortraitEffects();
if (!portraitEffects.empty()) {
    PortraitSession.setPortraitEffect(portraitEffects[0]);
}
```
J
jiangminyang 已提交
3113 3114 3115 3116 3117

## CameraOutput

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

M
mali 已提交
3118
## PreviewOutput
J
jiangminyang 已提交
3119

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

M
mali 已提交
3122 3123
### start

C
cold_yixiu 已提交
3124
start(callback: AsyncCallback\<void\>): void
M
mali 已提交
3125 3126

开始输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
3127 3128 3129 3130 3131

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

**参数:**

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

M
mali 已提交
3136 3137
**错误码:**

Z
zengyawen 已提交
3138
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3139 3140 3141 3142 3143

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

J
jiangminyang 已提交
3144 3145 3146
**示例:**

```js
M
mali 已提交
3147
previewOutput.start((err) => {
J
jiangminyang 已提交
3148
    if (err) {
3149
        console.error(`Failed to start the previewOutput. ${err.code}`);
J
jiangminyang 已提交
3150 3151
        return;
    }
M
mali 已提交
3152 3153
    console.log('Callback returned with previewOutput started.');
})
J
jiangminyang 已提交
3154 3155
```

M
mali 已提交
3156
### start
J
jiangminyang 已提交
3157

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

M
mali 已提交
3160
开始输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
3161 3162 3163 3164 3165 3166 3167

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

**返回值:**

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

M
mali 已提交
3170 3171
**错误码:**

Z
zengyawen 已提交
3172
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3173 3174 3175 3176 3177

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

J
jiangminyang 已提交
3178 3179 3180
**示例:**

```js
M
mali 已提交
3181 3182
previewOutput.start().then(() => {
    console.log('Promise returned with previewOutput started.');
3183 3184 3185
}).catch((err) => {
    console.log('Failed to previewOutput start '+ err.code);
});
J
jiangminyang 已提交
3186 3187
```

M
mali 已提交
3188
### stop
J
jiangminyang 已提交
3189

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

M
mali 已提交
3192
停止输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
3193 3194 3195 3196 3197

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

**参数:**

M
mali 已提交
3198
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
3199
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
3200
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
J
jiangminyang 已提交
3201 3202 3203 3204

**示例:**

```js
M
mali 已提交
3205
previewOutput.stop((err) => {
J
jiangminyang 已提交
3206
    if (err) {
3207
        console.error(`Failed to stop the previewOutput. ${err.code}`);
J
jiangminyang 已提交
3208 3209
        return;
    }
M
mali 已提交
3210
    console.log('Callback returned with previewOutput stopped.');
J
jiangminyang 已提交
3211 3212 3213
})
```

M
mali 已提交
3214
### stop
J
jiangminyang 已提交
3215

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

M
mali 已提交
3218
停止输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
3219 3220 3221 3222 3223 3224

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

**返回值:**

| 类型            | 说明                     |
M
mali 已提交
3225
| -------------- | ------------------------ |
C
cold_yixiu 已提交
3226
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
3227 3228 3229 3230

**示例:**

```js
M
mali 已提交
3231 3232
previewOutput.stop().then(() => {
    console.log('Callback returned with previewOutput stopped.');
3233
}).catch((err) => {
3234
    console.log('Failed to previewOutput stop '+ err.code);
3235
});
J
jiangminyang 已提交
3236 3237
```

M
mali 已提交
3238
### release
J
jiangminyang 已提交
3239

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

M
mali 已提交
3242
释放输出资源,通过注册回调函数获取结果。
J
jiangminyang 已提交
3243 3244 3245 3246 3247

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

**参数:**

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

M
mali 已提交
3252 3253
**错误码:**

Z
zengyawen 已提交
3254
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3255 3256 3257 3258 3259

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

J
jiangminyang 已提交
3260 3261 3262
**示例:**

```js
M
mali 已提交
3263
previewOutput.release((err) => {
J
jiangminyang 已提交
3264
    if (err) {
3265
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
J
jiangminyang 已提交
3266 3267
        return;
    }
M
mali 已提交
3268 3269
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
J
jiangminyang 已提交
3270 3271
```

M
mali 已提交
3272
### release
J
jiangminyang 已提交
3273

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

M
mali 已提交
3276
释放输出资源,通过Promise获取结果。
J
jiangminyang 已提交
3277 3278 3279 3280 3281 3282

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

**返回值:**

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

M
mali 已提交
3286 3287
**错误码:**

Z
zengyawen 已提交
3288
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3289 3290 3291 3292 3293

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

J
jiangminyang 已提交
3294 3295 3296
**示例:**

```js
M
mali 已提交
3297 3298
previewOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3299 3300 3301
}).catch((err) => {
    console.log('Failed to previewOutput release '+ err.code);
});
J
jiangminyang 已提交
3302 3303 3304 3305
```

### on('frameStart')

C
cold_yixiu 已提交
3306
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3307 3308 3309 3310 3311 3312 3313

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

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

**参数:**

M
mali 已提交
3314
| 参数名      | 类型                  | 必填 | 说明                                     |
J
jiangminyang 已提交
3315
| -------- | -------------------- | ---- | --------------------------------------- |
3316
| type     | string               | 是   | 监听事件,固定为'frameStart',previewOutput创建成功可监听。底层第一次开始曝光时触发该事件并返回 |
C
cold_yixiu 已提交
3317
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览开始                     |
J
jiangminyang 已提交
3318 3319 3320 3321 3322 3323 3324 3325 3326

**示例:**

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

M
mali 已提交
3327 3328
### off('frameStart')

M
mali 已提交
3329
off(type: 'frameStart', callback?: AsyncCallback\<void\>): void
M
mali 已提交
3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347

注销监听预览帧启动。

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

**参数:**

| 参数名      | 类型                  | 必填 | 说明                                     |
| -------- | -------------------- | ---- | --------------------------------------- |
| type     | string               | 是   | 监听事件,固定为'frameStart',previewOutput创建成功可监听。 |
| callback | AsyncCallback\<void\> | 否   | 回调函数,可选                     |

**示例:**

```js
previewOutput.off('frameStart')
```

J
jiangminyang 已提交
3348 3349
### on('frameEnd')

C
cold_yixiu 已提交
3350
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3351 3352 3353 3354 3355 3356 3357

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

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

**参数:**

M
mali 已提交
3358
| 参数名      | 类型                  | 必填 | 说明                                  |
J
jiangminyang 已提交
3359
| -------- | -------------------- | ---- | ------------------------------------- |
3360
| type     | string               | 是   | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。预览完全结束最后一帧时触发该事件并返回, |
C
cold_yixiu 已提交
3361
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览结束                 |
J
jiangminyang 已提交
3362 3363 3364 3365 3366 3367 3368 3369 3370

**示例:**

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

M
mali 已提交
3371 3372
### off('frameEnd')

M
mali 已提交
3373
off(type: 'frameEnd', callback?: AsyncCallback\<void\>): void
M
mali 已提交
3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391

注销监听预览帧结束。

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

**参数:**

| 参数名      | 类型                  | 必填 | 说明                                  |
| -------- | -------------------- | ---- | ------------------------------------- |
| type     | string               | 是   | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。 |
| callback | AsyncCallback\<void\> | 否   | 回调函数,可选                |

**示例:**

```js
previewOutput.off('frameEnd')
```

J
jiangminyang 已提交
3392 3393
### on('error')

Z
zengyawen 已提交
3394
on(type: 'error', callback: ErrorCallback): void
J
jiangminyang 已提交
3395 3396 3397 3398 3399 3400 3401

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

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

**参数:**

3402 3403
| 参数名     | 类型         | 必填 | 说明                       |
| -------- | --------------| ---- | ------------------------ |
3404
| type     | string        | 是   | 监听事件,固定为'error',previewOutput创建成功可监听。预览接口使用错误时触发该事件,比如调用(start(),release())等接口发生错误时返回对应错误信息。|
Z
zengyawen 已提交
3405
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)  |
J
jiangminyang 已提交
3406 3407 3408 3409 3410 3411 3412 3413 3414

**示例:**

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

M
mali 已提交
3415 3416
### off('error')

M
mali 已提交
3417
off(type: 'error', callback?: ErrorCallback): void
M
mali 已提交
3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435

注销监听预览输出的错误事件。

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

**参数:**

| 参数名     | 类型         | 必填 | 说明                       |
| -------- | --------------| ---- | ------------------------ |
| type     | string        | 是   | 监听事件,固定为'error',previewOutput创建成功可监听。|
| callback | ErrorCallback | 否   | 回调函数,可选  |

**示例:**

```js
previewOutput.off('error')
```

Z
zengyawen 已提交
3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453
### 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。|

**错误码:**

Z
zengyawen 已提交
3454
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
Z
zengyawen 已提交
3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478

| 错误码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 已提交
3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493
## ImageRotation

枚举,图片旋转角度。

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

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

## Location

J
jiangminyang 已提交
3494
图片地理位置信息。
J
jiangminyang 已提交
3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518

**系统能力:** 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 已提交
3519
拍摄照片的设置。
J
jiangminyang 已提交
3520 3521 3522

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

M
mali 已提交
3523 3524 3525 3526 3527 3528
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
| quality  | [QualityLevel](#qualitylevel)   | 否   | 图片质量。         |
| rotation | [ImageRotation](#imagerotation) | 否   | 图片旋转角度。      |
| location | [Location](#location)           | 否   | 图片地理位置信息。   |
| mirror   | boolean                         | 否   |镜像使能开关(默认关)。 |
J
jiangminyang 已提交
3529 3530 3531

## PhotoOutput

M
mali 已提交
3532
拍照会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
3533 3534 3535

### capture

C
cold_yixiu 已提交
3536
capture(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3537 3538 3539 3540 3541 3542 3543

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

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

**参数:**

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

M
mali 已提交
3548 3549
**错误码:**

Z
zengyawen 已提交
3550
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3551 3552 3553 3554 3555 3556

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

J
jiangminyang 已提交
3557 3558 3559 3560 3561
**示例:**

```js
photoOutput.capture((err) => {
    if (err) {
3562
        console.error(`Failed to capture the photo ${err.code}`);
J
jiangminyang 已提交
3563 3564 3565 3566 3567 3568 3569 3570
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
```

### capture

C
cold_yixiu 已提交
3571
capture(): Promise\<void\>
3572 3573 3574 3575 3576 3577 3578 3579 3580

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

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

**返回值:**

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

M
mali 已提交
3583 3584
**错误码:**

Z
zengyawen 已提交
3585
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3586 3587 3588 3589 3590 3591

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

3592 3593 3594 3595 3596
**示例:**

```js
photoOutput.capture().then(() => {
    console.log('Promise returned to indicate that photo capture request success.');
3597 3598 3599
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
3600 3601 3602 3603
```

### capture

C
cold_yixiu 已提交
3604
capture(setting: PhotoCaptureSetting, callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3605 3606 3607 3608 3609 3610 3611

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

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

**参数:**

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

M
mali 已提交
3617 3618
**错误码:**

Z
zengyawen 已提交
3619
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3620 3621 3622 3623 3624 3625 3626

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

J
jiangminyang 已提交
3627 3628 3629
**示例:**

```js
M
mali 已提交
3630 3631 3632 3633 3634 3635 3636 3637 3638 3639
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 已提交
3640 3641
}
photoOutput.capture(settings, (err) => {
Z
zengyawen 已提交
3642
    if (err) {
3643
        console.error(`Failed to capture the photo ${err.code}`);
Z
zengyawen 已提交
3644 3645 3646 3647
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
J
jiangminyang 已提交
3648 3649
```

J
jiangminyang 已提交
3650 3651
### capture

C
cold_yixiu 已提交
3652
capture(setting?: PhotoCaptureSetting): Promise\<void\>
J
jiangminyang 已提交
3653 3654 3655 3656 3657 3658 3659

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

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

**参数:**

M
mali 已提交
3660
| 参数名     | 类型                                         | 必填 | 说明      |
J
jiangminyang 已提交
3661
| ------- | ------------------------------------------- | ---- | -------- |
M
review  
mali 已提交
3662
| setting | [PhotoCaptureSetting](#photocapturesetting) | 否   | 拍照设置,传入undefined类型数据按默认无参处理。 |
J
jiangminyang 已提交
3663 3664 3665 3666 3667

**返回值:**

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

M
mali 已提交
3670 3671
**错误码:**

Z
zengyawen 已提交
3672
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3673 3674 3675 3676 3677 3678

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400104                |  Session not running.                                  |
| 7400201                |  Camera service fatal error.                           |
J
jiangminyang 已提交
3679 3680 3681 3682

**示例:**

```js
M
mali 已提交
3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693
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
}
3694
photoOutput.capture(settings).then(() => {
J
jiangminyang 已提交
3695
    console.log('Promise returned to indicate that photo capture request success.');
3696 3697 3698
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
J
jiangminyang 已提交
3699 3700 3701 3702
```

### isMirrorSupported

3703
isMirrorSupported(): boolean
J
jiangminyang 已提交
3704

3705
查询是否支持镜像拍照。
J
jiangminyang 已提交
3706 3707 3708

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

3709
**返回值:**
J
jiangminyang 已提交
3710

3711 3712
| 类型            | 说明                     |
| -------------- | ----------------------- |
3713
| boolean | 返回是否支持镜像拍照。 |
J
jiangminyang 已提交
3714 3715 3716 3717

**示例:**

```js
3718
let isSupported = photoOutput.isMirrorSupported();
J
jiangminyang 已提交
3719 3720
```

M
mali 已提交
3721 3722
### release

C
cold_yixiu 已提交
3723
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
3724 3725 3726 3727 3728 3729 3730 3731 3732

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

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

**参数:**

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

M
mali 已提交
3735 3736
**错误码:**

Z
zengyawen 已提交
3737
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3738 3739 3740 3741 3742

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

M
mali 已提交
3743 3744 3745 3746 3747
**示例:**

```js
photoOutput.release((err) => {
    if (err) {
3748
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
3749 3750 3751 3752 3753 3754 3755 3756
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
3757
release(): Promise\<void\>
M
mali 已提交
3758 3759 3760 3761 3762 3763 3764 3765 3766

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

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

**返回值:**

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

M
mali 已提交
3769 3770
**错误码:**

Z
zengyawen 已提交
3771
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
3772 3773 3774 3775 3776

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

M
mali 已提交
3777 3778 3779 3780 3781
**示例:**

```js
photoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3782 3783 3784
}).catch((err) => {
    console.log('Failed to photoOutput release '+ err.code);
});
M
mali 已提交
3785 3786
```

J
jiangminyang 已提交
3787 3788
### on('captureStart')

C
cold_yixiu 已提交
3789
on(type: 'captureStart', callback: AsyncCallback\<number\>): void
J
jiangminyang 已提交
3790 3791 3792 3793 3794 3795 3796

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

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

**参数:**

M
mali 已提交
3797
| 参数名      | 类型                    | 必填 | 说明                                       |
J
jiangminyang 已提交
3798
| -------- | ---------------------- | ---- | ------------------------------------------ |
3799
| type     | string                 | 是   | 监听事件,固定为'captureStart',photoOutput创建成功后可监听。每次拍照,底层开始曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
3800
| callback | AsyncCallback\<number\> | 是   | 使用callback的方式获取Capture ID。            |
J
jiangminyang 已提交
3801 3802 3803 3804

**示例:**

```js
M
mali 已提交
3805
photoOutput.on('captureStart', (err, captureId) => {
J
jiangminyang 已提交
3806 3807 3808 3809
    console.log(`photo capture stated, captureId : ${captureId}`);
})
```

M
mali 已提交
3810 3811
### off('captureStart')

M
mali 已提交
3812
off(type: 'captureStart', callback?: AsyncCallback\<number\>): void
M
mali 已提交
3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830

注销监听拍照开始。

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

**参数:**

| 参数名      | 类型                    | 必填 | 说明                                       |
| -------- | ---------------------- | ---- | ------------------------------------------ |
| type     | string                 | 是   | 监听事件,固定为'captureStart',photoOutput创建成功后可监听 |
| callback | AsyncCallback\<number\> | 否   | 可选。            |

**示例:**

```js
photoOutput.off('captureStart')
```

J
jiangminyang 已提交
3831 3832
### on('frameShutter')

C
cold_yixiu 已提交
3833
on(type: 'frameShutter', callback: AsyncCallback\<FrameShutterInfo\>): void
J
jiangminyang 已提交
3834 3835 3836 3837 3838 3839 3840

监听拍照帧输出捕获,通过注册回调函数获取结果。

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

**参数:**

3841 3842
| 参数名     | 类型      | 必填 | 说明                                  |
| -------- | ---------- | --- | ------------------------------------ |
3843
| type     | string     | 是   | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 |
C
cold_yixiu 已提交
3844
| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。该回调返回意味着可以再次下发拍照请求。             |
J
jiangminyang 已提交
3845 3846 3847 3848

**示例:**

```js
M
mali 已提交
3849
photoOutput.on('frameShutter', (err, frameShutterInfo) => {
J
jiangminyang 已提交
3850 3851 3852 3853 3854
    console.log(`photo capture end, captureId : ${frameShutterInfo.captureId}`);
    console.log(`Timestamp for frame : ${frameShutterInfo.timestamp}`);
})
```

M
mali 已提交
3855 3856
### off('frameShutter')

M
mali 已提交
3857
off(type: 'frameShutter', callback?: AsyncCallback\<FrameShutterInfo\>): void
M
mali 已提交
3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875

注销监听拍照帧输出捕获。

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

**参数:**

| 参数名     | 类型      | 必填 | 说明                                  |
| -------- | ---------- | --- | ------------------------------------ |
| type     | string     | 是   | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 |
| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 否   | 回调函数,可选。             |

**示例:**

```js
photoOutput.off('frameShutter')
```

J
jiangminyang 已提交
3876
### on('captureEnd')
J
jiangminyang 已提交
3877

C
cold_yixiu 已提交
3878
on(type: 'captureEnd', callback: AsyncCallback\<CaptureEndInfo\>): void
J
jiangminyang 已提交
3879

J
jiangminyang 已提交
3880
监听拍照结束,通过注册回调函数获取结果。
J
jiangminyang 已提交
3881 3882 3883 3884 3885

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

**参数:**

3886 3887
| 参数名     | 类型           | 必填 | 说明                                       |
| -------- | --------------- | ---- | ---------------------------------------- |
3888
| type     | string          | 是   | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 |
C
cold_yixiu 已提交
3889
| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                  |
J
jiangminyang 已提交
3890

J
jiangminyang 已提交
3891
**示例:**
J
jiangminyang 已提交
3892

J
jiangminyang 已提交
3893
```js
M
mali 已提交
3894
photoOutput.on('captureEnd', (err, captureEndInfo) => {
J
jiangminyang 已提交
3895 3896 3897 3898 3899
    console.log(`photo capture end, captureId : ${captureEndInfo.captureId}`);
    console.log(`frameCount : ${captureEndInfo.frameCount}`);
})
```

M
mali 已提交
3900 3901
### off('captureEnd')

M
mali 已提交
3902
off(type: 'captureEnd', callback?: AsyncCallback\<CaptureEndInfo\>): void
M
mali 已提交
3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920

注销监听拍照结束。

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

**参数:**

| 参数名     | 类型           | 必填 | 说明                                       |
| -------- | --------------- | ---- | ---------------------------------------- |
| type     | string          | 是   | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。 |
| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 否   | 回调函数,可选。                  |

**示例:**

```js
photoOutput.off('captureEnd')
```

J
jiangminyang 已提交
3921 3922
### on('error')

Z
zengyawen 已提交
3923
on(type: 'error', callback: ErrorCallback): void
J
jiangminyang 已提交
3924 3925

监听拍照输出发生错误,通过注册回调函数获取结果。
J
jiangminyang 已提交
3926

J
jiangminyang 已提交
3927 3928 3929 3930
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

3931 3932
| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
3933
| type     | string       | 是   | 监听事件,固定为'error',photoOutput创建成功后可监听。拍照接口调用时出现错误触发该事件并返回错误信息。 |
Z
zengyawen 已提交
3934
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)             |
J
jiangminyang 已提交
3935 3936 3937 3938

**示例:**

```js
3939
photoOutput.on('error', (error) => {
3940
    console.log(`Photo output error code: ${error.code}`);
J
jiangminyang 已提交
3941 3942 3943
})
```

M
mali 已提交
3944 3945
### off('error')

M
mali 已提交
3946
off(type: 'error', callback?: ErrorCallback): void
M
mali 已提交
3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964

注销监听拍照输出发生错误。

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

**参数:**

| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
| type     | string       | 是   | 监听事件,固定为'error',photoOutput创建成功后可监听。 |
| callback | ErrorCallback | 否   | 回调函数,可选           |

**示例:**

```js
photoOutput.off('error')
```

Z
zengyawen 已提交
3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984
### isQuickThumbnailSupported

isQuickThumbnailSupported(): boolean

是否支持输出快速缩略图。

在CaptureSession.addOutput、CaptureSession.addInput之后,CaptureSession.commitConfig之前生效。

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

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

**返回值:**

| 类型 | 说明 |
| --------- | ------ |
| boolean | 返回支持情况,如果返回true表示支持,否则不支持。 |

**错误码:**

Z
zengyawen 已提交
3985
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
Z
zengyawen 已提交
3986 3987 3988

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
M
mali 已提交
3989
| 7400104                |  session is not running        |
Z
zengyawen 已提交
3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030

**示例:**

```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:去使能快速缩略图。 |

**错误码:**

Z
zengyawen 已提交
4031
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
Z
zengyawen 已提交
4032 4033 4034

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
M
mali 已提交
4035
| 7400104                |  session is not running        |
Z
zengyawen 已提交
4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076

**示例:**

```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'。 |
M
mali 已提交
4077
| callback | AsyncCallback\<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调返回PixelMap。 |
Z
zengyawen 已提交
4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111

**示例:**

```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)
})
```

M
mali 已提交
4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162
### off('quickThumbnail')

off(type: 'quickThumbnail', callback?: AsyncCallback\<image.PixelMap>): void

注销监听快速缩略图输出事件。

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

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

**参数:**

| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
| type    | string     | 是   | 监听事件,固定为'quickThumbnail'。 |
| callback | AsyncCallback\<[image.PixelMap](js-apis-image.md#pixelmap7)> | 否 | 可选。 |

**示例:**

```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)
})
this.photoOutPut.off('quickThumbnail')
```

J
jiangminyang 已提交
4163
## FrameShutterInfo
J
jiangminyang 已提交
4164

J
jiangminyang 已提交
4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186
拍照帧输出信息。

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

| 名称      | 类型   | 必填 | 说明         |
| --------- | ------ | ---- | ---------- |
| captureId | number | 是   | 拍照的ID。  |
| timestamp | number | 是   | 快门时间戳。 |

## CaptureEndInfo

拍照停止信息。

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

| 名称       | 类型   | 必填 | 说明       |
| ---------- | ------ | ---- | ---------|
| captureId  | number | 是   | 拍照的ID。 |
| frameCount | number | 是   | 帧数。    |

## VideoOutput

M
mali 已提交
4187
录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
4188 4189 4190

### start

C
cold_yixiu 已提交
4191
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
4192 4193

启动录制,通过注册回调函数获取结果。
J
jiangminyang 已提交
4194 4195 4196 4197 4198

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

**参数:**

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

M
mali 已提交
4203 4204
**错误码:**

Z
zengyawen 已提交
4205
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
4206 4207 4208 4209 4210 4211

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

J
jiangminyang 已提交
4212 4213 4214
**示例:**

```js
J
jiangminyang 已提交
4215
videoOutput.start((err) => {
N
nikhilraut 已提交
4216
    if (err) {
4217
        console.error(`Failed to start the video output ${err.code}`);
N
nikhilraut 已提交
4218 4219
        return;
    }
J
jiangminyang 已提交
4220
    console.log('Callback invoked to indicate the video output start success.');
N
nikhilraut 已提交
4221 4222 4223
});
```

J
jiangminyang 已提交
4224
### start
N
nikhilraut 已提交
4225

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

J
jiangminyang 已提交
4228
启动录制,通过Promise获取结果。
N
nikhilraut 已提交
4229

Z
zengyawen 已提交
4230
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4231 4232 4233

**返回值:**

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

M
mali 已提交
4238 4239
**错误码:**

Z
zengyawen 已提交
4240
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
4241 4242 4243 4244 4245

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |
N
nikhilraut 已提交
4246 4247 4248

**示例:**

Z
zengyawen 已提交
4249
```js
J
jiangminyang 已提交
4250 4251
videoOutput.start().then(() => {
    console.log('Promise returned to indicate that start method execution success.');
4252 4253 4254
}).catch((err) => {
    console.log('Failed to videoOutput start '+ err.code);
});
N
nikhilraut 已提交
4255 4256
```

J
jiangminyang 已提交
4257
### stop
N
nikhilraut 已提交
4258

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

J
jiangminyang 已提交
4261
结束录制,通过注册回调函数获取结果。
N
nikhilraut 已提交
4262

Z
zengyawen 已提交
4263
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4264 4265 4266

**参数:**

M
mali 已提交
4267
| 参数名     | 类型                 | 必填 | 说明                     |
J
jiangminyang 已提交
4268
| -------- | -------------------- | ---- | ------------------------ |
C
cold_yixiu 已提交
4269
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
4270 4271 4272

**示例:**

Z
zengyawen 已提交
4273
```js
J
jiangminyang 已提交
4274 4275
videoOutput.stop((err) => {
    if (err) {
4276
        console.error(`Failed to stop the video output ${err.code}`);
J
jiangminyang 已提交
4277 4278 4279 4280
        return;
    }
    console.log('Callback invoked to indicate the video output stop success.');
});
Z
zengyawen 已提交
4281
```
N
nikhilraut 已提交
4282

J
jiangminyang 已提交
4283
### stop
N
nikhilraut 已提交
4284

C
cold_yixiu 已提交
4285
stop(): Promise\<void\>
J
jiangminyang 已提交
4286 4287 4288 4289 4290 4291 4292 4293 4294

结束录制,通过Promise获取结果。

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

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
4295
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
4296 4297 4298 4299 4300 4301

**示例:**

```js
videoOutput.stop().then(() => {
    console.log('Promise returned to indicate that stop method execution success.');
4302
}).catch((err) => {
4303
    console.log('Failed to videoOutput stop '+ err.code);
4304
});
4305
```
J
jiangminyang 已提交
4306

M
mali 已提交
4307 4308
### release

C
cold_yixiu 已提交
4309
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
4310 4311 4312 4313 4314 4315 4316 4317 4318

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

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

**参数:**

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

M
mali 已提交
4321 4322
**错误码:**

Z
zengyawen 已提交
4323
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
4324 4325 4326 4327 4328

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

M
mali 已提交
4329 4330 4331 4332 4333
**示例:**

```js
videoOutput.release((err) => {
    if (err) {
4334
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
4335 4336 4337 4338 4339 4340 4341 4342
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
4343
release(): Promise\<void\>
M
mali 已提交
4344 4345 4346 4347 4348 4349 4350 4351 4352

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

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

**返回值:**

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

M
mali 已提交
4355 4356
**错误码:**

Z
zengyawen 已提交
4357
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
4358 4359 4360 4361 4362

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

M
mali 已提交
4363 4364 4365 4366 4367
**示例:**

```js
videoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
4368 4369 4370
}).catch((err) => {
    console.log('Failed to videoOutput release '+ err.code);
});
M
mali 已提交
4371 4372
```

J
jiangminyang 已提交
4373 4374
### on('frameStart')

C
cold_yixiu 已提交
4375
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
4376

J
jiangminyang 已提交
4377
监听录像开始,通过注册回调函数获取结果。
N
nikhilraut 已提交
4378

Z
zengyawen 已提交
4379
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4380 4381 4382

**参数:**

M
mali 已提交
4383
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
4384
| -------- | -------------------- | ---- | ----------------------------------------- |
4385
| type     | string               | 是   | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。底层第一次曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
4386
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。  只要有该事件返回就证明录像开始                     |
N
nikhilraut 已提交
4387 4388 4389

**示例:**

Z
zengyawen 已提交
4390
```js
J
jiangminyang 已提交
4391 4392
videoOutput.on('frameStart', () => {
    console.log('Video frame started');
N
nikhilraut 已提交
4393 4394 4395
})
```

M
mali 已提交
4396 4397
### off('frameStart')

M
mali 已提交
4398
off(type: 'frameStart', callback?: AsyncCallback\<void\>): void
M
mali 已提交
4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416

注销监听录像开始。

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

**参数:**

| 参数名      | 类型                  | 必填 | 说明                                       |
| -------- | -------------------- | ---- | ----------------------------------------- |
| type     | string               | 是   | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。 |
| callback | AsyncCallback\<void\> | 否   | 回调函数,可选                     |

**示例:**

```js
videoOutput.off('frameStart')
```

J
jiangminyang 已提交
4417
### on('frameEnd')
N
nikhilraut 已提交
4418

C
cold_yixiu 已提交
4419
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
4420

J
jiangminyang 已提交
4421
监听录像结束,通过注册回调函数获取结果。
N
nikhilraut 已提交
4422

Z
zengyawen 已提交
4423
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4424 4425 4426

**参数:**

M
mali 已提交
4427
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
4428
| -------- | -------------------- | ---- | ------------------------------------------ |
4429
| type     | string               | 是   | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。录像完全结束最后一帧时触发该事件并返回  。 |
C
cold_yixiu 已提交
4430
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 只要有该事件返回就证明录像结束                      |
N
nikhilraut 已提交
4431 4432 4433

**示例:**

Z
zengyawen 已提交
4434
```js
J
jiangminyang 已提交
4435 4436
videoOutput.on('frameEnd', () => {
    console.log('Video frame ended');
N
nikhilraut 已提交
4437 4438 4439
})
```

M
mali 已提交
4440 4441
### off('frameEnd')

M
mali 已提交
4442
off(type: 'frameEnd', callback?: AsyncCallback\<void\>): void
M
mali 已提交
4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460

注销监听录像结束。

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

**参数:**

| 参数名      | 类型                  | 必填 | 说明                                       |
| -------- | -------------------- | ---- | ------------------------------------------ |
| type     | string               | 是   | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听 。 |
| callback | AsyncCallback\<void\> | 否   | 回调函数,可选                      |

**示例:**

```js
videoOutput.off('frameEnd')
```

J
jiangminyang 已提交
4461
### on('error')
N
nikhilraut 已提交
4462

Z
zengyawen 已提交
4463
on(type: 'error', callback: ErrorCallback): void
N
nikhilraut 已提交
4464

J
jiangminyang 已提交
4465
监听录像输出发生错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
4466

Z
zengyawen 已提交
4467
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4468 4469 4470

**参数:**

4471 4472
| 参数名     | 类型       | 必填 | 说明                                    |
| -------- | ----------- | ---- | -------------------------------------- |
4473
| type     | string      | 是   | 监听事件,固定为'error',videoOutput创建成功后可监听。录像接口调用出现错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时出现错误返回对应错误信息。 |
Z
zengyawen 已提交
4474
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)                 |
N
nikhilraut 已提交
4475 4476 4477

**示例:**

Z
zengyawen 已提交
4478
```js
4479 4480
videoOutput.on('error', (error) => {
    console.log(`Video output error code: ${error.code}`);
N
nikhilraut 已提交
4481 4482 4483
})
```

M
mali 已提交
4484 4485
### off('error')

M
mali 已提交
4486
off(type: 'error', callback?: ErrorCallback): void
M
mali 已提交
4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504

注销监听录像输出发生错误。

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

**参数:**

| 参数名     | 类型       | 必填 | 说明                                    |
| -------- | ----------- | ---- | -------------------------------------- |
| type     | string      | 是   | 监听事件,固定为'error',videoOutput创建成功后可监听。 |
| callback | ErrorCallback | 否   | 回调函数,可选               |

**示例:**

```js
videoOutput.off('error')
```

M
mali 已提交
4505
## MetadataOutput
N
nikhilraut 已提交
4506

M
mali 已提交
4507
metadata流。继承[CameraOutput](#cameraoutput)
N
nikhilraut 已提交
4508

M
mali 已提交
4509
### start
J
jiangminyang 已提交
4510

C
cold_yixiu 已提交
4511
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
4512

M
mali 已提交
4513
开始输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
4514

Z
zengyawen 已提交
4515
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4516 4517 4518

**参数:**

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

M
mali 已提交
4523 4524
**错误码:**

Z
zengyawen 已提交
4525
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
4526 4527 4528 4529 4530 4531

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

N
nikhilraut 已提交
4532 4533
**示例:**

Z
zengyawen 已提交
4534
```js
M
mali 已提交
4535
metadataOutput.start((err) => {
N
nikhilraut 已提交
4536
    if (err) {
4537
        console.error(`Failed to start metadataOutput. ${err.code}`);
N
nikhilraut 已提交
4538 4539
        return;
    }
M
mali 已提交
4540
    console.log('Callback returned with metadataOutput started.');
J
jiangminyang 已提交
4541
})
Z
zengyawen 已提交
4542
```
N
nikhilraut 已提交
4543

M
mali 已提交
4544
### start
N
nikhilraut 已提交
4545

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

M
mali 已提交
4548
开始输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
4549

Z
zengyawen 已提交
4550
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4551 4552 4553

**返回值:**

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

M
mali 已提交
4558 4559
**错误码:**

Z
zengyawen 已提交
4560
以下错误码的详细介绍请参见[Camera错误码](../errorcodes/errorcode-camera.md)
M
mali 已提交
4561 4562 4563 4564 4565 4566

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

N
nikhilraut 已提交
4567 4568
**示例:**

Z
zengyawen 已提交
4569
```js
M
mali 已提交
4570 4571
metadataOutput.start().then(() => {
    console.log('Callback returned with metadataOutput started.');
4572 4573 4574
}).catch((err) => {
    console.log('Failed to metadataOutput start '+ err.code);
});
N
nikhilraut 已提交
4575 4576
```

M
mali 已提交
4577
### stop
N
nikhilraut 已提交
4578

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

M
mali 已提交
4581
停止输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
4582

Z
zengyawen 已提交
4583
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4584 4585 4586

**参数:**

M
mali 已提交
4587 4588
| 参数名     | 类型                         | 必填 | 说明                  |
| -------- | -------------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
4589
| callback | AsyncCallback\<void\>       | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
4590 4591 4592

**示例:**

Z
zengyawen 已提交
4593
```js
M
mali 已提交
4594
metadataOutput.stop((err) => {
N
nikhilraut 已提交
4595
    if (err) {
4596
        console.error(`Failed to stop the metadataOutput. ${err.code}`);
N
nikhilraut 已提交
4597 4598
        return;
    }
M
mali 已提交
4599
    console.log('Callback returned with metadataOutput stopped.');
J
jiangminyang 已提交
4600
})
N
nikhilraut 已提交
4601 4602
```

M
mali 已提交
4603
### stop
N
nikhilraut 已提交
4604

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

M
mali 已提交
4607
停止输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
4608

Z
zengyawen 已提交
4609
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4610 4611 4612

**返回值:**

M
mali 已提交
4613 4614
| 类型                    | 说明                        |
| ----------------------  | --------------------------- |
C
cold_yixiu 已提交
4615
| Promise\<void\>         | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
4616 4617 4618

**示例:**

Z
zengyawen 已提交
4619
```js
M
mali 已提交
4620 4621
metadataOutput.stop().then(() => {
    console.log('Callback returned with metadataOutput stopped.');
4622
}).catch((err) => {
4623
    console.log('Failed to metadataOutput stop '+ err.code);
4624
});
N
nikhilraut 已提交
4625 4626
```

M
mali 已提交
4627
### on('metadataObjectsAvailable')
N
nikhilraut 已提交
4628

C
cold_yixiu 已提交
4629
on(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObject\>\>): void
N
nikhilraut 已提交
4630

M
mali 已提交
4631
监听检测到的metadata对象,通过注册回调函数获取结果。
N
nikhilraut 已提交
4632

Z
zengyawen 已提交
4633
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
4634 4635 4636

**参数:**

4637 4638 4639
| 参数名      | 类型         | 必填 | 说明                                  |
| -------- | -------------- | ---- | ------------------------------------ |
| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据 |
C
cold_yixiu 已提交
4640
| callback | Callback\<Array\<[MetadataObject](#metadataobject)\>\> | 是   | 回调函数,用于获取metadata数据。 |
N
nikhilraut 已提交
4641 4642 4643

**示例:**

Z
zengyawen 已提交
4644
```js
M
mali 已提交
4645
metadataOutput.on('metadataObjectsAvailable', (err, metadataObjectArr) => {
M
mali 已提交
4646
    console.log(`metadata output metadataObjectsAvailable`);
J
jiangminyang 已提交
4647
})
N
nikhilraut 已提交
4648 4649
```

M
mali 已提交
4650 4651
### off('metadataObjectsAvailable')

M
mali 已提交
4652
off(type: 'metadataObjectsAvailable', callback?: AsyncCallback\<Array\<MetadataObject\>\>): void
M
mali 已提交
4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670

注销监听检测到的metadata对象。

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

**参数:**

| 参数名      | 类型         | 必填 | 说明                                  |
| -------- | -------------- | ---- | ------------------------------------ |
| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。 |
| callback | Callback\<Array\<[MetadataObject](#metadataobject)\>\> | 否   | 回调函数,可选。 |

**示例:**

```js
metadataOutput.off('metadataObjectsAvailable')
```

M
mali 已提交
4671
### on('error')
N
nikhilraut 已提交
4672

Z
zengyawen 已提交
4673
on(type: 'error', callback: ErrorCallback): void
N
nikhilraut 已提交
4674

M
mali 已提交
4675
监听metadata流的错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
4676

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

M
mali 已提交
4679
**参数:**
N
nikhilraut 已提交
4680

4681 4682
| 参数名     | 类型         | 必填 | 说明                                     |
| -------- | ------------- | ---- | --------------------------------------- |
4683
| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时发生错误返回对应错误信息。 |
Z
zengyawen 已提交
4684
| callback | ErrorCallback | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)            |
N
nikhilraut 已提交
4685 4686 4687

**示例:**

Z
zengyawen 已提交
4688
```js
M
review  
mali 已提交
4689
metadataOutput.on('error', (metadataOutputError) => {
M
mali 已提交
4690
    console.log(`Metadata output error code: ${metadataOutputError.code}`);
N
nikhilraut 已提交
4691 4692 4693
})
```

M
mali 已提交
4694 4695
### off('error')

M
mali 已提交
4696
off(type: 'error', callback?: ErrorCallback): void
M
mali 已提交
4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714

注销监听metadata流的错误。

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

**参数:**

| 参数名     | 类型         | 必填 | 说明                                     |
| -------- | ------------- | ---- | --------------------------------------- |
| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。 |
| callback | ErrorCallback | 否   | 回调函数,可选           |

**示例:**

```js
metadataOutput.off('error')
```

M
mali 已提交
4715 4716 4717 4718 4719 4720 4721 4722
## MetadataObjectType

枚举,metadata流。

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

| 名称                       | 值   | 说明              |
| ------------------------- | ---- | ----------------- |
C
cold_yixiu 已提交
4723
| FACE_DETECTION            | 0    | metadata对象类型,人脸检测。检测点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。<br> 此坐标系是以设备充电口在右侧时的横向设备方向为基准的,<br> 例如应用的预览界面布局以设备充电口在下侧时的竖向方向为基准,<br> 布局宽高为{w,h}, 返回点为{x,y},则转换后的坐标点为{1-y,x}。 |
M
mali 已提交
4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739

## Rect

矩形定义。

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

| 名称      | 类型   |      必填     |           说明                 |
| -------- | ------ | --------------- | -------------------- |
| topLeftX | number |        是          | 矩形区域左上角x坐标。   |
| topLeftY | number |         是          | 矩形区域左上角y坐标。   |
| width    | number |         是         | 矩形宽。              |
| height   | number |         是           |矩形高。              |

## MetadataObject

M
mali 已提交
4740
相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取
M
mali 已提交
4741

C
cold_yixiu 已提交
4742 4743
**系统能力:** SystemCapability.Multimedia.Camera.Core

4744 4745
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
4746 4747 4748
| type  | [MetadataObjectType](#metadataobjecttype)   | 否   | metadata 类型,目前只有人脸识别。 |
| timestamp | number | 否   | 当前时间戳(毫秒)。 |
| boundingBox | [Rect](#rect)           | 否   | metadata 区域框 |