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 637 638
## HostDeviceType

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

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

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

J
jiangminyang 已提交
645 646 647 648 649 650
## CameraDevice

相机设备信息。

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

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

## Size

枚举,输出能力查询。

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

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

## Point

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

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

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

## CameraFormat

枚举,输出格式。

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

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

## CameraInput

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

### open

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

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

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

**参数:**

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

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

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

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

N
nikhilraut 已提交
722 723
**示例:**

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

J
jiangminyang 已提交
734
### open
N
nikhilraut 已提交
735

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

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

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

**返回值:**

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

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

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

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

N
nikhilraut 已提交
758 759
**示例:**

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

J
jiangminyang 已提交
768
### close
N
nikhilraut 已提交
769

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

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

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

**参数:**

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

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

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

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

N
nikhilraut 已提交
790 791
**示例:**

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

### close

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

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

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
824 825 826 827 828
**示例:**

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

834
### on('error')
J
jiangminyang 已提交
835

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

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

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

**参数:**

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

**示例:**

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

859
## FlashMode
J
jiangminyang 已提交
860

861
枚举,闪光灯模式。
J
jiangminyang 已提交
862

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

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

872
## ExposureMode
N
nikhilraut 已提交
873

J
jiangminyang 已提交
874
枚举,曝光模式。
N
nikhilraut 已提交
875

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

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

J
jiangminyang 已提交
884
 ## FocusMode
N
nikhilraut 已提交
885

J
jiangminyang 已提交
886
枚举,焦距模式。
N
nikhilraut 已提交
887

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

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

J
jiangminyang 已提交
897
## FocusState
N
nikhilraut 已提交
898

J
jiangminyang 已提交
899
枚举,焦距状态。
Z
zengyawen 已提交
900

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

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

J
jiangminyang 已提交
909
## VideoStabilizationMode
Z
zengyawen 已提交
910

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

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

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

J
jiangminyang 已提交
923
## CaptureSession
N
nikhilraut 已提交
924

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

Z
zengyawen 已提交
927
### beginConfig
N
nikhilraut 已提交
928

929
beginConfig(): void
N
nikhilraut 已提交
930

931
开始配置会话。
N
nikhilraut 已提交
932

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

935 936 937 938
**返回值:**

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

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

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

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

N
nikhilraut 已提交
949 950
**示例:**

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

Z
zengyawen 已提交
960
### commitConfig
N
nikhilraut 已提交
961

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

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

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

**参数:**

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

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

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

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

N
nikhilraut 已提交
983 984
**示例:**

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

Z
zengyawen 已提交
995
### commitConfig
N
nikhilraut 已提交
996

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

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

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

**返回值:**

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

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

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

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

N
nikhilraut 已提交
1018 1019
**示例:**

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

J
jiangminyang 已提交
1029
### addInput
N
nikhilraut 已提交
1030

1031
addInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1032

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

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

**参数:**

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

1043 1044 1045 1046
**返回值:**

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

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

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

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

N
nikhilraut 已提交
1058 1059
**示例:**

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

J
jiangminyang 已提交
1069
### removeInput
N
nikhilraut 已提交
1070

1071
removeInput(cameraInput: CameraInput): void
N
nikhilraut 已提交
1072

1073
移除[CameraInput](#camerainput)
N
nikhilraut 已提交
1074

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

**参数:**

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

1083 1084 1085 1086
**返回值:**

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

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

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

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

N
nikhilraut 已提交
1098 1099
**示例:**

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

J
jiangminyang 已提交
1109
### addOutput
N
nikhilraut 已提交
1110

C
cold_yixiu 已提交
1111
addOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1112

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

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

**参数:**

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

1123 1124 1125 1126
**返回值:**

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

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

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

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

N
nikhilraut 已提交
1138 1139
**示例:**

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

Z
zengyawen 已提交
1149
### removeOutput
N
nikhilraut 已提交
1150

C
cold_yixiu 已提交
1151
removeOutput(cameraOutput: CameraOutput): void
N
nikhilraut 已提交
1152

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

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

**参数:**

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

1163 1164 1165 1166
**返回值:**

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

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

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

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

N
nikhilraut 已提交
1178 1179
**示例:**

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

J
jiangminyang 已提交
1189
### start
N
nikhilraut 已提交
1190

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

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

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

**参数:**

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

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

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

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

N
nikhilraut 已提交
1212 1213
**示例:**

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

J
jiangminyang 已提交
1224
### start
N
nikhilraut 已提交
1225

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

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

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

**返回值:**

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

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

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

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

N
nikhilraut 已提交
1247 1248
**示例:**

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

J
jiangminyang 已提交
1257
### stop
N
nikhilraut 已提交
1258

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

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

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

**参数:**

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

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

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

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

N
nikhilraut 已提交
1279 1280
**示例:**

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

J
jiangminyang 已提交
1291
### stop
N
nikhilraut 已提交
1292

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

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

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

**返回值:**

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

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

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

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

N
nikhilraut 已提交
1313 1314
**示例:**

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

Z
zengyawen 已提交
1323
### release
N
nikhilraut 已提交
1324

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

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

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

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

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

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

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

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

N
nikhilraut 已提交
1345 1346
**示例:**

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

Z
zengyawen 已提交
1357
### release
N
nikhilraut 已提交
1358

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

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

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

**返回值:**

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

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

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

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

N
nikhilraut 已提交
1379 1380
**示例:**

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

J
jiangminyang 已提交
1389
### hasFlash
N
nikhilraut 已提交
1390

1391
hasFlash(): boolean
N
nikhilraut 已提交
1392

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

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

J
jiangminyang 已提交
1397
**返回值:**
Z
zengyawen 已提交
1398

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

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

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

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

J
jiangminyang 已提交
1411
**示例:**
Z
zengyawen 已提交
1412

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

J
jiangminyang 已提交
1422
### isFlashModeSupported
Z
zengyawen 已提交
1423

1424
isFlashModeSupported(flashMode: FlashMode): boolean
N
nikhilraut 已提交
1425

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

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

**参数:**

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

**返回值:**

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

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

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

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

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

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

J
jiangminyang 已提交
1461
### setFlashMode
N
nikhilraut 已提交
1462

1463
setFlashMode(flashMode: FlashMode): void
N
nikhilraut 已提交
1464

1465
设置闪光灯模式。
N
nikhilraut 已提交
1466

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

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

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

**参数:**

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

**返回值:**

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

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

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

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

N
nikhilraut 已提交
1494 1495
**示例:**

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

1505
### getFlashMode
J
jiangminyang 已提交
1506

1507
getFlashMode(): FlashMode
J
jiangminyang 已提交
1508

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

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

**返回值:**

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

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

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

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

N
nikhilraut 已提交
1527 1528
**示例:**

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

J
jiangminyang 已提交
1538
### isExposureModeSupported
J
jiangminyang 已提交
1539

1540
isExposureModeSupported(aeMode: ExposureMode): boolean;
J
jiangminyang 已提交
1541

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

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

J
jiangminyang 已提交
1546
**参数:**
J
jiangminyang 已提交
1547

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

J
jiangminyang 已提交
1552
**返回值:**
Z
zengyawen 已提交
1553

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

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

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

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

J
jiangminyang 已提交
1566 1567 1568
**示例:**

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

J
jiangminyang 已提交
1577
### getExposureMode
J
jiangminyang 已提交
1578

1579
getExposureMode(): ExposureMode
J
jiangminyang 已提交
1580

1581
获取当前曝光模式。
Z
zengyawen 已提交
1582

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
1599 1600 1601
**示例:**

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

J
jiangminyang 已提交
1610
### setExposureMode
N
nikhilraut 已提交
1611

1612
setExposureMode(aeMode: ExposureMode): void
N
nikhilraut 已提交
1613

1614
设置曝光模式。
N
nikhilraut 已提交
1615

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

J
jiangminyang 已提交
1618
**参数:**
N
nikhilraut 已提交
1619

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

1624 1625 1626 1627
**返回值:**

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

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

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

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

J
jiangminyang 已提交
1638 1639 1640
**示例:**

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

J
jiangminyang 已提交
1649
### getMeteringPoint
J
jiangminyang 已提交
1650

1651
getMeteringPoint(): Point
J
jiangminyang 已提交
1652

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

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

J
jiangminyang 已提交
1657
**返回值:**
N
nikhilraut 已提交
1658

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

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

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

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

J
jiangminyang 已提交
1671 1672 1673
**示例:**

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

J
jiangminyang 已提交
1682
### setMeteringPoint
J
jiangminyang 已提交
1683

1684
setMeteringPoint(point: Point): void
J
jiangminyang 已提交
1685

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

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

J
jiangminyang 已提交
1693 1694
**参数:**

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

1699 1700 1701 1702
**返回值:**

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

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

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

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

J
jiangminyang 已提交
1713 1714 1715
**示例:**

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

### getExposureBiasRange

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

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

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
1747 1748 1749
**示例:**

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

### setExposureBias

1760
setExposureBias(exposureBias: number): void
J
jiangminyang 已提交
1761

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

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

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

**参数:**

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

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

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

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

J
jiangminyang 已提交
1782 1783 1784
**示例:**

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

### getExposureValue

1796
getExposureValue(): number
J
jiangminyang 已提交
1797

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

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
1816 1817 1818
**示例:**

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

### isFocusModeSupported

1829
isFocusModeSupported(afMode: FocusMode): boolean
J
jiangminyang 已提交
1830

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

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

**参数:**

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
1855 1856 1857
**示例:**

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

### setFocusMode

1868
setFocusMode(afMode: FocusMode): void
J
jiangminyang 已提交
1869

1870
设置对焦模式。
J
jiangminyang 已提交
1871

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

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

**参数:**

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

1882 1883 1884 1885
**返回值:**

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

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

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

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

J
jiangminyang 已提交
1896 1897 1898
**示例:**

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

### getFocusMode

1909
getFocusMode(): FocusMode
J
jiangminyang 已提交
1910

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

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
1929 1930 1931
**示例:**

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

### setFocusPoint

1942
setFocusPoint(point: Point): void
J
jiangminyang 已提交
1943

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

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

**参数:**

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

1957 1958 1959 1960
**返回值:**

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

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

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

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

J
jiangminyang 已提交
1971 1972 1973 1974
**示例:**

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

### getFocusPoint

1985
getFocusPoint(): Point
J
jiangminyang 已提交
1986

1987
查询焦点。
J
jiangminyang 已提交
1988 1989 1990 1991 1992

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
2005 2006 2007
**示例:**

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

### getFocalLength

2018
getFocalLength(): number
J
jiangminyang 已提交
2019

2020
查询焦距值。
J
jiangminyang 已提交
2021 2022 2023 2024 2025

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
2038 2039 2040
**示例:**

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

### getZoomRatioRange

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

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

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

2057
**返回值:**
J
jiangminyang 已提交
2058

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

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

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

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

J
jiangminyang 已提交
2071 2072 2073
**示例:**

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

2082
### setZoomRatio
J
jiangminyang 已提交
2083

2084
setZoomRatio(zoomRatio: number): void
J
jiangminyang 已提交
2085

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

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

2090
**参数:**
J
jiangminyang 已提交
2091

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

2096 2097 2098 2099
**返回值:**

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

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

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

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

J
jiangminyang 已提交
2110 2111 2112
**示例:**

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

2122
### getZoomRatio
J
jiangminyang 已提交
2123

2124
getZoomRatio(): number
J
jiangminyang 已提交
2125

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

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

2130
**返回值:**
J
jiangminyang 已提交
2131

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

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

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

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

J
jiangminyang 已提交
2144 2145 2146
**示例:**

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

2155
### isVideoStabilizationModeSupported
J
jiangminyang 已提交
2156

2157
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean
J
jiangminyang 已提交
2158

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

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

2163 2164 2165 2166 2167 2168
**参数:**

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

J
jiangminyang 已提交
2169 2170
**返回值:**

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

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

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

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

J
jiangminyang 已提交
2183 2184 2185
**示例:**

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

2194
### getActiveVideoStabilizationMode
J
jiangminyang 已提交
2195

2196
getActiveVideoStabilizationMode(): VideoStabilizationMode
J
jiangminyang 已提交
2197

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

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

2202
**返回值:**
J
jiangminyang 已提交
2203

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

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

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

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

J
jiangminyang 已提交
2216 2217 2218
**示例:**

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

### setVideoStabilizationMode

2229
setVideoStabilizationMode(mode: VideoStabilizationMode): void
J
jiangminyang 已提交
2230

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

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

**参数:**

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

2241 2242 2243 2244
**返回值:**

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

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

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

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

J
jiangminyang 已提交
2255 2256 2257
**示例:**

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

### on('focusStateChange')

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

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

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

**参数:**

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

**示例:**

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

### on('error')

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

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

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

**参数:**

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

**示例:**

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

## CameraOutput

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

M
mali 已提交
2316
## PreviewOutput
J
jiangminyang 已提交
2317

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

M
mali 已提交
2320 2321
### start

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

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

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

**参数:**

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

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

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

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

J
jiangminyang 已提交
2342 2343 2344
**示例:**

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

M
mali 已提交
2354
### start
J
jiangminyang 已提交
2355

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

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

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
2376 2377 2378
**示例:**

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

M
mali 已提交
2386
### stop
J
jiangminyang 已提交
2387

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

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

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

**参数:**

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

**示例:**

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

M
mali 已提交
2412
### stop
J
jiangminyang 已提交
2413

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

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

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

**返回值:**

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

**示例:**

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

M
mali 已提交
2436
### release
J
jiangminyang 已提交
2437

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

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

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

**参数:**

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

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

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

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

J
jiangminyang 已提交
2458 2459 2460
**示例:**

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

M
mali 已提交
2470
### release
J
jiangminyang 已提交
2471

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

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

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

**返回值:**

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

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

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

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

J
jiangminyang 已提交
2492 2493 2494
**示例:**

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

### on('frameStart')

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

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

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

**参数:**

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

**示例:**

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

### on('frameEnd')

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

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

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

**参数:**

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

**示例:**

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

### on('error')

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

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

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

**参数:**

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

**示例:**

```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 已提交
2586
图片地理位置信息。
J
jiangminyang 已提交
2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610

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

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

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

## PhotoOutput

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

### capture

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

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

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

**参数:**

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

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

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

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

J
jiangminyang 已提交
2649 2650 2651 2652 2653
**示例:**

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

### capture

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

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

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

**返回值:**

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

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

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

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

2684 2685 2686 2687 2688
**示例:**

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

### capture

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

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

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

**参数:**

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

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

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

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

J
jiangminyang 已提交
2719 2720 2721
**示例:**

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

J
jiangminyang 已提交
2742 2743
### capture

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

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

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

**参数:**

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

**返回值:**

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

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

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

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

**示例:**

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

### isMirrorSupported

2784
isMirrorSupported(): boolean
J
jiangminyang 已提交
2785

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

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

2790
**返回值:**
J
jiangminyang 已提交
2791

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

**示例:**

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

M
mali 已提交
2802 2803
### release

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

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

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

**参数:**

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

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

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

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

M
mali 已提交
2824 2825 2826 2827 2828
**示例:**

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

### release

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

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

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

**返回值:**

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

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

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

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

M
mali 已提交
2858 2859 2860 2861 2862
**示例:**

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

J
jiangminyang 已提交
2868 2869
### on('captureStart')

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

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

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

**参数:**

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

**示例:**

```js
2886
photoOutput.on('captureStart', (captureId) => {
J
jiangminyang 已提交
2887 2888 2889 2890 2891 2892
    console.log(`photo capture stated, captureId : ${captureId}`);
})
```

### on('frameShutter')

C
cold_yixiu 已提交
2893
on(type: 'frameShutter', callback: AsyncCallback\<FrameShutterInfo\>): void
J
jiangminyang 已提交
2894 2895 2896 2897 2898 2899 2900

监听拍照帧输出捕获,通过注册回调函数获取结果。

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

**参数:**

2901 2902
| 参数名     | 类型      | 必填 | 说明                                  |
| -------- | ---------- | --- | ------------------------------------ |
2903
| type     | string     | 是   | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 |
C
cold_yixiu 已提交
2904
| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。该回调返回意味着可以再次下发拍照请求。             |
J
jiangminyang 已提交
2905 2906 2907 2908

**示例:**

```js
2909
photoOutput.on('frameShutter', (frameShutterInfo) => {
J
jiangminyang 已提交
2910 2911 2912 2913 2914 2915
    console.log(`photo capture end, captureId : ${frameShutterInfo.captureId}`);
    console.log(`Timestamp for frame : ${frameShutterInfo.timestamp}`);
})
```

### on('captureEnd')
J
jiangminyang 已提交
2916

C
cold_yixiu 已提交
2917
on(type: 'captureEnd', callback: AsyncCallback\<CaptureEndInfo\>): void
J
jiangminyang 已提交
2918

J
jiangminyang 已提交
2919
监听拍照结束,通过注册回调函数获取结果。
J
jiangminyang 已提交
2920 2921 2922 2923 2924

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

**参数:**

2925 2926
| 参数名     | 类型           | 必填 | 说明                                       |
| -------- | --------------- | ---- | ---------------------------------------- |
2927
| type     | string          | 是   | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 |
C
cold_yixiu 已提交
2928
| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                  |
J
jiangminyang 已提交
2929

J
jiangminyang 已提交
2930
**示例:**
J
jiangminyang 已提交
2931

J
jiangminyang 已提交
2932
```js
2933
photoOutput.on('captureEnd', (captureEndInfo) => {
J
jiangminyang 已提交
2934 2935 2936 2937 2938 2939 2940
    console.log(`photo capture end, captureId : ${captureEndInfo.captureId}`);
    console.log(`frameCount : ${captureEndInfo.frameCount}`);
})
```

### on('error')

C
cold_yixiu 已提交
2941
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
J
jiangminyang 已提交
2942 2943

监听拍照输出发生错误,通过注册回调函数获取结果。
J
jiangminyang 已提交
2944

J
jiangminyang 已提交
2945 2946 2947 2948
**系统能力:** SystemCapability.Multimedia.Camera.Core

**参数:**

2949 2950
| 参数名     | 类型         | 必填 | 说明                                 |
| -------- | ------------- | ---- | ----------------------------------- |
2951
| type     | string       | 是   | 监听事件,固定为'error',photoOutput创建成功后可监听。拍照接口调用时出现错误触发该事件并返回错误信息。 |
C
cold_yixiu 已提交
2952
| callback | ErrorCallback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)             |
J
jiangminyang 已提交
2953 2954 2955 2956

**示例:**

```js
2957
photoOutput.on('error', (error) => {
2958
    console.log(`Photo output error code: ${error.code}`);
J
jiangminyang 已提交
2959 2960 2961
})
```

J
jiangminyang 已提交
2962
## FrameShutterInfo
J
jiangminyang 已提交
2963

J
jiangminyang 已提交
2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985
拍照帧输出信息。

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

| 名称      | 类型   | 必填 | 说明         |
| --------- | ------ | ---- | ---------- |
| captureId | number | 是   | 拍照的ID。  |
| timestamp | number | 是   | 快门时间戳。 |

## CaptureEndInfo

拍照停止信息。

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

| 名称       | 类型   | 必填 | 说明       |
| ---------- | ------ | ---- | ---------|
| captureId  | number | 是   | 拍照的ID。 |
| frameCount | number | 是   | 帧数。    |

## VideoOutput

M
mali 已提交
2986
录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
J
jiangminyang 已提交
2987 2988 2989

### start

C
cold_yixiu 已提交
2990
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
2991 2992

启动录制,通过注册回调函数获取结果。
J
jiangminyang 已提交
2993 2994 2995 2996 2997

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

**参数:**

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

M
mali 已提交
3002 3003 3004 3005 3006 3007 3008 3009 3010
**错误码:**

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

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

J
jiangminyang 已提交
3011 3012 3013
**示例:**

```js
J
jiangminyang 已提交
3014
videoOutput.start((err) => {
N
nikhilraut 已提交
3015
    if (err) {
3016
        console.error(`Failed to start the video output ${err.code}`);
N
nikhilraut 已提交
3017 3018
        return;
    }
J
jiangminyang 已提交
3019
    console.log('Callback invoked to indicate the video output start success.');
N
nikhilraut 已提交
3020 3021 3022
});
```

J
jiangminyang 已提交
3023
### start
N
nikhilraut 已提交
3024

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

J
jiangminyang 已提交
3027
启动录制,通过Promise获取结果。
N
nikhilraut 已提交
3028

Z
zengyawen 已提交
3029
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3030 3031 3032

**返回值:**

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

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

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

| 错误码ID         | 错误信息        |
| --------------- | --------------- |
| 7400103                |  Session not config.                                   |
| 7400201                |  Camera service fatal error.                           |
N
nikhilraut 已提交
3045 3046 3047

**示例:**

Z
zengyawen 已提交
3048
```js
J
jiangminyang 已提交
3049 3050
videoOutput.start().then(() => {
    console.log('Promise returned to indicate that start method execution success.');
3051 3052 3053
}).catch((err) => {
    console.log('Failed to videoOutput start '+ err.code);
});
N
nikhilraut 已提交
3054 3055
```

J
jiangminyang 已提交
3056
### stop
N
nikhilraut 已提交
3057

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

J
jiangminyang 已提交
3060
结束录制,通过注册回调函数获取结果。
N
nikhilraut 已提交
3061

Z
zengyawen 已提交
3062
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3063 3064 3065

**参数:**

M
mali 已提交
3066
| 参数名     | 类型                 | 必填 | 说明                     |
J
jiangminyang 已提交
3067
| -------- | -------------------- | ---- | ------------------------ |
C
cold_yixiu 已提交
3068
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
3069 3070 3071

**示例:**

Z
zengyawen 已提交
3072
```js
J
jiangminyang 已提交
3073 3074
videoOutput.stop((err) => {
    if (err) {
3075
        console.error(`Failed to stop the video output ${err.code}`);
J
jiangminyang 已提交
3076 3077 3078 3079
        return;
    }
    console.log('Callback invoked to indicate the video output stop success.');
});
Z
zengyawen 已提交
3080
```
N
nikhilraut 已提交
3081

J
jiangminyang 已提交
3082
### stop
N
nikhilraut 已提交
3083

C
cold_yixiu 已提交
3084
stop(): Promise\<void\>
J
jiangminyang 已提交
3085 3086 3087 3088 3089 3090 3091 3092 3093

结束录制,通过Promise获取结果。

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

**返回值:**

| 类型            | 说明                     |
| -------------- | ----------------------- |
C
cold_yixiu 已提交
3094
| Promise\<void\> | 使用Promise的方式获取结果。 |
J
jiangminyang 已提交
3095 3096 3097 3098 3099 3100

**示例:**

```js
videoOutput.stop().then(() => {
    console.log('Promise returned to indicate that stop method execution success.');
3101
}).catch((err) => {
3102
    console.log('Failed to videoOutput stop '+ err.code);
3103
});
3104
```
J
jiangminyang 已提交
3105

M
mali 已提交
3106 3107
### release

C
cold_yixiu 已提交
3108
release(callback: AsyncCallback\<void\>): void
M
mali 已提交
3109 3110 3111 3112 3113 3114 3115 3116 3117

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

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

**参数:**

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

M
mali 已提交
3120 3121 3122 3123 3124 3125 3126 3127
**错误码:**

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

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

M
mali 已提交
3128 3129 3130 3131 3132
**示例:**

```js
videoOutput.release((err) => {
    if (err) {
3133
        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
M
mali 已提交
3134 3135 3136 3137 3138 3139 3140 3141
        return;
    }
    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
});
```

### release

C
cold_yixiu 已提交
3142
release(): Promise\<void\>
M
mali 已提交
3143 3144 3145 3146 3147 3148 3149 3150 3151

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

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

**返回值:**

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

M
mali 已提交
3154 3155 3156 3157 3158 3159 3160 3161
**错误码:**

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

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

M
mali 已提交
3162 3163 3164 3165 3166
**示例:**

```js
videoOutput.release().then(() => {
    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3167 3168 3169
}).catch((err) => {
    console.log('Failed to videoOutput release '+ err.code);
});
M
mali 已提交
3170 3171
```

J
jiangminyang 已提交
3172 3173
### on('frameStart')

C
cold_yixiu 已提交
3174
on(type: 'frameStart', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3175

J
jiangminyang 已提交
3176
监听录像开始,通过注册回调函数获取结果。
N
nikhilraut 已提交
3177

Z
zengyawen 已提交
3178
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3179 3180 3181

**参数:**

M
mali 已提交
3182
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
3183
| -------- | -------------------- | ---- | ----------------------------------------- |
3184
| type     | string               | 是   | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。底层第一次曝光时触发该事件并返回。 |
C
cold_yixiu 已提交
3185
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。  只要有该事件返回就证明录像开始                     |
N
nikhilraut 已提交
3186 3187 3188

**示例:**

Z
zengyawen 已提交
3189
```js
J
jiangminyang 已提交
3190 3191
videoOutput.on('frameStart', () => {
    console.log('Video frame started');
N
nikhilraut 已提交
3192 3193 3194
})
```

J
jiangminyang 已提交
3195
### on('frameEnd')
N
nikhilraut 已提交
3196

C
cold_yixiu 已提交
3197
on(type: 'frameEnd', callback: AsyncCallback\<void\>): void
N
nikhilraut 已提交
3198

J
jiangminyang 已提交
3199
监听录像结束,通过注册回调函数获取结果。
N
nikhilraut 已提交
3200

Z
zengyawen 已提交
3201
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3202 3203 3204

**参数:**

M
mali 已提交
3205
| 参数名      | 类型                  | 必填 | 说明                                       |
J
jiangminyang 已提交
3206
| -------- | -------------------- | ---- | ------------------------------------------ |
3207
| type     | string               | 是   | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。录像完全结束最后一帧时触发该事件并返回  。 |
C
cold_yixiu 已提交
3208
| callback | AsyncCallback\<void\> | 是   | 回调函数,用于获取结果。 只要有该事件返回就证明录像结束                      |
N
nikhilraut 已提交
3209 3210 3211

**示例:**

Z
zengyawen 已提交
3212
```js
J
jiangminyang 已提交
3213 3214
videoOutput.on('frameEnd', () => {
    console.log('Video frame ended');
N
nikhilraut 已提交
3215 3216 3217
})
```

J
jiangminyang 已提交
3218
### on('error')
N
nikhilraut 已提交
3219

C
cold_yixiu 已提交
3220
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
N
nikhilraut 已提交
3221

J
jiangminyang 已提交
3222
监听录像输出发生错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
3223

Z
zengyawen 已提交
3224
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3225 3226 3227

**参数:**

3228 3229
| 参数名     | 类型       | 必填 | 说明                                    |
| -------- | ----------- | ---- | -------------------------------------- |
3230
| type     | string      | 是   | 监听事件,固定为'error',videoOutput创建成功后可监听。录像接口调用出现错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时出现错误返回对应错误信息。 |
C
cold_yixiu 已提交
3231
| callback | Callback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)                 |
N
nikhilraut 已提交
3232 3233 3234

**示例:**

Z
zengyawen 已提交
3235
```js
3236 3237
videoOutput.on('error', (error) => {
    console.log(`Video output error code: ${error.code}`);
N
nikhilraut 已提交
3238 3239 3240
})
```

M
mali 已提交
3241
## MetadataOutput
N
nikhilraut 已提交
3242

M
mali 已提交
3243
metadata流。继承[CameraOutput](#cameraoutput)
N
nikhilraut 已提交
3244

M
mali 已提交
3245
### start
J
jiangminyang 已提交
3246

C
cold_yixiu 已提交
3247
start(callback: AsyncCallback\<void\>): void
J
jiangminyang 已提交
3248

M
mali 已提交
3249
开始输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
3250

Z
zengyawen 已提交
3251
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3252 3253 3254

**参数:**

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

M
mali 已提交
3259 3260 3261 3262 3263 3264 3265 3266 3267
**错误码:**

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

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

N
nikhilraut 已提交
3268 3269
**示例:**

Z
zengyawen 已提交
3270
```js
M
mali 已提交
3271
metadataOutput.start((err) => {
N
nikhilraut 已提交
3272
    if (err) {
3273
        console.error(`Failed to start metadataOutput. ${err.code}`);
N
nikhilraut 已提交
3274 3275
        return;
    }
M
mali 已提交
3276
    console.log('Callback returned with metadataOutput started.');
J
jiangminyang 已提交
3277
})
Z
zengyawen 已提交
3278
```
N
nikhilraut 已提交
3279

M
mali 已提交
3280
### start
N
nikhilraut 已提交
3281

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

M
mali 已提交
3284
开始输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
3285

Z
zengyawen 已提交
3286
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3287 3288 3289

**返回值:**

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

M
mali 已提交
3294 3295 3296 3297 3298 3299 3300 3301 3302
**错误码:**

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

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

N
nikhilraut 已提交
3303 3304
**示例:**

Z
zengyawen 已提交
3305
```js
M
mali 已提交
3306 3307
metadataOutput.start().then(() => {
    console.log('Callback returned with metadataOutput started.');
3308 3309 3310
}).catch((err) => {
    console.log('Failed to metadataOutput start '+ err.code);
});
N
nikhilraut 已提交
3311 3312
```

M
mali 已提交
3313
### stop
N
nikhilraut 已提交
3314

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

M
mali 已提交
3317
停止输出metadata,通过注册回调函数获取结果。
N
nikhilraut 已提交
3318

Z
zengyawen 已提交
3319
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3320 3321 3322

**参数:**

M
mali 已提交
3323 3324
| 参数名     | 类型                         | 必填 | 说明                  |
| -------- | -------------------------- | ---- | ------------------- |
C
cold_yixiu 已提交
3325
| callback | AsyncCallback\<void\>       | 是   | 回调函数,用于获取结果。 |
N
nikhilraut 已提交
3326 3327 3328

**示例:**

Z
zengyawen 已提交
3329
```js
M
mali 已提交
3330
metadataOutput.stop((err) => {
N
nikhilraut 已提交
3331
    if (err) {
3332
        console.error(`Failed to stop the metadataOutput. ${err.code}`);
N
nikhilraut 已提交
3333 3334
        return;
    }
M
mali 已提交
3335
    console.log('Callback returned with metadataOutput stopped.');
J
jiangminyang 已提交
3336
})
N
nikhilraut 已提交
3337 3338
```

M
mali 已提交
3339
### stop
N
nikhilraut 已提交
3340

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

M
mali 已提交
3343
停止输出metadata,通过Promise获取结果。
N
nikhilraut 已提交
3344

Z
zengyawen 已提交
3345
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3346 3347 3348

**返回值:**

M
mali 已提交
3349 3350
| 类型                    | 说明                        |
| ----------------------  | --------------------------- |
C
cold_yixiu 已提交
3351
| Promise\<void\>         | 使用Promise的方式获取结果。 |
N
nikhilraut 已提交
3352 3353 3354

**示例:**

Z
zengyawen 已提交
3355
```js
M
mali 已提交
3356 3357
metadataOutput.stop().then(() => {
    console.log('Callback returned with metadataOutput stopped.');
3358
}).catch((err) => {
3359
    console.log('Failed to metadataOutput stop '+ err.code);
3360
});
N
nikhilraut 已提交
3361 3362
```

M
mali 已提交
3363
### on('metadataObjectsAvailable')
N
nikhilraut 已提交
3364

C
cold_yixiu 已提交
3365
on(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObject\>\>): void
N
nikhilraut 已提交
3366

M
mali 已提交
3367
监听检测到的metadata对象,通过注册回调函数获取结果。
N
nikhilraut 已提交
3368

Z
zengyawen 已提交
3369
**系统能力:** SystemCapability.Multimedia.Camera.Core
N
nikhilraut 已提交
3370 3371 3372

**参数:**

3373 3374 3375
| 参数名      | 类型         | 必填 | 说明                                  |
| -------- | -------------- | ---- | ------------------------------------ |
| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据 |
C
cold_yixiu 已提交
3376
| callback | Callback\<Array\<[MetadataObject](#metadataobject)\>\> | 是   | 回调函数,用于获取metadata数据。 |
N
nikhilraut 已提交
3377 3378 3379

**示例:**

Z
zengyawen 已提交
3380
```js
M
mali 已提交
3381 3382
metadataOutput.on('metadataObjectsAvailable', (metadataObjectArr) => {
    console.log(`metadata output metadataObjectsAvailable`);
J
jiangminyang 已提交
3383
})
N
nikhilraut 已提交
3384 3385
```

M
mali 已提交
3386
### on('error')
N
nikhilraut 已提交
3387

C
cold_yixiu 已提交
3388
on(type: 'error', callback: ErrorCallback\<BusinessError\>): void
N
nikhilraut 已提交
3389

M
mali 已提交
3390
监听metadata流的错误,通过注册回调函数获取结果。
N
nikhilraut 已提交
3391

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

M
mali 已提交
3394
**参数:**
N
nikhilraut 已提交
3395

3396 3397
| 参数名     | 类型         | 必填 | 说明                                     |
| -------- | ------------- | ---- | --------------------------------------- |
3398
| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时发生错误返回对应错误信息。 |
C
cold_yixiu 已提交
3399
| callback | Callback\<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)            |
N
nikhilraut 已提交
3400 3401 3402

**示例:**

Z
zengyawen 已提交
3403
```js
M
mali 已提交
3404 3405
metadataOutput.on('error', (metadataOutputError) => {
    console.log(`Metadata output error code: ${metadataOutputError.code}`);
N
nikhilraut 已提交
3406 3407 3408
})
```

M
mali 已提交
3409 3410 3411 3412 3413 3414 3415 3416
## MetadataObjectType

枚举,metadata流。

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

| 名称                       | 值   | 说明              |
| ------------------------- | ---- | ----------------- |
C
cold_yixiu 已提交
3417
| FACE_DETECTION            | 0    | metadata对象类型,人脸检测。检测点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。<br> 此坐标系是以设备充电口在右侧时的横向设备方向为基准的,<br> 例如应用的预览界面布局以设备充电口在下侧时的竖向方向为基准,<br> 布局宽高为{w,h}, 返回点为{x,y},则转换后的坐标点为{1-y,x}。 |
M
mali 已提交
3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433

## Rect

矩形定义。

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

| 名称      | 类型   |      必填     |           说明                 |
| -------- | ------ | --------------- | -------------------- |
| topLeftX | number |        是          | 矩形区域左上角x坐标。   |
| topLeftY | number |         是          | 矩形区域左上角y坐标。   |
| width    | number |         是         | 矩形宽。              |
| height   | number |         是           |矩形高。              |

## MetadataObject

M
mali 已提交
3434
相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取
M
mali 已提交
3435

C
cold_yixiu 已提交
3436 3437
**系统能力:** SystemCapability.Multimedia.Camera.Core

3438 3439
| 名称      | 类型                            | 必填  | 说明              |
| -------- | ------------------------------- | ---- | -----------------|
3440 3441 3442
| type  | [MetadataObjectType](#metadataobjecttype)   | 否   | metadata 类型,目前只有人脸识别。 |
| timestamp | number | 否   | 当前时间戳(毫秒)。 |
| boundingBox | [Rect](#rect)           | 否   | metadata 区域框 |