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

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

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

帧率范围。

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

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

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

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

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

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

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

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

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

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

106
## CameraErrorCode
N
nikhilraut 已提交
107

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

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

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

125
## CameraManager
N
nikhilraut 已提交
126

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

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

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

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

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

**返回值:**

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

**示例:**

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

N
nikhilraut 已提交
148 149
```

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

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

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

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

**参数:**

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

**返回值:**

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

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

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

J
jiangminyang 已提交
176 177
```

J
jiangminyang 已提交
178 179
### isCameraMuted

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

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

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

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

**返回值:**

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

**示例:**

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

### isCameraMuteSupported

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

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

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

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

**返回值:**

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

**示例:**

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

### muteCamera

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

禁用相机。

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**返回值:**

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

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

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

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

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

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

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

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

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

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

**参数:**

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

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

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

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

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

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

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

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

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

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

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

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

**参数:**

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

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

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

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

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

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

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

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

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

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

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

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

**返回值:**

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

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

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

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

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

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

**参数:**

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

**示例:**

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

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

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

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

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

## CameraPosition

枚举,相机位置。

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

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

## CameraType

枚举,相机类型。

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

| 名称                     | 值   | 说明            |
| ----------------------- | ---- | -------------- |
615
| CAMERA_TYPE_DEFAULT     | 0    | 相机类型未指定。  |
J
jiangminyang 已提交
616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632
| 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 已提交
633 634 635 636
## HostDeviceType

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

M
mali 已提交
637 638
此接口为系统接口。

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

M
mali 已提交
641 642 643 644 645
| 名称                          | 值       | 说明           |
| ---------------------------- | ----     | ------------- |
| UNKNOWN_TYPE                 | 0        | 未知设备类型。      |
| PHONE                        | 0x0E     | 智能手机相机设备类型。 |
| TABLET                       | 0x11     | 平板电脑相机设备类型。 |
M
mali 已提交
646

J
jiangminyang 已提交
647 648 649 650 651 652
## CameraDevice

相机设备信息。

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

M
mali 已提交
653
| 名称           | 类型                                | 必填 | 说明        |
J
jiangminyang 已提交
654 655 656 657 658
| -------------- | --------------------------------- | ---- | ---------- |
| cameraId       | string                            | 是   | CameraDevice对象|
| cameraPosition | [CameraPosition](#cameraposition) | 是   | 相机位置。    |
| cameraType     | [CameraType](#cameratype)         | 是   | 相机类型。    |
| connectionType | [ConnectionType](#connectiontype) | 是   | 相机连接类型。 |
M
mali 已提交
659 660
| hostDeviceName | string                            | 是   | 远端设备名称,此接口为系统接口。 |
| hostDeviceType | [hostDeviceType](#hostdevicetype) | 是   | 远端相机设备类型,此接口为系统接口。 |
J
jiangminyang 已提交
661 662 663 664 665 666 667 668 669 670 671 672 673 674

## Size

枚举,输出能力查询。

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

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

## Point

J
jiangminyang 已提交
675
枚举,点坐标用于对焦、曝光配置。
J
jiangminyang 已提交
676 677

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

J
jiangminyang 已提交
679 680 681 682 683 684 685 686 687 688 689
| 名称   | 类型   | 必填   | 说明         |
| ------ | ------ | ---- | ------------ |
| x      | number | 是    | 点的x坐标。   |
| y      | number | 是    | 点的y坐标。   |

## CameraFormat

枚举,输出格式。

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

M
mali 已提交
690
| 名称                     | 值        | 说明         |
J
jiangminyang 已提交
691
| ----------------------- | --------- | ------------ |
J
jiangminyang 已提交
692
| CAMERA_FORMAT_RGBA_8888 | 3         | RGB格式的图片。             |
J
jiangminyang 已提交
693 694 695 696 697 698 699 700 701
| CAMERA_FORMAT_YUV_420_SP| 1003      | YUV 420 SP格式的图片。      |
| CAMERA_FORMAT_JPEG      | 2000      | JPEG格式的图片。            |

## CameraInput

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

### open

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

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

Z
zengyawen 已提交
706
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
707 708 709

**参数:**

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

M
mali 已提交
714 715 716 717 718 719 720 721 722 723
**错误码:**

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

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

N
nikhilraut 已提交
724 725
**示例:**

Z
zengyawen 已提交
726
```js
J
jiangminyang 已提交
727
cameraInput.open((err) => {
N
nikhilraut 已提交
728
    if (err) {
729
        console.error(`Failed to open the camera. ${err.code}`);
N
nikhilraut 已提交
730 731
        return;
    }
J
jiangminyang 已提交
732 733
    console.log('Callback returned with camera opened.');
})
N
nikhilraut 已提交
734 735
```

J
jiangminyang 已提交
736
### open
N
nikhilraut 已提交
737

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

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

Z
zengyawen 已提交
742
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
743 744 745

**返回值:**

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

M
mali 已提交
750 751 752 753 754 755 756 757 758 759
**错误码:**

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

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

N
nikhilraut 已提交
760 761
**示例:**

Z
zengyawen 已提交
762
```js
J
jiangminyang 已提交
763 764
cameraInput.open().then(() => {
    console.log('Promise returned with camera opened.');
765 766 767
}).catch((err) => {
    console.error(`Failed to open the camera. ${err.code}`);
});
N
nikhilraut 已提交
768 769
```

J
jiangminyang 已提交
770
### close
N
nikhilraut 已提交
771

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

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

Z
zengyawen 已提交
776
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
777 778 779

**参数:**

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

M
mali 已提交
784 785 786 787 788 789 790 791
**错误码:**

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

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

N
nikhilraut 已提交
792 793
**示例:**

Z
zengyawen 已提交
794
```js
J
jiangminyang 已提交
795 796
cameraInput.close((err) => {
    if (err) {
797
        console.error(`Failed to close the cameras. ${err.code}`);
J
jiangminyang 已提交
798 799 800 801 802 803 804 805
        return;
    }
    console.log('Callback returned with camera closed.');
})
```

### close

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

J
jiangminyang 已提交
808
关闭相机,通过Promise获取状态。
J
jiangminyang 已提交
809 810 811 812 813 814 815

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

**返回值:**

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

M
mali 已提交
818 819 820 821 822 823 824 825
**错误码:**

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

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

J
jiangminyang 已提交
826 827 828 829 830
**示例:**

```js
cameraInput.close().then(() => {
    console.log('Promise returned with camera closed.');
831 832 833
}).catch((err) => {
    console.error(`Failed to close the cameras. ${err.code}`);
});
J
jiangminyang 已提交
834 835
```

836
### on('error')
J
jiangminyang 已提交
837

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

840
监听CameraInput的错误事件,通过注册回调函数获取结果。
J
jiangminyang 已提交
841 842 843 844 845

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

**参数:**

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

**示例:**

```js
855 856 857 858
let cameraDevice = cameras[0];
cameraInput.on('error', cameraDevice, (error) => {
    console.log(`Camera input error code: ${error.code}`);
})
J
jiangminyang 已提交
859 860
```

861
## FlashMode
J
jiangminyang 已提交
862

863
枚举,闪光灯模式。
J
jiangminyang 已提交
864

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

867 868 869 870 871 872
| 名称                    | 值   | 说明        |
| ---------------------- | ---- | ---------- |
| FLASH_MODE_CLOSE       | 0    | 闪光灯关闭。 |
| FLASH_MODE_OPEN        | 1    | 闪光灯打开。 |
| FLASH_MODE_AUTO        | 2    | 自动闪光灯。 |
| FLASH_MODE_ALWAYS_OPEN | 3    | 闪光灯常亮。 |
J
jiangminyang 已提交
873

874
## ExposureMode
N
nikhilraut 已提交
875

J
jiangminyang 已提交
876
枚举,曝光模式。
N
nikhilraut 已提交
877

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

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

J
jiangminyang 已提交
886
 ## FocusMode
N
nikhilraut 已提交
887

J
jiangminyang 已提交
888
枚举,焦距模式。
N
nikhilraut 已提交
889

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

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

J
jiangminyang 已提交
899
## FocusState
N
nikhilraut 已提交
900

J
jiangminyang 已提交
901
枚举,焦距状态。
Z
zengyawen 已提交
902

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

J
jiangminyang 已提交
905 906 907 908 909
| 名称                   | 值   | 说明       |
| --------------------- | ---- | --------- |
| FOCUS_STATE_SCAN      | 0    | 触发对焦。  |
| FOCUS_STATE_FOCUSED   | 1    | 对焦成功。  |
| FOCUS_STATE_UNFOCUSED | 2    | 未完成对焦。 |
Z
zengyawen 已提交
910

J
jiangminyang 已提交
911
## VideoStabilizationMode
Z
zengyawen 已提交
912

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

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

J
jiangminyang 已提交
917 918 919 920 921 922 923
| 名称       | 值   | 说明         |
| --------- | ---- | ------------ |
| OFF       | 0    | 关闭视频防抖功能。   |
| LOW       | 1    | 使用基础防抖算法。   |
| MIDDLE    | 2    | 使用防抖效果一般的防抖算法,防抖效果优于LOW类型。   |
| HIGH      | 3    | 使用防抖效果最好的防抖算法,防抖效果优于MIDDLE类型。   |
| AUTO      | 4    | 自动进行选择。   |
N
nikhilraut 已提交
924

J
jiangminyang 已提交
925
## CaptureSession
N
nikhilraut 已提交
926

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

Z
zengyawen 已提交
929
### beginConfig
N
nikhilraut 已提交
930

931
beginConfig(): void
N
nikhilraut 已提交
932

933
开始配置会话。
N
nikhilraut 已提交
934

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

937 938 939 940
**返回值:**

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

M
mali 已提交
943 944 945 946 947 948 949 950
**错误码:**

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

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

N
nikhilraut 已提交
951 952
**示例:**

Z
zengyawen 已提交
953
```js
954 955 956
try {
    captureSession.beginConfig();
} catch (error) {
957
    // 失败返回错误码error.code并处理
958 959
    console.log(error.code);
}
N
nikhilraut 已提交
960 961
```

Z
zengyawen 已提交
962
### commitConfig
N
nikhilraut 已提交
963

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

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

Z
zengyawen 已提交
968
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
969 970 971

**参数:**

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

M
mali 已提交
976 977 978 979 980 981 982 983 984
**错误码:**

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

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

N
nikhilraut 已提交
985 986
**示例:**

Z
zengyawen 已提交
987
```js
N
nikhilraut 已提交
988 989
captureSession.commitConfig((err) => {
    if (err) {
990
        console.log('Failed to commitConfig '+ err.code);
N
nikhilraut 已提交
991 992 993 994 995 996
        return;
    }
    console.log('Callback invoked to indicate the commit config success.');
});
```

Z
zengyawen 已提交
997
### commitConfig
N
nikhilraut 已提交
998

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

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

Z
zengyawen 已提交
1003
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1004 1005 1006

**返回值:**

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

M
mali 已提交
1011 1012 1013 1014 1015 1016 1017 1018 1019
**错误码:**

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

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

N
nikhilraut 已提交
1020 1021
**示例:**

Z
zengyawen 已提交
1022
```js
N
nikhilraut 已提交
1023 1024
captureSession.commitConfig().then(() => {
    console.log('Promise returned to indicate the commit config success.');
1025 1026 1027 1028
}).catch((err) => {
    // 失败返回错误码error.code并处理
    console.log('Failed to commitConfig '+ err.code);
});
N
nikhilraut 已提交
1029 1030
```

J
jiangminyang 已提交
1031
### addInput
N
nikhilraut 已提交
1032

1033
addInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1034

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

Z
zengyawen 已提交
1037
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1038 1039 1040

**参数:**

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

1045 1046 1047 1048
**返回值:**

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

M
mali 已提交
1051 1052 1053 1054 1055 1056 1057 1058 1059
**错误码:**

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

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

N
nikhilraut 已提交
1060 1061
**示例:**

Z
zengyawen 已提交
1062
```js
1063 1064 1065
try {
    captureSession.addInput(cameraInput);
} catch (error) {
1066
    // 失败返回错误码error.code并处理
1067 1068
    console.log(error.code);
}
N
nikhilraut 已提交
1069 1070
```

J
jiangminyang 已提交
1071
### removeInput
N
nikhilraut 已提交
1072

1073
removeInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1074

1075
移除[CameraInput](#camerainput)
N
nikhilraut 已提交
1076

Z
zengyawen 已提交
1077
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1078 1079 1080

**参数:**

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

1085 1086 1087 1088
**返回值:**

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

M
mali 已提交
1091 1092 1093 1094 1095 1096 1097 1098 1099
**错误码:**

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

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

N
nikhilraut 已提交
1100 1101
**示例:**

Z
zengyawen 已提交
1102
```js
1103 1104 1105
try {
    captureSession.removeInput(cameraInput);
} catch (error) {
1106
    // 失败返回错误码error.code并处理
1107 1108
    console.log(error.code);
}
N
nikhilraut 已提交
1109 1110
```

J
jiangminyang 已提交
1111
### addOutput
N
nikhilraut 已提交
1112

C
cold_yixiu 已提交
1113
addOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1114

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

Z
zengyawen 已提交
1117
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1118 1119 1120

**参数:**

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

1125 1126 1127 1128
**返回值:**

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

M
mali 已提交
1131 1132 1133 1134 1135 1136 1137 1138 1139
**错误码:**

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

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

N
nikhilraut 已提交
1140 1141
**示例:**

Z
zengyawen 已提交
1142
```js
1143
try {
C
cold_yixiu 已提交
1144
    captureSession.addOutput(cameraOutput);
1145
} catch (error) {
1146
    // 失败返回错误码error.code并处理
1147 1148
    console.log(error.code);
}
N
nikhilraut 已提交
1149 1150
```

Z
zengyawen 已提交
1151
### removeOutput
N
nikhilraut 已提交
1152

C
cold_yixiu 已提交
1153
removeOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1154

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

Z
zengyawen 已提交
1157
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1158 1159 1160

**参数:**

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

1165 1166 1167 1168
**返回值:**

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

M
mali 已提交
1171 1172 1173 1174 1175 1176 1177 1178 1179
**错误码:**

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

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

N
nikhilraut 已提交
1180 1181
**示例:**

Z
zengyawen 已提交
1182
```js
1183 1184 1185
try {
    captureSession.removeOutput(previewOutput);
} catch (error) {
1186
    // 失败返回错误码error.code并处理
1187 1188
    console.log(error.code);
}
N
nikhilraut 已提交
1189 1190
```

J
jiangminyang 已提交
1191
### start
N
nikhilraut 已提交
1192

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

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

Z
zengyawen 已提交
1197
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1198 1199 1200

**参数:**

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

M
mali 已提交
1205 1206 1207 1208 1209 1210 1211 1212 1213
**错误码:**

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

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

N
nikhilraut 已提交
1214 1215
**示例:**

Z
zengyawen 已提交
1216
```js
J
jiangminyang 已提交
1217
captureSession.start((err) => {
N
nikhilraut 已提交
1218
    if (err) {
1219
        console.error(`Failed to start the session ${err.code}`);
N
nikhilraut 已提交
1220 1221
        return;
    }
J
jiangminyang 已提交
1222
    console.log('Callback invoked to indicate the session start success.');
N
nikhilraut 已提交
1223 1224 1225
});
```

J
jiangminyang 已提交
1226
### start
N
nikhilraut 已提交
1227

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

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

Z
zengyawen 已提交
1232
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1233 1234 1235

**返回值:**

J
jiangminyang 已提交
1236 1237
| 类型            | 说明                     |
| -------------- | ------------------------ |
C
cold_yixiu 已提交
1238
| Promise\<void\> | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
1239

M
mali 已提交
1240 1241 1242 1243 1244 1245 1246 1247 1248
**错误码:**

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

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

N
nikhilraut 已提交
1249 1250
**示例:**

Z
zengyawen 已提交
1251
```js
J
jiangminyang 已提交
1252 1253
captureSession.start().then(() => {
    console.log('Promise returned to indicate the session start success.');
1254 1255 1256
}).catch((err) => {
    console.error(`Failed to start the session ${err.code}`);
});
N
nikhilraut 已提交
1257 1258
```

J
jiangminyang 已提交
1259
### stop
N
nikhilraut 已提交
1260

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

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

Z
zengyawen 已提交
1265
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1266 1267 1268

**参数:**

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

M
mali 已提交
1273 1274 1275 1276 1277 1278 1279 1280
**错误码:**

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

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

N
nikhilraut 已提交
1281 1282
**示例:**

Z
zengyawen 已提交
1283
```js
J
jiangminyang 已提交
1284
captureSession.stop((err) => {
N
nikhilraut 已提交
1285
    if (err) {
1286
        console.error(`Failed to stop the session ${err.code}`);
N
nikhilraut 已提交
1287 1288
        return;
    }
J
jiangminyang 已提交
1289
    console.log('Callback invoked to indicate the session stop success.');
N
nikhilraut 已提交
1290 1291 1292
});
```

J
jiangminyang 已提交
1293
### stop
N
nikhilraut 已提交
1294

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

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

Z
zengyawen 已提交
1299
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1300 1301 1302

**返回值:**

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

M
mali 已提交
1307 1308 1309 1310 1311 1312 1313 1314
**错误码:**

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

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

N
nikhilraut 已提交
1315 1316
**示例:**

Z
zengyawen 已提交
1317
```js
J
jiangminyang 已提交
1318 1319
captureSession.stop().then(() => {
    console.log('Promise returned to indicate the session stop success.');
1320 1321 1322
}).catch((err) => {
    console.error(`Failed to stop the session ${err.code}`);
});
N
nikhilraut 已提交
1323 1324
```

Z
zengyawen 已提交
1325
### release
N
nikhilraut 已提交
1326

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

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

Z
zengyawen 已提交
1331
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1332 1333

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

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

M
mali 已提交
1339 1340 1341 1342 1343 1344 1345 1346
**错误码:**

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

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

N
nikhilraut 已提交
1347 1348
**示例:**

Z
zengyawen 已提交
1349
```js
N
nikhilraut 已提交
1350 1351
captureSession.release((err) => {
    if (err) {
1352
        console.error(`Failed to release the CaptureSession instance ${err.code}`);
N
nikhilraut 已提交
1353 1354 1355 1356 1357 1358
        return;
    }
    console.log('Callback invoked to indicate that the CaptureSession instance is released successfully.');
});
```

Z
zengyawen 已提交
1359
### release
N
nikhilraut 已提交
1360

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

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

Z
zengyawen 已提交
1365
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1366 1367 1368

**返回值:**

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

M
mali 已提交
1373 1374 1375 1376 1377 1378 1379 1380
**错误码:**

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

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

N
nikhilraut 已提交
1381 1382
**示例:**

Z
zengyawen 已提交
1383
```js
N
nikhilraut 已提交
1384 1385
captureSession.release().then(() => {
    console.log('Promise returned to indicate that the CaptureSession instance is released successfully.');
1386 1387 1388
}).catch((err) => {
    console.error(`Failed to release the CaptureSession instance ${err.code}`);
});
N
nikhilraut 已提交
1389 1390
```

J
jiangminyang 已提交
1391
### hasFlash
N
nikhilraut 已提交
1392

1393
hasFlash(): boolean
N
nikhilraut 已提交
1394

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

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

J
jiangminyang 已提交
1399
**返回值:**
Z
zengyawen 已提交
1400

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

M
mali 已提交
1405 1406 1407 1408 1409 1410 1411 1412
**错误码:**

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

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

J
jiangminyang 已提交
1413
**示例:**
Z
zengyawen 已提交
1414

J
jiangminyang 已提交
1415
```js
1416 1417 1418
try {
    let status = captureSession.hasFlash();
} catch (error) {
1419
    // 失败返回错误码error.code并处理
1420 1421
    console.log(error.code);
}
J
jiangminyang 已提交
1422
```
N
nikhilraut 已提交
1423

J
jiangminyang 已提交
1424
### isFlashModeSupported
Z
zengyawen 已提交
1425

1426
isFlashModeSupported(flashMode: FlashMode): boolean
N
nikhilraut 已提交
1427

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

Z
zengyawen 已提交
1430
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1431 1432 1433

**参数:**

M
mali 已提交
1434
| 参数名       | 类型                     | 必填 | 说明                               |
J
jiangminyang 已提交
1435 1436
| --------- | ----------------------- | ---- | --------------------------------- |
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。                     |
N
nikhilraut 已提交
1437 1438 1439

**返回值:**

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

M
mali 已提交
1444 1445 1446 1447 1448 1449 1450 1451
**错误码:**

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

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

N
nikhilraut 已提交
1452 1453
**示例:**

Z
zengyawen 已提交
1454
```js
1455 1456 1457
try {
    let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1458
    // 失败返回错误码error.code并处理
1459 1460
    console.log(error.code);
}
N
nikhilraut 已提交
1461 1462
```

J
jiangminyang 已提交
1463
### setFlashMode
N
nikhilraut 已提交
1464

1465
setFlashMode(flashMode: FlashMode): void
N
nikhilraut 已提交
1466

1467
设置闪光灯模式。
N
nikhilraut 已提交
1468

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

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

Z
zengyawen 已提交
1474
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1475 1476 1477

**参数:**

M
mali 已提交
1478
| 参数名       | 类型                     | 必填 | 说明                  |
J
jiangminyang 已提交
1479
| --------- | ----------------------- | ---- | --------------------- |
1480 1481 1482 1483 1484 1485
| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。       |

**返回值:**

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

M
mali 已提交
1488 1489 1490 1491 1492 1493 1494 1495
**错误码:**

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

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

N
nikhilraut 已提交
1496 1497
**示例:**

Z
zengyawen 已提交
1498
```js
1499 1500 1501
try {
    captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO);
} catch (error) {
1502
    // 失败返回错误码error.code并处理
1503 1504
    console.log(error.code);
}
N
nikhilraut 已提交
1505 1506
```

1507
### getFlashMode
J
jiangminyang 已提交
1508

1509
getFlashMode(): FlashMode
J
jiangminyang 已提交
1510

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

Z
zengyawen 已提交
1513
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
1514 1515 1516

**返回值:**

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

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

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

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

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

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

J
jiangminyang 已提交
1540
### isExposureModeSupported
J
jiangminyang 已提交
1541

1542
isExposureModeSupported(aeMode: ExposureMode): boolean;
J
jiangminyang 已提交
1543

1544
检测曝光模式是否支持。
Z
zengyawen 已提交
1545 1546 1547

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

J
jiangminyang 已提交
1548
**参数:**
J
jiangminyang 已提交
1549

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

J
jiangminyang 已提交
1554
**返回值:**
Z
zengyawen 已提交
1555

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

M
mali 已提交
1560 1561 1562 1563 1564 1565 1566 1567
**错误码:**

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

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

J
jiangminyang 已提交
1568 1569 1570
**示例:**

```js
1571 1572 1573
try {
    let isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
} catch (error) {
1574
    // 失败返回错误码error.code并处理
1575 1576
    console.log(error.code);
}
J
jiangminyang 已提交
1577 1578
```

J
jiangminyang 已提交
1579
### getExposureMode
J
jiangminyang 已提交
1580

1581
getExposureMode(): ExposureMode
J
jiangminyang 已提交
1582

1583
获取当前曝光模式。
Z
zengyawen 已提交
1584

J
jiangminyang 已提交
1585 1586 1587 1588
**系统能力:** SystemCapability.Multimedia.Camera.Core

**返回值:**

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

M
mali 已提交
1593 1594 1595 1596 1597 1598 1599 1600
**错误码:**

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

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

J
jiangminyang 已提交
1601 1602 1603
**示例:**

```js
1604 1605 1606
try {
    let exposureMode = captureSession.getExposureMode();
} catch (error) {
1607
    // 失败返回错误码error.code并处理
1608 1609
    console.log(error.code);
}
J
jiangminyang 已提交
1610
```
N
nikhilraut 已提交
1611

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

1614
setExposureMode(aeMode: ExposureMode): void
N
nikhilraut 已提交
1615

1616
设置曝光模式。
N
nikhilraut 已提交
1617

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

J
jiangminyang 已提交
1620
**参数:**
N
nikhilraut 已提交
1621

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

1626 1627 1628 1629
**返回值:**

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

M
mali 已提交
1632 1633 1634 1635 1636 1637 1638 1639
**错误码:**

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

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

J
jiangminyang 已提交
1640 1641 1642
**示例:**

```js
1643 1644 1645
try {
    captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
} catch (error) {
1646
    // 失败返回错误码error.code并处理
1647 1648
    console.log(error.code);
}
J
jiangminyang 已提交
1649 1650
```

J
jiangminyang 已提交
1651
### getMeteringPoint
J
jiangminyang 已提交
1652

1653
getMeteringPoint(): Point
J
jiangminyang 已提交
1654

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

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

J
jiangminyang 已提交
1659
**返回值:**
N
nikhilraut 已提交
1660

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

M
mali 已提交
1665 1666 1667 1668 1669 1670 1671 1672
**错误码:**

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

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

J
jiangminyang 已提交
1673 1674 1675
**示例:**

```js
1676 1677 1678
try {
    let exposurePoint = captureSession.getMeteringPoint();
} catch (error) {
1679
    // 失败返回错误码error.code并处理
1680 1681
    console.log(error.code);
}
J
jiangminyang 已提交
1682 1683
```

J
jiangminyang 已提交
1684
### setMeteringPoint
J
jiangminyang 已提交
1685

1686
setMeteringPoint(point: Point): void
J
jiangminyang 已提交
1687

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

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

J
jiangminyang 已提交
1695 1696
**参数:**

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

1701 1702 1703 1704
**返回值:**

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

M
mali 已提交
1707 1708 1709 1710 1711 1712 1713 1714
**错误码:**

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

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

J
jiangminyang 已提交
1715 1716 1717
**示例:**

```js
1718 1719 1720 1721
const exposurePoint = {x: 1, y: 1};
try {
    captureSession.setMeteringPoint(exposurePoint);
} catch (error) {
1722
    // 失败返回错误码error.code并处理
1723 1724
    console.log(error.code);
}
J
jiangminyang 已提交
1725 1726 1727 1728
```

### getExposureBiasRange

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

1731
查询曝光补偿范围。
J
jiangminyang 已提交
1732 1733 1734 1735 1736

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

**返回值:**

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

M
mali 已提交
1741 1742 1743 1744 1745 1746 1747 1748
**错误码:**

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

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

J
jiangminyang 已提交
1749 1750 1751
**示例:**

```js
1752 1753 1754
try {
    let biasRangeArray = captureSession.getExposureBiasRange();
} catch (error) {
1755
    // 失败返回错误码error.code并处理
1756 1757
    console.log(error.code);
}
J
jiangminyang 已提交
1758 1759 1760 1761
```

### setExposureBias

1762
setExposureBias(exposureBias: number): void
J
jiangminyang 已提交
1763

C
cold_yixiu 已提交
1764
设置曝光补偿,曝光补偿值(EV)。
J
jiangminyang 已提交
1765 1766 1767 1768 1769 1770 1771

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

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

**参数:**

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

M
mali 已提交
1776 1777 1778 1779 1780 1781 1782 1783
**错误码:**

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

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

J
jiangminyang 已提交
1784 1785 1786
**示例:**

```js
M
mali 已提交
1787
let exposureBias = biasRangeArray[0];
1788 1789 1790
try {
    captureSession.setExposureBias(exposureBias);
} catch (error) {
1791
    // 失败返回错误码error.code并处理
1792 1793
    console.log(error.code);
}
J
jiangminyang 已提交
1794 1795 1796 1797
```

### getExposureValue

1798
getExposureValue(): number
J
jiangminyang 已提交
1799

1800
查询当前曝光值。
J
jiangminyang 已提交
1801 1802 1803 1804 1805

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

**返回值:**

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

M
mali 已提交
1810 1811 1812 1813 1814 1815 1816 1817
**错误码:**

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

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

J
jiangminyang 已提交
1818 1819 1820
**示例:**

```js
1821 1822 1823
try {
    let exposureValue = captureSession.getExposureValue();
} catch (error) {
1824
    // 失败返回错误码error.code并处理
1825 1826
    console.log(error.code);
}
J
jiangminyang 已提交
1827 1828 1829 1830
```

### isFocusModeSupported

1831
isFocusModeSupported(afMode: FocusMode): boolean
J
jiangminyang 已提交
1832

1833
检测对焦模式是否支持。
J
jiangminyang 已提交
1834 1835 1836 1837 1838

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

**参数:**

M
mali 已提交
1839
| 参数名      | 类型                     | 必填 | 说明                              |
J
jiangminyang 已提交
1840 1841 1842 1843 1844
| -------- | ----------------------- | ---- | -------------------------------- |
| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。                    |

**返回值:**

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

M
mali 已提交
1849 1850 1851 1852 1853 1854 1855 1856
**错误码:**

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

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

J
jiangminyang 已提交
1857 1858 1859
**示例:**

```js
1860 1861 1862
try {
    let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
1863
    // 失败返回错误码error.code并处理
1864 1865
    console.log(error.code);
}
J
jiangminyang 已提交
1866 1867 1868 1869
```

### setFocusMode

1870
setFocusMode(afMode: FocusMode): void
J
jiangminyang 已提交
1871

1872
设置对焦模式。
J
jiangminyang 已提交
1873

J
jiangminyang 已提交
1874
进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)
J
jiangminyang 已提交
1875 1876 1877 1878 1879

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

**参数:**

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

1884 1885 1886 1887
**返回值:**

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

M
mali 已提交
1890 1891 1892 1893 1894 1895 1896 1897
**错误码:**

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

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

J
jiangminyang 已提交
1898 1899 1900
**示例:**

```js
1901 1902 1903
try {
    captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO);
} catch (error) {
1904
    // 失败返回错误码error.code并处理
1905 1906
    console.log(error.code);
}
J
jiangminyang 已提交
1907 1908 1909 1910
```

### getFocusMode

1911
getFocusMode(): FocusMode
J
jiangminyang 已提交
1912

1913
获取当前的对焦模式。
J
jiangminyang 已提交
1914 1915 1916 1917 1918

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

**返回值:**

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

M
mali 已提交
1923 1924 1925 1926 1927 1928 1929 1930
**错误码:**

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

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

J
jiangminyang 已提交
1931 1932 1933
**示例:**

```js
1934 1935 1936
try {
    let afMode = captureSession.getFocusMode();
} catch (error) {
1937
    // 失败返回错误码error.code并处理
1938 1939
    console.log(error.code);
}
J
jiangminyang 已提交
1940 1941 1942 1943
```

### setFocusPoint

1944
setFocusPoint(point: Point): void
J
jiangminyang 已提交
1945

C
cold_yixiu 已提交
1946 1947 1948 1949
设置焦点,焦点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。
此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以
设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y},
则转换后的坐标点为{y/h,1-x/w}。
J
jiangminyang 已提交
1950 1951 1952 1953 1954

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

**参数:**

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

1959 1960 1961 1962
**返回值:**

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

M
mali 已提交
1965 1966 1967 1968 1969 1970 1971 1972
**错误码:**

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

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

J
jiangminyang 已提交
1973 1974 1975 1976
**示例:**

```js
const Point1 = {x: 1, y: 1};
1977 1978 1979
try {
    captureSession.setFocusPoint(Point1);
} catch (error) {
1980
    // 失败返回错误码error.code并处理
1981 1982
    console.log(error.code);
}
J
jiangminyang 已提交
1983 1984 1985 1986
```

### getFocusPoint

1987
getFocusPoint(): Point
J
jiangminyang 已提交
1988

1989
查询焦点。
J
jiangminyang 已提交
1990 1991 1992 1993 1994

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

**返回值:**

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

M
mali 已提交
1999 2000 2001 2002 2003 2004 2005 2006
**错误码:**

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

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

J
jiangminyang 已提交
2007 2008 2009
**示例:**

```js
2010 2011 2012
try {
    let point = captureSession.getFocusPoint();
} catch (error) {
2013
    // 失败返回错误码error.code并处理
2014 2015
    console.log(error.code);
}
J
jiangminyang 已提交
2016 2017 2018 2019
```

### getFocalLength

2020
getFocalLength(): number
J
jiangminyang 已提交
2021

2022
查询焦距值。
J
jiangminyang 已提交
2023 2024 2025 2026 2027

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

**返回值:**

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

M
mali 已提交
2032 2033 2034 2035 2036 2037 2038 2039
**错误码:**

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

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

J
jiangminyang 已提交
2040 2041 2042
**示例:**

```js
2043 2044 2045
try {
    let focalLength = captureSession.getFocalLength();
} catch (error) {
2046
    // 失败返回错误码error.code并处理
2047 2048
    console.log(error.code);
}
J
jiangminyang 已提交
2049 2050 2051 2052
```

### getZoomRatioRange

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

2055
获取支持的变焦范围。
J
jiangminyang 已提交
2056 2057 2058

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

2059
**返回值:**
J
jiangminyang 已提交
2060

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

M
mali 已提交
2065 2066 2067 2068 2069 2070 2071 2072
**错误码:**

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

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

J
jiangminyang 已提交
2073 2074 2075
**示例:**

```js
2076 2077 2078
try {
    let zoomRatioRange = captureSession.getZoomRatioRange();
} catch (error) {
2079
    // 失败返回错误码error.code并处理
2080 2081
    console.log(error.code);
}
J
jiangminyang 已提交
2082 2083
```

2084
### setZoomRatio
J
jiangminyang 已提交
2085

2086
setZoomRatio(zoomRatio: number): void
J
jiangminyang 已提交
2087

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

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

2092
**参数:**
J
jiangminyang 已提交
2093

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

2098 2099 2100 2101
**返回值:**

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

M
mali 已提交
2104 2105 2106 2107 2108 2109 2110 2111
**错误码:**

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

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

J
jiangminyang 已提交
2112 2113 2114
**示例:**

```js
2115 2116 2117 2118
let zoomRatio = zoomRatioRange[0];
try {
    captureSession.setZoomRatio(zoomRatio);
} catch (error) {
2119
    // 失败返回错误码error.code并处理
2120 2121
    console.log(error.code);
}
J
jiangminyang 已提交
2122 2123
```

2124
### getZoomRatio
J
jiangminyang 已提交
2125

2126
getZoomRatio(): number
J
jiangminyang 已提交
2127

2128
获取当前的变焦比。
J
jiangminyang 已提交
2129 2130 2131

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

2132
**返回值:**
J
jiangminyang 已提交
2133

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

M
mali 已提交
2138 2139 2140 2141 2142 2143 2144 2145
**错误码:**

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

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

J
jiangminyang 已提交
2146 2147 2148
**示例:**

```js
2149 2150 2151
try {
    let zoomRatio = captureSession.getZoomRatio();
} catch (error) {
2152
    // 失败返回错误码error.code并处理
2153 2154
    console.log(error.code);
}
J
jiangminyang 已提交
2155 2156
```

2157
### isVideoStabilizationModeSupported
J
jiangminyang 已提交
2158

2159
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean
J
jiangminyang 已提交
2160

2161
查询是否支持指定的视频防抖模式。
J
jiangminyang 已提交
2162 2163 2164

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

2165 2166 2167 2168 2169 2170
**参数:**

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

J
jiangminyang 已提交
2171 2172
**返回值:**

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

M
mali 已提交
2177 2178 2179 2180 2181 2182 2183 2184
**错误码:**

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

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

J
jiangminyang 已提交
2185 2186 2187
**示例:**

```js
2188 2189 2190
try {
    let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF);
} catch (error) {
2191
    // 失败返回错误码error.code并处理
2192 2193
    console.log(error.code);
}
J
jiangminyang 已提交
2194 2195
```

2196
### getActiveVideoStabilizationMode
J
jiangminyang 已提交
2197

2198
getActiveVideoStabilizationMode(): VideoStabilizationMode
J
jiangminyang 已提交
2199

2200
查询当前正在使用的视频防抖模式。
J
jiangminyang 已提交
2201 2202 2203

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

2204
**返回值:**
J
jiangminyang 已提交
2205

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

M
mali 已提交
2210 2211 2212 2213 2214 2215 2216 2217
**错误码:**

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

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

J
jiangminyang 已提交
2218 2219 2220
**示例:**

```js
2221 2222 2223
try {
    let vsMode = captureSession.getActiveVideoStabilizationMode();
} catch (error) {
2224
    // 失败返回错误码error.code并处理
2225 2226
    console.log(error.code);
}
J
jiangminyang 已提交
2227 2228 2229 2230
```

### setVideoStabilizationMode

2231
setVideoStabilizationMode(mode: VideoStabilizationMode): void
J
jiangminyang 已提交
2232

2233
设置视频防抖模式。
J
jiangminyang 已提交
2234 2235 2236 2237 2238

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

**参数:**

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

2243 2244 2245 2246
**返回值:**

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

M
mali 已提交
2249 2250 2251 2252 2253 2254 2255 2256
**错误码:**

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

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

J
jiangminyang 已提交
2257 2258 2259
**示例:**

```js
2260 2261 2262
try {
    captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF);
} catch (error) {
2263
    // 失败返回错误码error.code并处理
2264 2265
    console.log(error.code);
}
J
jiangminyang 已提交
2266 2267 2268 2269
```

### on('focusStateChange')

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

2272
监听相机聚焦的状态变化,通过注册回调函数获取结果。
J
jiangminyang 已提交
2273 2274 2275 2276 2277

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

**参数:**

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

**示例:**

```js
J
jiangminyang 已提交
2286
captureSession.on('focusStateChange', (focusState) => {
J
jiangminyang 已提交
2287 2288 2289 2290 2291 2292
    console.log(`Focus state  : ${focusState}`);
})
```

### on('error')

C
cold_yixiu 已提交
2293
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
2294 2295 2296 2297 2298 2299 2300

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

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

**参数:**

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

**示例:**

```js
2309 2310
captureSession.on('error', (error) => {
    console.log(`Capture session error code: ${error.code}`);
J
jiangminyang 已提交
2311 2312 2313 2314 2315 2316 2317
})
```

## CameraOutput

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

M
mali 已提交
2318
## PreviewOutput
J
jiangminyang 已提交
2319

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

M
mali 已提交
2322 2323
### start

C
cold_yixiu 已提交
2324
start(callback: AsyncCallback\<void\>): void
M
mali 已提交
2325 2326

开始输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
2327 2328 2329 2330 2331

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

**参数:**

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

M
mali 已提交
2336 2337 2338 2339 2340 2341 2342 2343
**错误码:**

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

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

J
jiangminyang 已提交
2344 2345 2346
**示例:**

```js
M
mali 已提交
2347
previewOutput.start((err) => {
J
jiangminyang 已提交
2348
    if (err) {
2349
        console.error(`Failed to start the previewOutput. ${err.code}`);
J
jiangminyang 已提交
2350 2351
        return;
    }
M
mali 已提交
2352 2353
    console.log('Callback returned with previewOutput started.');
})
J
jiangminyang 已提交
2354 2355
```

M
mali 已提交
2356
### start
J
jiangminyang 已提交
2357

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

M
mali 已提交
2360
开始输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
2361 2362 2363 2364 2365 2366 2367

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

**返回值:**

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

M
mali 已提交
2370 2371 2372 2373 2374 2375 2376 2377
**错误码:**

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

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

J
jiangminyang 已提交
2378 2379 2380
**示例:**

```js
M
mali 已提交
2381 2382
previewOutput.start().then(() => {
    console.log('Promise returned with previewOutput started.');
2383 2384 2385
}).catch((err) => {
    console.log('Failed to previewOutput start '+ err.code);
});
J
jiangminyang 已提交
2386 2387
```

M
mali 已提交
2388
### stop
J
jiangminyang 已提交
2389

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

M
mali 已提交
2392
停止输出预览流,通过注册回调函数获取结果。
J
jiangminyang 已提交
2393 2394 2395 2396 2397

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

**参数:**

M
mali 已提交
2398
| 参数名      | 类型                  | 必填 | 说明                 |
J
jiangminyang 已提交
2399
| -------- | -------------------- | ---- | -------------------- |
C
cold_yixiu 已提交
2400
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
J
jiangminyang 已提交
2401 2402 2403 2404

**示例:**

```js
M
mali 已提交
2405
previewOutput.stop((err) => {
J
jiangminyang 已提交
2406
    if (err) {
2407
        console.error(`Failed to stop the previewOutput. ${err.code}`);
J
jiangminyang 已提交
2408 2409
        return;
    }
M
mali 已提交
2410
    console.log('Callback returned with previewOutput stopped.');
J
jiangminyang 已提交
2411 2412 2413
})
```

M
mali 已提交
2414
### stop
J
jiangminyang 已提交
2415

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

M
mali 已提交
2418
停止输出预览流,通过Promise获取结果。
J
jiangminyang 已提交
2419 2420 2421 2422 2423 2424

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

**返回值:**

| 类型            | 说明                     |
M
mali 已提交
2425
| -------------- | ------------------------ |
C
cold_yixiu 已提交
2426
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
2427 2428 2429 2430

**示例:**

```js
M
mali 已提交
2431 2432
previewOutput.stop().then(() => {
    console.log('Callback returned with previewOutput stopped.');
2433
}).catch((err) => {
2434
    console.log('Failed to previewOutput stop '+ err.code);
2435
});
J
jiangminyang 已提交
2436 2437
```

M
mali 已提交
2438
### release
J
jiangminyang 已提交
2439

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

M
mali 已提交
2442
释放输出资源,通过注册回调函数获取结果。
J
jiangminyang 已提交
2443 2444 2445 2446 2447

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

**参数:**

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

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

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

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

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

```js
M
mali 已提交
2463
previewOutput.release((err) => {
J
jiangminyang 已提交
2464
    if (err) {
2465
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
J
jiangminyang 已提交
2466 2467
        return;
    }
M
mali 已提交
2468 2469
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
J
jiangminyang 已提交
2470 2471
```

M
mali 已提交
2472
### release
J
jiangminyang 已提交
2473

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

M
mali 已提交
2476
释放输出资源,通过Promise获取结果。
J
jiangminyang 已提交
2477 2478 2479 2480 2481 2482

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

**返回值:**

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

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

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

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

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

```js
M
mali 已提交
2497 2498
previewOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
2499 2500 2501
}).catch((err) => {
    console.log('Failed to previewOutput release '+ err.code);
});
J
jiangminyang 已提交
2502 2503 2504 2505
```

### on('frameStart')

C
cold_yixiu 已提交
2506
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2507 2508 2509 2510 2511 2512 2513

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

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

**参数:**

M
mali 已提交
2514
| 参数名      | 类型                  | 必填 | 说明                                     |
J
jiangminyang 已提交
2515
| -------- | -------------------- | ---- | --------------------------------------- |
2516
| type     | string               | 是   | 监听事件,固定为'frameStart',previewOutput创建成功可监听。底层第一次开始曝光时触发该事件并返回 |
C
cold_yixiu 已提交
2517
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览开始                     |
J
jiangminyang 已提交
2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528

**示例:**

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

### on('frameEnd')

C
cold_yixiu 已提交
2529
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2530 2531 2532 2533 2534 2535 2536

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

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

**参数:**

M
mali 已提交
2537
| 参数名      | 类型                  | 必填 | 说明                                  |
J
jiangminyang 已提交
2538
| -------- | -------------------- | ---- | ------------------------------------- |
2539
| type     | string               | 是   | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。预览完全结束最后一帧时触发该事件并返回, |
C
cold_yixiu 已提交
2540
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览结束                 |
J
jiangminyang 已提交
2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551

**示例:**

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

### on('error')

C
cold_yixiu 已提交
2552
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
2553 2554 2555 2556 2557 2558 2559

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

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

**参数:**

2560 2561
| 参数名     | 类型         | 必填 | 说明                       |
| -------- | --------------| ---- | ------------------------ |
2562
| type     | string        | 是   | 监听事件,固定为'error',previewOutput创建成功可监听。预览接口使用错误时触发该事件,比如调用(start(),release())等接口发生错误时返回对应错误信息。|
C
cold_yixiu 已提交
2563
| callback | ErrorCallback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)  |
J
jiangminyang 已提交
2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587

**示例:**

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

## ImageRotation

枚举,图片旋转角度。

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

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

## Location

J
jiangminyang 已提交
2588
图片地理位置信息。
J
jiangminyang 已提交
2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612

**系统能力:** 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 已提交
2613
拍摄照片的设置。
J
jiangminyang 已提交
2614 2615 2616

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

M
mali 已提交
2617 2618 2619 2620 2621 2622
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
| quality  | [QualityLevel](#qualitylevel)   | 否   | 图片质量。         |
| rotation | [ImageRotation](#imagerotation) | 否   | 图片旋转角度。      |
| location | [Location](#location)           | 否   | 图片地理位置信息。   |
| mirror   | boolean                         | 否   |镜像使能开关(默认关)。 |
J
jiangminyang 已提交
2623 2624 2625

## PhotoOutput

M
mali 已提交
2626
拍照会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
2627 2628 2629

### capture

C
cold_yixiu 已提交
2630
capture(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2631 2632 2633 2634 2635 2636 2637

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

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

**参数:**

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

M
mali 已提交
2642 2643 2644 2645 2646 2647 2648 2649 2650
**错误码:**

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

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

J
jiangminyang 已提交
2651 2652 2653 2654 2655
**示例:**

```js
photoOutput.capture((err) => {
    if (err) {
2656
        console.error(`Failed to capture the photo ${err.code}`);
J
jiangminyang 已提交
2657 2658 2659 2660 2661 2662 2663 2664
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
```

### capture

C
cold_yixiu 已提交
2665
capture(): Promise\<void\>
2666 2667 2668 2669 2670 2671 2672 2673 2674

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

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

**返回值:**

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

M
mali 已提交
2677 2678 2679 2680 2681 2682 2683 2684 2685
**错误码:**

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

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

2686 2687 2688 2689 2690
**示例:**

```js
photoOutput.capture().then(() => {
    console.log('Promise returned to indicate that photo capture request success.');
2691 2692 2693
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
2694 2695 2696 2697
```

### capture

C
cold_yixiu 已提交
2698
capture(setting: PhotoCaptureSetting, callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2699 2700 2701 2702 2703 2704 2705

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

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

**参数:**

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

M
mali 已提交
2711 2712 2713 2714 2715 2716 2717 2718 2719 2720
**错误码:**

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

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

J
jiangminyang 已提交
2721 2722 2723
**示例:**

```js
M
mali 已提交
2724 2725 2726 2727 2728 2729 2730 2731 2732 2733
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 已提交
2734 2735
}
photoOutput.capture(settings, (err) => {
Z
zengyawen 已提交
2736
    if (err) {
2737
        console.error(`Failed to capture the photo ${err.code}`);
Z
zengyawen 已提交
2738 2739 2740 2741
        return;
    }
    console.log('Callback invoked to indicate the photo capture request success.');
});
J
jiangminyang 已提交
2742 2743
```

J
jiangminyang 已提交
2744 2745
### capture

C
cold_yixiu 已提交
2746
capture(setting?: PhotoCaptureSetting): Promise\<void\>
J
jiangminyang 已提交
2747 2748 2749 2750 2751 2752 2753

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

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

**参数:**

M
mali 已提交
2754
| 参数名     | 类型                                         | 必填 | 说明      |
J
jiangminyang 已提交
2755
| ------- | ------------------------------------------- | ---- | -------- |
M
review  
mali 已提交
2756
| setting | [PhotoCaptureSetting](#photocapturesetting) | 否   | 拍照设置,传入undefined类型数据按默认无参处理。 |
J
jiangminyang 已提交
2757 2758 2759 2760 2761

**返回值:**

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

M
mali 已提交
2764 2765 2766 2767 2768 2769 2770 2771 2772
**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400101                |  Parameter missing or parameter type incorrect        |
| 7400104                |  Session not running.                                  |
| 7400201                |  Camera service fatal error.                           |
J
jiangminyang 已提交
2773 2774 2775 2776

**示例:**

```js
2777
photoOutput.capture(settings).then(() => {
J
jiangminyang 已提交
2778
    console.log('Promise returned to indicate that photo capture request success.');
2779 2780 2781
}).catch((err) => {
    console.log('Failed to photoOutput capture '+ err.code);
});
J
jiangminyang 已提交
2782 2783 2784 2785
```

### isMirrorSupported

2786
isMirrorSupported(): boolean
J
jiangminyang 已提交
2787

2788
查询是否支持镜像拍照。
J
jiangminyang 已提交
2789 2790 2791

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

2792
**返回值:**
J
jiangminyang 已提交
2793

2794 2795
| 类型            | 说明                     |
| -------------- | ----------------------- |
2796
| boolean | 返回是否支持镜像拍照。 |
J
jiangminyang 已提交
2797 2798 2799 2800

**示例:**

```js
2801
let isSupported = photoOutput.isMirrorSupported();
J
jiangminyang 已提交
2802 2803
```

M
mali 已提交
2804 2805
### release

C
cold_yixiu 已提交
2806
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
2807 2808 2809 2810 2811 2812 2813 2814 2815

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

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

**参数:**

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

M
mali 已提交
2818 2819 2820 2821 2822 2823 2824 2825
**错误码:**

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

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

M
mali 已提交
2826 2827 2828 2829 2830
**示例:**

```js
photoOutput.release((err) => {
    if (err) {
2831
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
2832 2833 2834 2835 2836 2837 2838 2839
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
2840
release(): Promise\<void\>
M
mali 已提交
2841 2842 2843 2844 2845 2846 2847 2848 2849

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

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

**返回值:**

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

M
mali 已提交
2852 2853 2854 2855 2856 2857 2858 2859
**错误码:**

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

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

M
mali 已提交
2860 2861 2862 2863 2864
**示例:**

```js
photoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
2865 2866 2867
}).catch((err) => {
    console.log('Failed to photoOutput release '+ err.code);
});
M
mali 已提交
2868 2869
```

J
jiangminyang 已提交
2870 2871
### on('captureStart')

C
cold_yixiu 已提交
2872
on(type: 'captureStart', callback: AsyncCallback\<number\>): void
J
jiangminyang 已提交
2873 2874 2875 2876 2877 2878 2879

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

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

**参数:**

M
mali 已提交
2880
| 参数名      | 类型                    | 必填 | 说明                                       |
J
jiangminyang 已提交
2881
| -------- | ---------------------- | ---- | ------------------------------------------ |
2882
| type     | string                 | 是   | 监听事件,固定为'captureStart',photoOutput创建成功后可监听。每次拍照,底层开始曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
2883
| callback | AsyncCallback\<number\> | 是   | 使用callback的方式获取Capture ID。            |
J
jiangminyang 已提交
2884 2885 2886 2887

**示例:**

```js
2888
photoOutput.on('captureStart', (captureId) => {
J
jiangminyang 已提交
2889 2890 2891 2892 2893 2894
    console.log(`photo capture stated, captureId : ${captureId}`);
})
```

### on('frameShutter')

C
cold_yixiu 已提交
2895
on(type: 'frameShutter', callback: AsyncCallback\<FrameShutterInfo\>): void
J
jiangminyang 已提交
2896 2897 2898 2899 2900 2901 2902

监听拍照帧输出捕获,通过注册回调函数获取结果。

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

**参数:**

2903 2904
| 参数名     | 类型      | 必填 | 说明                                  |
| -------- | ---------- | --- | ------------------------------------ |
2905
| type     | string     | 是   | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 |
C
cold_yixiu 已提交
2906
| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。该回调返回意味着可以再次下发拍照请求。             |
J
jiangminyang 已提交
2907 2908 2909 2910

**示例:**

```js
2911
photoOutput.on('frameShutter', (frameShutterInfo) => {
J
jiangminyang 已提交
2912 2913 2914 2915 2916 2917
    console.log(`photo capture end, captureId : ${frameShutterInfo.captureId}`);
    console.log(`Timestamp for frame : ${frameShutterInfo.timestamp}`);
})
```

### on('captureEnd')
J
jiangminyang 已提交
2918

C
cold_yixiu 已提交
2919
on(type: 'captureEnd', callback: AsyncCallback\<CaptureEndInfo\>): void
J
jiangminyang 已提交
2920

J
jiangminyang 已提交
2921
监听拍照结束,通过注册回调函数获取结果。
J
jiangminyang 已提交
2922 2923 2924 2925 2926

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

**参数:**

2927 2928
| 参数名     | 类型           | 必填 | 说明                                       |
| -------- | --------------- | ---- | ---------------------------------------- |
2929
| type     | string          | 是   | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 |
C
cold_yixiu 已提交
2930
| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                  |
J
jiangminyang 已提交
2931

J
jiangminyang 已提交
2932
**示例:**
J
jiangminyang 已提交
2933

J
jiangminyang 已提交
2934
```js
2935
photoOutput.on('captureEnd', (captureEndInfo) => {
J
jiangminyang 已提交
2936 2937 2938 2939 2940 2941 2942
    console.log(`photo capture end, captureId : ${captureEndInfo.captureId}`);
    console.log(`frameCount : ${captureEndInfo.frameCount}`);
})
```

### on('error')

C
cold_yixiu 已提交
2943
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
2944 2945

监听拍照输出发生错误,通过注册回调函数获取结果。
J
jiangminyang 已提交
2946

J
jiangminyang 已提交
2947 2948 2949 2950
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

2951 2952
| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
2953
| type     | string       | 是   | 监听事件,固定为'error',photoOutput创建成功后可监听。拍照接口调用时出现错误触发该事件并返回错误信息。 |
C
cold_yixiu 已提交
2954
| callback | ErrorCallback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)             |
J
jiangminyang 已提交
2955 2956 2957 2958

**示例:**

```js
2959
photoOutput.on('error', (error) => {
2960
    console.log(`Photo output error code: ${error.code}`);
J
jiangminyang 已提交
2961 2962 2963
})
```

J
jiangminyang 已提交
2964
## FrameShutterInfo
J
jiangminyang 已提交
2965

J
jiangminyang 已提交
2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987
拍照帧输出信息。

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

| 名称      | 类型   | 必填 | 说明         |
| --------- | ------ | ---- | ---------- |
| captureId | number | 是   | 拍照的ID。  |
| timestamp | number | 是   | 快门时间戳。 |

## CaptureEndInfo

拍照停止信息。

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

| 名称       | 类型   | 必填 | 说明       |
| ---------- | ------ | ---- | ---------|
| captureId  | number | 是   | 拍照的ID。 |
| frameCount | number | 是   | 帧数。    |

## VideoOutput

M
mali 已提交
2988
录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
2989 2990 2991

### start

C
cold_yixiu 已提交
2992
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2993 2994

启动录制,通过注册回调函数获取结果。
J
jiangminyang 已提交
2995 2996 2997 2998 2999

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

**参数:**

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

M
mali 已提交
3004 3005 3006 3007 3008 3009 3010 3011 3012
**错误码:**

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

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

J
jiangminyang 已提交
3013 3014 3015
**示例:**

```js
J
jiangminyang 已提交
3016
videoOutput.start((err) => {
N
nikhilraut 已提交
3017
    if (err) {
3018
        console.error(`Failed to start the video output ${err.code}`);
N
nikhilraut 已提交
3019 3020
        return;
    }
J
jiangminyang 已提交
3021
    console.log('Callback invoked to indicate the video output start success.');
N
nikhilraut 已提交
3022 3023 3024
});
```

J
jiangminyang 已提交
3025
### start
N
nikhilraut 已提交
3026

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

J
jiangminyang 已提交
3029
启动录制,通过Promise获取结果。
N
nikhilraut 已提交
3030

Z
zengyawen 已提交
3031
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3032 3033 3034

**返回值:**

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

M
mali 已提交
3039 3040 3041 3042 3043 3044 3045 3046
**错误码:**

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |
N
nikhilraut 已提交
3047 3048 3049

**示例:**

Z
zengyawen 已提交
3050
```js
J
jiangminyang 已提交
3051 3052
videoOutput.start().then(() => {
    console.log('Promise returned to indicate that start method execution success.');
3053 3054 3055
}).catch((err) => {
    console.log('Failed to videoOutput start '+ err.code);
});
N
nikhilraut 已提交
3056 3057
```

J
jiangminyang 已提交
3058
### stop
N
nikhilraut 已提交
3059

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

J
jiangminyang 已提交
3062
结束录制,通过注册回调函数获取结果。
N
nikhilraut 已提交
3063

Z
zengyawen 已提交
3064
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3065 3066 3067

**参数:**

M
mali 已提交
3068
| 参数名     | 类型                 | 必填 | 说明                     |
J
jiangminyang 已提交
3069
| -------- | -------------------- | ---- | ------------------------ |
C
cold_yixiu 已提交
3070
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
3071 3072 3073

**示例:**

Z
zengyawen 已提交
3074
```js
J
jiangminyang 已提交
3075 3076
videoOutput.stop((err) => {
    if (err) {
3077
        console.error(`Failed to stop the video output ${err.code}`);
J
jiangminyang 已提交
3078 3079 3080 3081
        return;
    }
    console.log('Callback invoked to indicate the video output stop success.');
});
Z
zengyawen 已提交
3082
```
N
nikhilraut 已提交
3083

J
jiangminyang 已提交
3084
### stop
N
nikhilraut 已提交
3085

C
cold_yixiu 已提交
3086
stop(): Promise\<void\>
J
jiangminyang 已提交
3087 3088 3089 3090 3091 3092 3093 3094 3095

结束录制,通过Promise获取结果。

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

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
3096
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
3097 3098 3099 3100 3101 3102

**示例:**

```js
videoOutput.stop().then(() => {
    console.log('Promise returned to indicate that stop method execution success.');
3103
}).catch((err) => {
3104
    console.log('Failed to videoOutput stop '+ err.code);
3105
});
3106
```
J
jiangminyang 已提交
3107

M
mali 已提交
3108 3109
### release

C
cold_yixiu 已提交
3110
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
3111 3112 3113 3114 3115 3116 3117 3118 3119

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

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

**参数:**

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

M
mali 已提交
3122 3123 3124 3125 3126 3127 3128 3129
**错误码:**

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

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

M
mali 已提交
3130 3131 3132 3133 3134
**示例:**

```js
videoOutput.release((err) => {
    if (err) {
3135
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
3136 3137 3138 3139 3140 3141 3142 3143
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
3144
release(): Promise\<void\>
M
mali 已提交
3145 3146 3147 3148 3149 3150 3151 3152 3153

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

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

**返回值:**

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

M
mali 已提交
3156 3157 3158 3159 3160 3161 3162 3163
**错误码:**

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

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

M
mali 已提交
3164 3165 3166 3167 3168
**示例:**

```js
videoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3169 3170 3171
}).catch((err) => {
    console.log('Failed to videoOutput release '+ err.code);
});
M
mali 已提交
3172 3173
```

J
jiangminyang 已提交
3174 3175
### on('frameStart')

C
cold_yixiu 已提交
3176
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3177

J
jiangminyang 已提交
3178
监听录像开始,通过注册回调函数获取结果。
N
nikhilraut 已提交
3179

Z
zengyawen 已提交
3180
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3181 3182 3183

**参数:**

M
mali 已提交
3184
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
3185
| -------- | -------------------- | ---- | ----------------------------------------- |
3186
| type     | string               | 是   | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。底层第一次曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
3187
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。  只要有该事件返回就证明录像开始                     |
N
nikhilraut 已提交
3188 3189 3190

**示例:**

Z
zengyawen 已提交
3191
```js
J
jiangminyang 已提交
3192 3193
videoOutput.on('frameStart', () => {
    console.log('Video frame started');
N
nikhilraut 已提交
3194 3195 3196
})
```

J
jiangminyang 已提交
3197
### on('frameEnd')
N
nikhilraut 已提交
3198

C
cold_yixiu 已提交
3199
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3200

J
jiangminyang 已提交
3201
监听录像结束,通过注册回调函数获取结果。
N
nikhilraut 已提交
3202

Z
zengyawen 已提交
3203
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3204 3205 3206

**参数:**

M
mali 已提交
3207
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
3208
| -------- | -------------------- | ---- | ------------------------------------------ |
3209
| type     | string               | 是   | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。录像完全结束最后一帧时触发该事件并返回  。 |
C
cold_yixiu 已提交
3210
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 只要有该事件返回就证明录像结束                      |
N
nikhilraut 已提交
3211 3212 3213

**示例:**

Z
zengyawen 已提交
3214
```js
J
jiangminyang 已提交
3215 3216
videoOutput.on('frameEnd', () => {
    console.log('Video frame ended');
N
nikhilraut 已提交
3217 3218 3219
})
```

J
jiangminyang 已提交
3220
### on('error')
N
nikhilraut 已提交
3221

C
cold_yixiu 已提交
3222
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
N
nikhilraut 已提交
3223

J
jiangminyang 已提交
3224
监听录像输出发生错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
3225

Z
zengyawen 已提交
3226
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3227 3228 3229

**参数:**

3230 3231
| 参数名     | 类型       | 必填 | 说明                                    |
| -------- | ----------- | ---- | -------------------------------------- |
3232
| type     | string      | 是   | 监听事件,固定为'error',videoOutput创建成功后可监听。录像接口调用出现错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时出现错误返回对应错误信息。 |
C
cold_yixiu 已提交
3233
| callback | Callback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)                 |
N
nikhilraut 已提交
3234 3235 3236

**示例:**

Z
zengyawen 已提交
3237
```js
3238 3239
videoOutput.on('error', (error) => {
    console.log(`Video output error code: ${error.code}`);
N
nikhilraut 已提交
3240 3241 3242
})
```

M
mali 已提交
3243
## MetadataOutput
N
nikhilraut 已提交
3244

M
mali 已提交
3245
metadata流。继承[CameraOutput](#cameraoutput)
N
nikhilraut 已提交
3246

M
mali 已提交
3247
### start
J
jiangminyang 已提交
3248

C
cold_yixiu 已提交
3249
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3250

M
mali 已提交
3251
开始输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
3252

Z
zengyawen 已提交
3253
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3254 3255 3256

**参数:**

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

M
mali 已提交
3261 3262 3263 3264 3265 3266 3267 3268 3269
**错误码:**

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

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

N
nikhilraut 已提交
3270 3271
**示例:**

Z
zengyawen 已提交
3272
```js
M
mali 已提交
3273
metadataOutput.start((err) => {
N
nikhilraut 已提交
3274
    if (err) {
3275
        console.error(`Failed to start metadataOutput. ${err.code}`);
N
nikhilraut 已提交
3276 3277
        return;
    }
M
mali 已提交
3278
    console.log('Callback returned with metadataOutput started.');
J
jiangminyang 已提交
3279
})
Z
zengyawen 已提交
3280
```
N
nikhilraut 已提交
3281

M
mali 已提交
3282
### start
N
nikhilraut 已提交
3283

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

M
mali 已提交
3286
开始输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
3287

Z
zengyawen 已提交
3288
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3289 3290 3291

**返回值:**

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

M
mali 已提交
3296 3297 3298 3299 3300 3301 3302 3303 3304
**错误码:**

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

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

N
nikhilraut 已提交
3305 3306
**示例:**

Z
zengyawen 已提交
3307
```js
M
mali 已提交
3308 3309
metadataOutput.start().then(() => {
    console.log('Callback returned with metadataOutput started.');
3310 3311 3312
}).catch((err) => {
    console.log('Failed to metadataOutput start '+ err.code);
});
N
nikhilraut 已提交
3313 3314
```

M
mali 已提交
3315
### stop
N
nikhilraut 已提交
3316

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

M
mali 已提交
3319
停止输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
3320

Z
zengyawen 已提交
3321
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3322 3323 3324

**参数:**

M
mali 已提交
3325 3326
| 参数名     | 类型                         | 必填 | 说明                  |
| -------- | -------------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
3327
| callback | AsyncCallback\<void\>       | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
3328 3329 3330

**示例:**

Z
zengyawen 已提交
3331
```js
M
mali 已提交
3332
metadataOutput.stop((err) => {
N
nikhilraut 已提交
3333
    if (err) {
3334
        console.error(`Failed to stop the metadataOutput. ${err.code}`);
N
nikhilraut 已提交
3335 3336
        return;
    }
M
mali 已提交
3337
    console.log('Callback returned with metadataOutput stopped.');
J
jiangminyang 已提交
3338
})
N
nikhilraut 已提交
3339 3340
```

M
mali 已提交
3341
### stop
N
nikhilraut 已提交
3342

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

M
mali 已提交
3345
停止输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
3346

Z
zengyawen 已提交
3347
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3348 3349 3350

**返回值:**

M
mali 已提交
3351 3352
| 类型                    | 说明                        |
| ----------------------  | --------------------------- |
C
cold_yixiu 已提交
3353
| Promise\<void\>         | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
3354 3355 3356

**示例:**

Z
zengyawen 已提交
3357
```js
M
mali 已提交
3358 3359
metadataOutput.stop().then(() => {
    console.log('Callback returned with metadataOutput stopped.');
3360
}).catch((err) => {
3361
    console.log('Failed to metadataOutput stop '+ err.code);
3362
});
N
nikhilraut 已提交
3363 3364
```

M
mali 已提交
3365
### on('metadataObjectsAvailable')
N
nikhilraut 已提交
3366

C
cold_yixiu 已提交
3367
on(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObject\>\>): void
N
nikhilraut 已提交
3368

M
mali 已提交
3369
监听检测到的metadata对象,通过注册回调函数获取结果。
N
nikhilraut 已提交
3370

Z
zengyawen 已提交
3371
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3372 3373 3374

**参数:**

3375 3376 3377
| 参数名      | 类型         | 必填 | 说明                                  |
| -------- | -------------- | ---- | ------------------------------------ |
| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据 |
C
cold_yixiu 已提交
3378
| callback | Callback\<Array\<[MetadataObject](#metadataobject)\>\> | 是   | 回调函数,用于获取metadata数据。 |
N
nikhilraut 已提交
3379 3380 3381

**示例:**

Z
zengyawen 已提交
3382
```js
M
mali 已提交
3383 3384
metadataOutput.on('metadataObjectsAvailable', (metadataObjectArr) => {
    console.log(`metadata output metadataObjectsAvailable`);
J
jiangminyang 已提交
3385
})
N
nikhilraut 已提交
3386 3387
```

M
mali 已提交
3388
### on('error')
N
nikhilraut 已提交
3389

C
cold_yixiu 已提交
3390
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
N
nikhilraut 已提交
3391

M
mali 已提交
3392
监听metadata流的错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
3393

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

M
mali 已提交
3396
**参数:**
N
nikhilraut 已提交
3397

3398 3399
| 参数名     | 类型         | 必填 | 说明                                     |
| -------- | ------------- | ---- | --------------------------------------- |
3400
| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时发生错误返回对应错误信息。 |
C
cold_yixiu 已提交
3401
| callback | Callback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)            |
N
nikhilraut 已提交
3402 3403 3404

**示例:**

Z
zengyawen 已提交
3405
```js
M
mali 已提交
3406 3407
metadataOutput.on('error', (metadataOutputError) => {
    console.log(`Metadata output error code: ${metadataOutputError.code}`);
N
nikhilraut 已提交
3408 3409 3410
})
```

M
mali 已提交
3411 3412 3413 3414 3415 3416 3417 3418
## MetadataObjectType

枚举,metadata流。

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

| 名称                       | 值   | 说明              |
| ------------------------- | ---- | ----------------- |
C
cold_yixiu 已提交
3419
| FACE_DETECTION            | 0    | metadata对象类型,人脸检测。检测点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。<br> 此坐标系是以设备充电口在右侧时的横向设备方向为基准的,<br> 例如应用的预览界面布局以设备充电口在下侧时的竖向方向为基准,<br> 布局宽高为{w,h}, 返回点为{x,y},则转换后的坐标点为{1-y,x}。 |
M
mali 已提交
3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435

## Rect

矩形定义。

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

| 名称      | 类型   |      必填     |           说明                 |
| -------- | ------ | --------------- | -------------------- |
| topLeftX | number |        是          | 矩形区域左上角x坐标。   |
| topLeftY | number |         是          | 矩形区域左上角y坐标。   |
| width    | number |         是         | 矩形宽。              |
| height   | number |         是           |矩形高。              |

## MetadataObject

M
mali 已提交
3436
相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取
M
mali 已提交
3437

C
cold_yixiu 已提交
3438 3439
**系统能力:** SystemCapability.Multimedia.Camera.Core

3440 3441
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
3442 3443 3444
| type  | [MetadataObjectType](#metadataobjecttype)   | 否   | metadata 类型,目前只有人脸识别。 |
| timestamp | number | 否   | 当前时间戳(毫秒)。 |
| boundingBox | [Rect](#rect)           | 否   | metadata 区域框 |