• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.multimedia.camera (相机管理)
2
3> **说明:**
4>
5> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
6> - 本模块接口为系统接口。
7
8## 导入模块
9
10```js
11import camera from '@ohos.multimedia.camera';
12```
13
14## camera.getCameraManager
15
16getCameraManager(context: Context): CameraManager
17
18获取相机管理器实例,同步返回结果。
19
20**系统能力:** SystemCapability.Multimedia.Camera.Core
21
22**参数:**
23
24| 参数名     | 类型                                             | 必填 | 说明                           |
25| -------- | ----------------------------------------------- | ---- | ---------------------------- |
26| context  | [Context](js-apis-inner-app-context.md)      | 是   | 应用上下文。                   |
27
28**返回值:**
29
30| 类型                                             | 说明                           |
31| ----------------------------------------------- | ---------------------------- |
32| [CameraManager](#cameramanager)           | 相机管理器。                   |
33
34**错误码:**
35
36以下错误码的详细介绍请参见相机错误码
37
38| 错误码ID         | 错误信息        |
39| --------------- | --------------- |
40| 7400101                |  Parameter missing or parameter type incorrect               |
41| 7400201                |  Camera service fatal error.                                  |
42
43**示例:**
44
45```js
46let cameraManager = camera.getCameraManager(context);
47```
48
49## CameraStatus
50
51枚举,相机状态。
52
53**系统能力:** SystemCapability.Multimedia.Camera.Core
54
55| 名称                       | 值   | 说明            |
56| ------------------------- | ---- | ------------    |
57| CAMERA_STATUS_APPEAR      | 0    | 新的相机出现。   |
58| CAMERA_STATUS_DISAPPEAR   | 1    | 相机被移除。     |
59| CAMERA_STATUS_AVAILABLE   | 2    | 相机可用。       |
60| CAMERA_STATUS_UNAVAILABLE | 3    | 相机不可用。     |
61
62## Profile
63
64相机配置信息项。
65
66**系统能力:** SystemCapability.Multimedia.Camera.Core
67
68| 名称      | 类型                           | 必填 | 说明         |
69| -------- | ----------------------------- |---- | ------------- |
70| format   | [CameraFormat](#cameraformat) | 是  | 输出格式。      |
71| size     | [Size](#size)                 | 是  | 分辨率。       |
72
73## FrameRateRange
74
75帧率范围。
76
77**系统能力:** SystemCapability.Multimedia.Camera.Core
78
79| 名称      | 类型                           | 必填 | 说明         |
80| -------- | ----------------------------- |---- | ------------- |
81| min      | number                        | 是  | 最小帧率。      |
82| max      | number                        | 是  | 最大帧率。      |
83
84## VideoProfile
85
86视频配置信息项。
87
88**系统能力:** SystemCapability.Multimedia.Camera.Core
89
90| 名称                       | 类型                                      | 必填 | 说明        |
91| ------------------------- | ----------------------------------------- | --- |----------- |
92| frameRateRange            | [FrameRateRange](#frameraterange)         | 是  | 帧率范围。   |
93
94## CameraOutputCapability
95
96相机输出能力项。
97
98**系统能力:** SystemCapability.Multimedia.Camera.Core
99
100| 名称                           | 类型                                               | 必填 | 说明                |
101| ----------------------------- | -------------------------------------------------- | --- |------------------- |
102| previewProfiles               | Array<[Profile](#profile)\>                        | 是  | 支持的预览配置信息。    |
103| photoProfiles                 | Array<[Profile](#profile)\>                        | 是  | 支持的拍照配置信息。    |
104| videoProfiles                 | Array<[VideoProfile](#videoprofile)\>              | 是  | 支持的录像配置信息。    |
105| supportedMetadataObjectTypes  | Array<[MetadataObjectType](#metadataobjecttype)\>  | 是  | 支持的metadata流类型信息。|
106
107## CameraErrorCode
108
109相机错误码。接口使用不正确以及on接口监听error状态返回。
110
111**系统能力:** SystemCapability.Multimedia.Camera.Core
112
113| 名称                       | 值   | 说明            |
114| ------------------------- | ---- | ------------    |
115| INVALID_ARGUMENT       | 7400101    | 参数缺失或者参数类型不对。   |
116| OPERATION_NOT_ALLOWED    | 7400102    | 操作流程不对,不允许。     |
117| SESSION_NOT_CONFIG    | 7400103    | session 未配置返回。       |
118| SESSION_NOT_RUNNING  | 7400104    | session 未运行返回。    |
119| SESSION_CONFIG_LOCKED  | 7400105    | session 配置已锁定返回。     |
120| DEVICE_SETTING_LOCKED  | 7400106    | 设备设置已锁定返回。     |
121| CONFILICT_CAMERA  | 7400107    | 设备重复打开返回。     |
122| DEVICE_DISABLED  | 7400108    | 安全原因摄像头被禁用。     |
123| SERVICE_FATAL_ERROR  | 7400201    | 相机服务错误返回。     |
124
125## CameraManager
126
127相机管理器类,使用前需要通过getCameraManager获取相机管理实例。
128
129### getSupportedCameras
130
131getSupportedCameras(): Array<CameraDevice\>
132
133获取支持指定的相机设备对象,同步返回结果。
134
135**系统能力:** SystemCapability.Multimedia.Camera.Core
136
137**返回值:**
138
139| 类型                                             | 说明                           |
140| ----------------------------------------------- | ---------------------------- |
141|  Array<[CameraDevice](#cameradevice)>            | 相机设备列表。                   |
142
143**示例:**
144
145```js
146let cameras = cameraManager.getSupportedCameras();
147
148```
149
150### getSupportedOutputCapability
151
152getSupportedOutputCapability(cameraDevice:CameraDevice): CameraOutputCapability
153
154查询相机设备在模式下支持的输出能力,同步返回结果。
155
156**系统能力:** SystemCapability.Multimedia.Camera.Core
157
158**参数:**
159
160| 参数名         | 类型                                                            | 必填 | 说明                      |
161| ------------ |--------------------------------------------------------------- | -- | -------------------------- |
162| cameraDevice | [CameraDevice](#cameradevice)                              | 是 | 相机设备,通过 getSupportedCameras 接口获取       |
163
164**返回值:**
165
166| 类型                                             | 说明                           |
167| ----------------------------------------------- | ---------------------------- |
168| [CameraOutputCapability](#cameraoutputcapability)            | 相机输出能力。                   |
169
170**示例:**
171
172```js
173let cameraDevice = cameras[0];
174let cameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice);
175
176```
177
178### isCameraMuted
179
180isCameraMuted(): boolean
181
182查询相机当前的禁用状态(禁用/未禁用)。
183
184在此之前,需要通过[isCameraMuteSupported](#iscameramutesupported)确认当前设备支持禁用相机。
185
186**系统能力:** SystemCapability.Multimedia.Camera.Core
187
188**返回值:**
189
190| 类型        | 说明                                         |
191| ---------- | -------------------------------------------- |
192| boolean    | 返回true表示相机被禁用,返回false表示相机未被禁用。 |
193
194**示例:**
195
196```js
197let ismuted = cameraManager.isCameraMuted();
198```
199
200### isCameraMuteSupported
201
202isCameraMuteSupported(): boolean
203
204查询当前设备是否支持禁用相机,通过返回值返回结果。
205
206此接口为系统接口。
207
208**系统能力:** SystemCapability.Multimedia.Camera.Core
209
210**返回值:**
211
212| 类型        | 说明                          |
213| ---------- | ----------------------------- |
214| boolean    | 返回true表示相机可以被禁用,返回false表示相机不能被禁用。 |
215
216**示例:**
217
218```js
219let ismutesuppotred = cameraManager.isCameraMuteSupported();
220```
221
222### muteCamera
223
224muteCamera(mute: boolean): void
225
226禁用相机。
227
228此接口为系统接口。
229
230**系统能力:** SystemCapability.Multimedia.Camera.Core
231
232**参数:**
233
234| 参数名      | 类型                              | 必填  | 说明        |
235| -------- | --------------------------------- | ---- | ---------- |
236| mute     | boolean                           |  是  |  禁用相机。  |
237
238**示例:**
239
240```js
241let mute = true;
242cameraManager.muteCamera(mute);
243```
244
245### createCameraInput
246
247createCameraInput(camera: CameraDevice): CameraInput
248
249使用CameraDevice对象创建CameraInput实例,同步返回结果。
250
251**需要权限:** ohos.permission.CAMERA
252
253**系统能力:** SystemCapability.Multimedia.Camera.Core
254
255**参数:**
256
257| 参数名     | 类型                                         | 必填 | 说明                                |
258| -------- | ------------------------------------------- | ---- | --------------------------------- |
259| cameraDevice   | [CameraDevice](#cameradevice)         | 是   | CameraDevice对象,通过 getSupportedCameras 接口获取   |
260
261**返回值:**
262
263| 类型        | 说明                          |
264| ---------- | ----------------------------- |
265| [CameraInput](#camerainput)    | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
266
267**错误码:**
268
269以下错误码的详细介绍请参见相机错误码
270
271| 错误码ID         | 错误信息        |
272| --------------- | --------------- |
273| 7400101                |  Parameter missing or parameter type incorrect               |
274
275**示例:**
276
277```js
278let cameraDevice = cameras[0];
279let cameraInput;
280try {
281	cameraInput = cameraManager.createCameraInput(cameraDevice);
282} catch (error) {
283    // 失败返回错误码error.code并处理
284    console.log(error.code);
285}
286```
287
288### createCameraInput
289
290createCameraInput(position: CameraPosition, type: CameraType): CameraInput
291
292根据相机位置和类型创建CameraInput实例,同步返回结果。
293
294**需要权限:** ohos.permission.CAMERA
295
296**系统能力:** SystemCapability.Multimedia.Camera.Core
297
298**参数:**
299
300| 参数名     | 类型                                        | 必填 | 说明                                |
301| -------- | ------------------------------------------- | ---- | --------------------------------- |
302| position | [CameraPosition](#cameraposition)           | 是   | 相机位置,通过 getSupportedCameras 接口获取设备,然后获取设备位置信息  |
303| type     | [CameraType](#cameratype)                   | 是   | 相机类型,通过 getSupportedCameras 接口获取设备,然后获取设备类型信息  |
304
305**返回值:**
306
307| 类型        | 说明                          |
308| ---------- | ----------------------------- |
309| [CameraInput](#camerainput)    | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
310
311**错误码:**
312
313以下错误码的详细介绍请参见相机错误码
314
315| 错误码ID         | 错误信息        |
316| --------------- | --------------- |
317| 7400101                |  Parameter missing or parameter type incorrect               |
318
319**示例:**
320
321```js
322let cameraDevice = cameras[0];
323let position = cameraDevice.cameraPosition;
324let type = cameraDevice.cameraType;
325let cameraInput;
326try {
327    cameraInput = cameraManager.createCameraInput(position, type);
328} catch (error) {
329    // 失败返回错误码error.code并处理
330    console.log(error.code);
331}
332```
333
334### createPreviewOutput
335
336createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput
337
338创建预览输出对象,同步返回结果。
339
340**系统能力:** SystemCapability.Multimedia.Camera.Core
341
342**参数:**
343
344| 参数名     | 类型                                             | 必填 | 说明                              |
345| -------- | ----------------------------------------------- | ---- | ------------------------------- |
346| profile  | [Profile](#profile)                             | 是   | 支持的预览配置信息,通过getSupportedOutputCapability接口获取。|
347| surfaceId| string | 是   | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](js-apis-image.md#imagereceiver9)组件获取的surfaceId。|
348
349**返回值:**
350
351| 类型        | 说明                          |
352| ---------- | ----------------------------- |
353| [PreviewOutput](#previewoutput)    | PreviewOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
354
355**错误码:**
356
357以下错误码的详细介绍请参见相机错误码
358
359| 错误码ID         | 错误信息        |
360| --------------- | --------------- |
361| 7400101                |  Parameter missing or parameter type incorrect               |
362
363**示例:**
364
365```js
366let profile = cameraOutputCapability.previewProfiles[0];
367let previewOutput;
368try {
369    previewOutput = cameraManager.createPreviewOutput(profile, surfaceId);
370} catch (error) {
371    // 失败返回错误码error.code并处理
372    console.log(error.code);
373}
374```
375
376### createPhotoOutput
377
378createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput
379
380创建拍照输出对象,同步返回结果。
381
382**系统能力:** SystemCapability.Multimedia.Camera.Core
383
384**参数:**
385
386| 参数名     | 类型                                         | 必填 | 说明                                  |
387| -------- | ------------------------------------------- | ---- | ----------------------------------- |
388| profile  | [Profile](#profile)                         | 是   | 支持的拍照配置信息,通过getSupportedOutputCapability接口获取。|
389| surfaceId| string            | 是   | 从[ImageReceiver](js-apis-image.md#imagereceiver9)获取的surfaceId。|
390
391**返回值:**
392
393| 类型        | 说明                          |
394| ---------- | ----------------------------- |
395| [PhotoOutput](#photooutput)   | PhotoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
396
397**错误码:**
398
399以下错误码的详细介绍请参见相机错误码
400
401| 错误码ID         | 错误信息        |
402| --------------- | --------------- |
403| 7400101                |  Parameter missing or parameter type incorrect               |
404
405**示例:**
406
407```js
408let profile = cameraOutputCapability.photoProfiles[0];
409let photoOutput;
410try {
411    photoOutput = cameraManager.createPhotoOutput(profile, surfaceId);
412} catch (error) {
413    // 失败返回错误码error.code并处理
414    console.log(error.code);
415}
416```
417
418### createVideoOutput
419
420createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput
421
422创建录像输出对象,同步返回结果。
423
424**系统能力:** SystemCapability.Multimedia.Camera.Core
425
426**参数:**
427
428| 参数名     | 类型                                        | 必填 | 说明                              |
429| -------- | ------------------------------------------- | ---- | ------------------------------ |
430| profile  | [VideoProfile](#videoprofile)               | 是   | 支持的录像配置信息,通过getSupportedOutputCapability接口获取。 |
431| surfaceId| string          | 是   | 从[VideoRecorder](js-apis-media.md#videorecorder9)获取的surfaceId。|
432
433**返回值:**
434
435| 类型        | 说明                          |
436| ---------- | ----------------------------- |
437| [VideoOutput](#videooutput)   | VideoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
438
439**错误码:**
440
441以下错误码的详细介绍请参见相机错误码
442
443| 错误码ID         | 错误信息        |
444| --------------- | --------------- |
445| 7400101                |  Parameter missing or parameter type incorrect               |
446
447**示例:**
448
449```js
450let profile = cameraOutputCapability.videoProfiles[0];
451let videoOutput;
452try {
453    videoOutput = cameraManager.createVideoOutput(profile, surfaceId);
454} catch (error) {
455    // 失败返回错误码error.code并处理
456    console.log(error.code);
457}
458```
459
460### createMetadataOutput
461
462createMetadataOutput(metadataObjectTypes:Array<MetadataObjectType\>): MetadataOutput
463
464创建metadata流输出对象,同步返回结果。
465
466**系统能力:** SystemCapability.Multimedia.Camera.Core
467
468**参数:**
469
470| 参数名                  | 类型                                               | 必填 | 说明                          |
471| -------------------- | -------------------------------------------------- | --- | ---------------------------- |
472| metadataObjectTypes  | Array<[MetadataObjectType](#metadataobjecttype)\>  | 是  | metadata流类型信息,通过getSupportedOutputCapability接口获取。 |
473
474**返回值:**
475
476| 类型        | 说明                          |
477| ---------- | ----------------------------- |
478| [MetadataOutput](#metadataoutput)   | MetadataOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
479
480**错误码:**
481
482以下错误码的详细介绍请参见相机错误码
483
484| 错误码ID         | 错误信息        |
485| --------------- | --------------- |
486| 7400101                |  Parameter missing or parameter type incorrect               |
487
488**示例:**
489
490```js
491let metadataObjectTypes = cameraOutputCapability.supportedMetadataObjectTypes;
492let metadataOutput;
493try {
494    metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes);
495} catch (error) {
496    // 失败返回错误码error.code并处理
497    console.log(error.code);
498}
499```
500
501### createCaptureSession
502
503createCaptureSession(): CaptureSession
504
505创建CaptureSession实例,通过注册回调函数获取结果。
506
507**系统能力:** SystemCapability.Multimedia.Camera.Core
508
509**返回值:**
510
511| 类型        | 说明                          |
512| ---------- | ----------------------------- |
513| [CaptureSession](#capturesession)   | CaptureSession实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
514
515**错误码:**
516
517以下错误码的详细介绍请参见相机错误码
518
519| 错误码ID         | 错误信息        |
520| --------------- | --------------- |
521| 7400201                |  Camera service fatal error.               |
522
523**示例:**
524
525```js
526let captureSession;
527try {
528    captureSession = cameraManager.createCaptureSession();
529} catch (error) {
530    // 失败返回错误码error.code并处理
531    console.log(error.code);
532}
533```
534
535### on('cameraStatus')
536
537on(type: 'cameraStatus', callback: AsyncCallback<CameraStatusInfo\>): void
538
539相机设备状态回调,通过注册回调函数获取相机的状态变化。
540
541**系统能力:** SystemCapability.Multimedia.Camera.Core
542
543**参数:**
544
545| 参数名     | 类型            | 必填 | 说明       |
546| -------- | -----------------| ---- | --------- |
547| type     | string           | 是   | 监听事件,固定为'cameraStatus'。cameraManager对象获取成功后可监听。目前只支持对设备打开或者关闭会触发该事件并返回对应信息 |
548| callback | AsyncCallback<[CameraStatusInfo](#camerastatusinfo)\> | 是   | 回调函数,用于获取镜头状态变化信息。 |                 |
549
550**示例:**
551
552```js
553cameraManager.on('cameraStatus', (cameraStatusInfo) => {
554    console.log(`camera : ${cameraStatusInfo.camera.cameraId}`);
555    console.log(`status: ${cameraStatusInfo.status}`);
556})
557```
558
559### on('cameraMute')
560
561on(type: 'cameraMute', callback: AsyncCallback<boolean\>): void
562
563禁用回调,通过注册回调函数获取相机禁用状态变化。
564
565此接口为系统接口。
566
567**系统能力:** SystemCapability.Multimedia.Camera.Core
568
569**参数:**
570
571| 参数名     | 类型             | 必填 | 说明       |
572| -------- | --------------- | ---- | --------- |
573| type     | string          | 是   | 监听事件,固定为'cameraMute',系统相机摄像头开关,cameraManager对象获取成功后可监听。系统设置打开或禁用相机会触发该事件并返回状态 |
574| callback | AsyncCallback\<boolean> | 是   | 回调函数,用于获取禁用状态变化信息,返回true是开启状态,返回false是禁用状态。               |
575
576**示例:**
577
578```js
579cameraManager.on('cameraMute', (curMuetd) => {
580    let isMuted = curMuetd;
581})
582```
583
584## CameraStatusInfo
585
586相机管理器回调返回的接口实例,表示相机状态信息。
587
588**系统能力:** SystemCapability.Multimedia.Camera.Core589
590| 名称   | 类型                            |     必填     | 说明       |
591| ------ | ----------------------------- | -------------- | ---------- |
592| camera | [CameraDevice](#cameradevice) |        是       | 相机信息。 |
593| status | [CameraStatus](#camerastatus) |        是        | 相机状态。 |
594
595## CameraPosition
596
597枚举,相机位置。
598
599**系统能力:** SystemCapability.Multimedia.Camera.Core
600
601| 名称                         | 值   | 说明            |
602| --------------------------- | ---- | -------------- |
603| CAMERA_POSITION_UNSPECIFIED | 0    | 相机位置未指定。  |
604| CAMERA_POSITION_BACK        | 1    | 后置相机。       |
605| CAMERA_POSITION_FRONT       | 2    | 前置相机。       |
606
607## CameraType
608
609枚举,相机类型。
610
611**系统能力:** SystemCapability.Multimedia.Camera.Core
612
613| 名称                     | 值   | 说明            |
614| ----------------------- | ---- | -------------- |
615| CAMERA_TYPE_DEFAULT     | 0    | 相机类型未指定。  |
616| CAMERA_TYPE_WIDE_ANGLE  | 1    | 广角相机。       |
617| CAMERA_TYPE_ULTRA_WIDE  | 2    | 超广角相机。     |
618| CAMERA_TYPE_TELEPHOTO   | 3    | 长焦相机。       |
619| CAMERA_TYPE_TRUE_DEPTH  | 4    | 带景深信息的相机。 |
620
621## ConnectionType
622
623枚举,相机连接类型。
624
625**系统能力:** SystemCapability.Multimedia.Camera.Core
626
627| 名称                          | 值   | 说明           |
628| ---------------------------- | ---- | ------------- |
629| CAMERA_CONNECTION_BUILT_IN   | 0    | 内置相机。      |
630| CAMERA_CONNECTION_USB_PLUGIN | 1    | USB连接的相机。 |
631| CAMERA_CONNECTION_REMOTE     | 2    | 远程连接的相机。 |
632
633## CameraDevice
634
635相机设备信息。
636
637**系统能力:** SystemCapability.Multimedia.Camera.Core638
639| 名称           | 类型                                | 必填 | 说明        |
640| -------------- | --------------------------------- | ---- | ---------- |
641| cameraId       | string                            | 是   | CameraDevice对象|
642| cameraPosition | [CameraPosition](#cameraposition) | 是   | 相机位置。    |
643| cameraType     | [CameraType](#cameratype)         | 是   | 相机类型。    |
644| connectionType | [ConnectionType](#connectiontype) | 是   | 相机连接类型。 |
645
646## Size
647
648枚举,输出能力查询。
649
650**系统能力:** SystemCapability.Multimedia.Camera.Core
651
652| 名称   | 类型   | 可读 | 可写 | 说明         |
653| ------ | ------ | ---- | ---- | ------------ |
654| height | number | 是   | 是   | 图像尺寸高(像素)。 |
655| width  | number | 是   | 是   | 图像尺寸宽(像素)。 |
656
657## Point
658
659枚举,点坐标用于对焦、曝光配置。
660
661**系统能力:** SystemCapability.Multimedia.Camera.Core
662
663| 名称   | 类型   | 必填   | 说明         |
664| ------ | ------ | ---- | ------------ |
665| x      | number | 是    | 点的x坐标。   |
666| y      | number | 是    | 点的y坐标。   |
667
668## CameraFormat
669
670枚举,输出格式。
671
672**系统能力:** SystemCapability.Multimedia.Camera.Core
673
674| 名称                     | 值        | 说明         |
675| ----------------------- | --------- | ------------ |
676| CAMERA_FORMAT_RGBA_8888 | 3         | RGB格式的图片。             |
677| CAMERA_FORMAT_YUV_420_SP| 1003      | YUV 420 SP格式的图片。      |
678| CAMERA_FORMAT_JPEG      | 2000      | JPEG格式的图片。            |
679
680## CameraInput
681
682会话中[CaptureSession](#capturesession)使用的相机信息。
683
684### open
685
686open\(callback: AsyncCallback<void\>\): void
687
688打开相机,通过注册回调函数获取状态。
689
690**系统能力:** SystemCapability.Multimedia.Camera.Core
691
692**参数:**
693
694| 参数名     | 类型                  | 必填 | 说明                  |
695| -------- | -------------------- | ---- | ------------------- |
696| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
697
698**错误码:**
699
700以下错误码的详细介绍请参见相机错误码
701
702| 错误码ID         | 错误信息        |
703| --------------- | --------------- |
704| 7400107                |  Can not use camera cause of conflict.               |
705| 7400108                |  Camera disabled cause of security reason.                                  |
706| 7400201                |  Camera service fatal error.                                  |
707
708**示例:**
709
710```js
711cameraInput.open((err) => {
712    if (err) {
713        console.error(`Failed to open the camera. ${err.code}`);
714        return;
715    }
716    console.log('Callback returned with camera opened.');
717})
718```
719
720### open
721
722open(): Promise<void\>
723
724打开相机,通过Promise获取相机的状态。
725
726**系统能力:** SystemCapability.Multimedia.Camera.Core
727
728**返回值:**
729
730| 类型           | 说明                      |
731| -------------- | ----------------------- |
732| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
733
734**错误码:**
735
736以下错误码的详细介绍请参见相机错误码
737
738| 错误码ID         | 错误信息        |
739| --------------- | --------------- |
740| 7400107                |  Can not use camera cause of conflict.               |
741| 7400108                |  Camera disabled cause of security reason.                                  |
742| 7400201                |  Camera service fatal error.                                  |
743
744**示例:**
745
746```js
747cameraInput.open().then(() => {
748    console.log('Promise returned with camera opened.');
749}).catch((err) => {
750    console.error(`Failed to open the camera. ${err.code}`);
751});
752```
753
754### close
755
756close\(callback: AsyncCallback<void\>\): void
757
758关闭相机,通过注册回调函数获取状态。
759
760**系统能力:** SystemCapability.Multimedia.Camera.Core
761
762**参数:**
763
764| 参数名     | 类型                   | 必填 | 说明                  |
765| -------- | -------------------- | ---- | -------------------- |
766| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
767
768**错误码:**
769
770以下错误码的详细介绍请参见相机错误码
771
772| 错误码ID         | 错误信息        |
773| --------------- | --------------- |
774| 7400201                |  Camera service fatal error.                                  |
775
776**示例:**
777
778```js
779cameraInput.close((err) => {
780    if (err) {
781        console.error(`Failed to close the cameras. ${err.code}`);
782        return;
783    }
784    console.log('Callback returned with camera closed.');
785})
786```
787
788### close
789
790close(): Promise<void\>
791
792关闭相机,通过Promise获取状态。
793
794**系统能力:** SystemCapability.Multimedia.Camera.Core
795
796**返回值:**
797
798| 类型           | 说明                      |
799| -------------- | ----------------------- |
800| Promise<void\> | 使用Promise的方式获取结果。 |
801
802**错误码:**
803
804以下错误码的详细介绍请参见相机错误码
805
806| 错误码ID         | 错误信息        |
807| --------------- | --------------- |
808| 7400201                |  Camera service fatal error.                                  |
809
810**示例:**
811
812```js
813cameraInput.close().then(() => {
814    console.log('Promise returned with camera closed.');
815}).catch((err) => {
816    console.error(`Failed to close the cameras. ${err.code}`);
817});
818```
819
820### on('error')
821
822on(type: 'error', cameraDevice:CameraDevice, callback: ErrorCallback<BusinessError\>): void
823
824监听CameraInput的错误事件,通过注册回调函数获取结果。
825
826**系统能力:** SystemCapability.Multimedia.Camera.Core
827
828**参数:**
829
830| 参数名     | 类型                              | 必填 | 说明                                          |
831| -------- | -------------------------------- | --- | ------------------------------------------- |
832| type     | string                           | 是   | 监听事件,固定为'error',CameraInput对象创建成功可监听。相机设备出错情况下可触发该事件并返回结果,比如(设备不可用或者冲突等返回对应错误信息) |
833| cameraDevice   | [CameraDevice](#cameradevice)    | 是   | CameraDevice对象。 |
834| callback | ErrorCallback<BusinessError\> | 是   | 回调函数,用于获取结果。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)   |
835
836**示例:**
837
838```js
839let cameraDevice = cameras[0];
840cameraInput.on('error', cameraDevice, (error) => {
841    console.log(`Camera input error code: ${error.code}`);
842})
843```
844
845## FlashMode
846
847枚举,闪光灯模式。
848
849**系统能力:** SystemCapability.Multimedia.Camera.Core850
851| 名称                    | 值   | 说明        |
852| ---------------------- | ---- | ---------- |
853| FLASH_MODE_CLOSE       | 0    | 闪光灯关闭。 |
854| FLASH_MODE_OPEN        | 1    | 闪光灯打开。 |
855| FLASH_MODE_AUTO        | 2    | 自动闪光灯。 |
856| FLASH_MODE_ALWAYS_OPEN | 3    | 闪光灯常亮。 |
857
858## ExposureMode
859
860枚举,曝光模式。
861
862**系统能力:** SystemCapability.Multimedia.Camera.Core863
864| 名称                           | 值   | 说明         |
865| ----------------------------- | ---- | ----------- |
866| EXPOSURE_MODE_LOCKED          | 0    | 锁定曝光模式。 |
867| EXPOSURE_MODE_AUTO            | 1    | 自动曝光模式。 |
868| EXPOSURE_MODE_CONTINUOUS_AUTO | 2    | 连续自动曝光。 |
869
870 ## FocusMode
871
872枚举,焦距模式。
873
874**系统能力:** SystemCapability.Multimedia.Camera.Core875
876| 名称                        | 值   | 说明          |
877| -------------------------- | ---- | ------------ |
878| FOCUS_MODE_MANUAL          | 0    | 手动对焦。     |
879| FOCUS_MODE_CONTINUOUS_AUTO | 1    | 连续自动对焦。 |
880| FOCUS_MODE_AUTO            | 2    | 自动对焦。     |
881| FOCUS_MODE_LOCKED          | 3    | 对焦锁定。     |
882
883## FocusState
884
885枚举,焦距状态。
886
887**系统能力:** SystemCapability.Multimedia.Camera.Core888
889| 名称                   | 值   | 说明       |
890| --------------------- | ---- | --------- |
891| FOCUS_STATE_SCAN      | 0    | 触发对焦。  |
892| FOCUS_STATE_FOCUSED   | 1    | 对焦成功。  |
893| FOCUS_STATE_UNFOCUSED | 2    | 未完成对焦。 |
894
895## VideoStabilizationMode
896
897枚举,视频防抖模式。
898
899**系统能力:** SystemCapability.Multimedia.Camera.Core900
901| 名称       | 值   | 说明         |
902| --------- | ---- | ------------ |
903| OFF       | 0    | 关闭视频防抖功能。   |
904| LOW       | 1    | 使用基础防抖算法。   |
905| MIDDLE    | 2    | 使用防抖效果一般的防抖算法,防抖效果优于LOW类型。   |
906| HIGH      | 3    | 使用防抖效果最好的防抖算法,防抖效果优于MIDDLE类型。   |
907| AUTO      | 4    | 自动进行选择。   |
908
909## CaptureSession
910
911拍照会话类,保存一次相机运行所需要的所有资源[CameraInput](#camerainput)、[CameraOutput](#cameraoutput),并向相机设备申请完成相机功能(录像,拍照)。
912
913### beginConfig
914
915beginConfig(): void
916
917开始配置会话。
918
919**系统能力:** SystemCapability.Multimedia.Camera.Core
920
921**返回值:**
922
923| 类型        | 说明                          |
924| ---------- | ----------------------------- |
925| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
926
927**错误码:**
928
929以下错误码的详细介绍请参见相机错误码
930
931| 错误码ID         | 错误信息        |
932| --------------- | --------------- |
933| 7400105                |  Session config locked.               |
934
935**示例:**
936
937```js
938try {
939    captureSession.beginConfig();
940} catch (error) {
941    // 失败返回错误码error.code并处理
942    console.log(error.code);
943}
944```
945
946### commitConfig
947
948commitConfig(callback: AsyncCallback<void\>): void
949
950提交配置信息,通过注册回调函数获取结果。
951
952**系统能力:** SystemCapability.Multimedia.Camera.Core
953
954**参数:**
955
956| 参数名     | 类型                   | 必填 | 说明                  |
957| -------- | -------------------- | ---- | -------------------- |
958| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
959
960**错误码:**
961
962以下错误码的详细介绍请参见相机错误码
963
964| 错误码ID         | 错误信息        |
965| --------------- | --------------- |
966| 7400102                |  Operation not allow.                                  |
967| 7400201                |  Camera service fatal error.                           |
968
969**示例:**
970
971```js
972captureSession.commitConfig((err) => {
973    if (err) {
974        console.log('Failed to commitConfig '+ err.code);
975        return;
976    }
977    console.log('Callback invoked to indicate the commit config success.');
978});
979```
980
981### commitConfig
982
983commitConfig(): Promise<void\>
984
985提交配置信息,通过Promise获取结果。
986
987**系统能力:** SystemCapability.Multimedia.Camera.Core
988
989**返回值:**
990
991| 类型            | 说明                      |
992| -------------- | ------------------------ |
993| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
994
995**错误码:**
996
997以下错误码的详细介绍请参见相机错误码
998
999| 错误码ID         | 错误信息        |
1000| --------------- | --------------- |
1001| 7400102                |  Operation not allow.                                  |
1002| 7400201                |  Camera service fatal error.                           |
1003
1004**示例:**
1005
1006```js
1007captureSession.commitConfig().then(() => {
1008    console.log('Promise returned to indicate the commit config success.');
1009}).catch((err) => {
1010    // 失败返回错误码error.code并处理
1011    console.log('Failed to commitConfig '+ err.code);
1012});
1013```
1014
1015### addInput
1016
1017addInput(cameraInput: CameraInput): void
1018
1019把[CameraInput](#camerainput)加入到会话。
1020
1021**系统能力:** SystemCapability.Multimedia.Camera.Core
1022
1023**参数:**
1024
1025| 参数名        | 类型                          | 必填 | 说明                     |
1026| ----------- | --------------------------- | ---- | ------------------------ |
1027| cameraInput | [CameraInput](#camerainput) | 是   | 需要添加的CameraInput实例。 |
1028
1029**返回值:**
1030
1031| 类型        | 说明                          |
1032| ---------- | ----------------------------- |
1033| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1034
1035**错误码:**
1036
1037以下错误码的详细介绍请参见相机错误码
1038
1039| 错误码ID         | 错误信息        |
1040| --------------- | --------------- |
1041| 7400101                |  Parameter missing or parameter type incorrect        |
1042| 7400102                |  Operation not allow.                                  |
1043
1044**示例:**
1045
1046```js
1047try {
1048    captureSession.addInput(cameraInput);
1049} catch (error) {
1050    // 失败返回错误码error.code并处理
1051    console.log(error.code);
1052}
1053```
1054
1055### removeInput
1056
1057removeInput(cameraInput: CameraInput): void
1058
1059移除[CameraInput](#camerainput)。
1060
1061**系统能力:** SystemCapability.Multimedia.Camera.Core
1062
1063**参数:**
1064
1065| 参数名        | 类型                          | 必填 | 说明                      |
1066| ----------- | --------------------------- | ---- | ------------------------ |
1067| cameraInput | [CameraInput](#camerainput) | 是   | 需要移除的CameraInput实例。 |
1068
1069**返回值:**
1070
1071| 类型        | 说明                          |
1072| ---------- | ----------------------------- |
1073| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1074
1075**错误码:**
1076
1077以下错误码的详细介绍请参见相机错误码
1078
1079| 错误码ID         | 错误信息        |
1080| --------------- | --------------- |
1081| 7400101                |  Parameter missing or parameter type incorrect        |
1082| 7400102                |  Operation not allow.                                  |
1083
1084**示例:**
1085
1086```js
1087try {
1088    captureSession.removeInput(cameraInput);
1089} catch (error) {
1090    // 失败返回错误码error.code并处理
1091    console.log(error.code);
1092}
1093```
1094
1095### addOutput
1096
1097addOutput(previewOutput: CameraOutput): void
1098
1099把[CameraOutput](#cameraoutput)加入到会话。
1100
1101**系统能力:** SystemCapability.Multimedia.Camera.Core
1102
1103**参数:**
1104
1105| 参数名           | 类型                             | 必填 | 说明                      |
1106| ------------- | ------------------------------- | ---- | ------------------------ |
1107| previewOutput  | [PreviewOutput](#previewoutput)   | 是   | 需要添加的previewoutput实例。 |
1108
1109**返回值:**
1110
1111| 类型        | 说明                          |
1112| ---------- | ----------------------------- |
1113| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1114
1115**错误码:**
1116
1117以下错误码的详细介绍请参见相机错误码
1118
1119| 错误码ID         | 错误信息        |
1120| --------------- | --------------- |
1121| 7400101                |  Parameter missing or parameter type incorrect        |
1122| 7400102                |  Operation not allow.                                  |
1123
1124**示例:**
1125
1126```js
1127try {
1128    captureSession.addOutput(previewOutput);
1129} catch (error) {
1130    // 失败返回错误码error.code并处理
1131    console.log(error.code);
1132}
1133```
1134
1135### removeOutput
1136
1137removeOutput(previewOutput: CameraOutput): void
1138
1139从会话中移除[CameraOutput](#cameraoutput)。
1140
1141**系统能力:** SystemCapability.Multimedia.Camera.Core
1142
1143**参数:**
1144
1145| 参数名           | 类型                             | 必填 | 说明                      |
1146| ------------- | ------------------------------- | ---- | ------------------------ |
1147| previewOutput  | [PreviewOutput](#previewoutput)   | 是   | 需要移除的previewoutput实例。 |
1148
1149**返回值:**
1150
1151| 类型        | 说明                          |
1152| ---------- | ----------------------------- |
1153| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1154
1155**错误码:**
1156
1157以下错误码的详细介绍请参见相机错误码
1158
1159| 错误码ID         | 错误信息        |
1160| --------------- | --------------- |
1161| 7400101                |  Parameter missing or parameter type incorrect        |
1162| 7400102                |  Operation not allow.                                  |
1163
1164**示例:**
1165
1166```js
1167try {
1168    captureSession.removeOutput(previewOutput);
1169} catch (error) {
1170    // 失败返回错误码error.code并处理
1171    console.log(error.code);
1172}
1173```
1174
1175### start
1176
1177start\(callback: AsyncCallback<void\>\): void
1178
1179开始会话工作,通过注册回调函数获取结果。
1180
1181**系统能力:** SystemCapability.Multimedia.Camera.Core
1182
1183**参数:**
1184
1185| 参数名      | 类型                  | 必填 | 说明                 |
1186| -------- | -------------------- | ---- | -------------------- |
1187| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1188
1189**错误码:**
1190
1191以下错误码的详细介绍请参见相机错误码
1192
1193| 错误码ID         | 错误信息        |
1194| --------------- | --------------- |
1195| 7400103                |  Session not config.                                   |
1196| 7400201                |  Camera service fatal error.                           |
1197
1198**示例:**
1199
1200```js
1201captureSession.start((err) => {
1202    if (err) {
1203        console.error(`Failed to start the session ${err.code}`);
1204        return;
1205    }
1206    console.log('Callback invoked to indicate the session start success.');
1207});
1208```
1209
1210### start
1211
1212start\(\): Promise<void\>
1213
1214开始会话工作,通过Promise获取结果。
1215
1216**系统能力:** SystemCapability.Multimedia.Camera.Core
1217
1218**返回值:**
1219
1220| 类型            | 说明                     |
1221| -------------- | ------------------------ |
1222| Promise<void\> | 使用Promise的方式获取结果。 |
1223
1224**错误码:**
1225
1226以下错误码的详细介绍请参见相机错误码
1227
1228| 错误码ID         | 错误信息        |
1229| --------------- | --------------- |
1230| 7400103                |  Session not config.                                   |
1231| 7400201                |  Camera service fatal error.                           |
1232
1233**示例:**
1234
1235```js
1236captureSession.start().then(() => {
1237    console.log('Promise returned to indicate the session start success.');
1238}).catch((err) => {
1239    console.error(`Failed to start the session ${err.code}`);
1240});
1241```
1242
1243### stop
1244
1245stop\(callback: AsyncCallback<void\>\): void
1246
1247停止会话工作,通过注册回调函数获取结果。
1248
1249**系统能力:** SystemCapability.Multimedia.Camera.Core
1250
1251**参数:**
1252
1253| 参数名      | 类型                  | 必填 | 说明                 |
1254| -------- | -------------------- | ---- | ------------------- |
1255| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1256
1257**错误码:**
1258
1259以下错误码的详细介绍请参见相机错误码
1260
1261| 错误码ID         | 错误信息        |
1262| --------------- | --------------- |
1263| 7400201                |  Camera service fatal error.                           |
1264
1265**示例:**
1266
1267```js
1268captureSession.stop((err) => {
1269    if (err) {
1270        console.error(`Failed to stop the session ${err.code}`);
1271        return;
1272    }
1273    console.log('Callback invoked to indicate the session stop success.');
1274});
1275```
1276
1277### stop
1278
1279stop(): Promise<void\>
1280
1281停止会话工作,通过Promise获取结果。
1282
1283**系统能力:** SystemCapability.Multimedia.Camera.Core
1284
1285**返回值:**
1286
1287| 类型            | 说明                     |
1288| -------------- | ----------------------- |
1289| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1290
1291**错误码:**
1292
1293以下错误码的详细介绍请参见相机错误码
1294
1295| 错误码ID         | 错误信息        |
1296| --------------- | --------------- |
1297| 7400201                |  Camera service fatal error.                           |
1298
1299**示例:**
1300
1301```js
1302captureSession.stop().then(() => {
1303    console.log('Promise returned to indicate the session stop success.');
1304}).catch((err) => {
1305    console.error(`Failed to stop the session ${err.code}`);
1306});
1307```
1308
1309### release
1310
1311release\(callback: AsyncCallback<void\>\): void
1312
1313释放会话资源,通过注册回调函数获取结果。
1314
1315**系统能力:** SystemCapability.Multimedia.Camera.Core
1316
1317**参数:**
1318
1319| 参数名      | 类型                  | 必填 | 说明                 |
1320| -------- | -------------------- | ---- | -------------------- |
1321| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1322
1323**错误码:**
1324
1325以下错误码的详细介绍请参见相机错误码
1326
1327| 错误码ID         | 错误信息        |
1328| --------------- | --------------- |
1329| 7400201                |  Camera service fatal error.                           |
1330
1331**示例:**
1332
1333```js
1334captureSession.release((err) => {
1335    if (err) {
1336        console.error(`Failed to release the CaptureSession instance ${err.code}`);
1337        return;
1338    }
1339    console.log('Callback invoked to indicate that the CaptureSession instance is released successfully.');
1340});
1341```
1342
1343### release
1344
1345release(): Promise<void\>
1346
1347释放会话资源,通过Promise获取结果。
1348
1349**系统能力:** SystemCapability.Multimedia.Camera.Core
1350
1351**返回值:**
1352
1353| 类型            | 说明                     |
1354| -------------- | ------------------------ |
1355| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1356
1357**错误码:**
1358
1359以下错误码的详细介绍请参见相机错误码
1360
1361| 错误码ID         | 错误信息        |
1362| --------------- | --------------- |
1363| 7400201                |  Camera service fatal error.                           |
1364
1365**示例:**
1366
1367```js
1368captureSession.release().then(() => {
1369    console.log('Promise returned to indicate that the CaptureSession instance is released successfully.');
1370}).catch((err) => {
1371    console.error(`Failed to release the CaptureSession instance ${err.code}`);
1372});
1373```
1374
1375### hasFlash
1376
1377hasFlash(): boolean
1378
1379检测是否有闪光灯,通过注册回调函数获取结果。
1380
1381**系统能力:** SystemCapability.Multimedia.Camera.Core
1382
1383**返回值:**
1384
1385| 类型        | 说明                          |
1386| ---------- | ----------------------------- |
1387| boolean    | 返回true表示设备支持闪光灯。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1388
1389**错误码:**
1390
1391以下错误码的详细介绍请参见相机错误码
1392
1393| 错误码ID         | 错误信息        |
1394| --------------- | --------------- |
1395| 7400103                |  Session not config.                                   |
1396
1397**示例:**
1398
1399```js
1400try {
1401    let status = captureSession.hasFlash();
1402} catch (error) {
1403    // 失败返回错误码error.code并处理
1404    console.log(error.code);
1405}
1406```
1407
1408### isFlashModeSupported
1409
1410isFlashModeSupported(flashMode: FlashMode): boolean
1411
1412检测闪光灯模式是否支持。
1413
1414**系统能力:** SystemCapability.Multimedia.Camera.Core
1415
1416**参数:**
1417
1418| 参数名       | 类型                     | 必填 | 说明                               |
1419| --------- | ----------------------- | ---- | --------------------------------- |
1420| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。                     |
1421
1422**返回值:**
1423
1424| 类型        | 说明                          |
1425| ---------- | ----------------------------- |
1426| boolean    | 返回true表示支持该闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1427
1428**错误码:**
1429
1430以下错误码的详细介绍请参见相机错误码
1431
1432| 错误码ID         | 错误信息        |
1433| --------------- | --------------- |
1434| 7400103                |  Session not config.                                   |
1435
1436**示例:**
1437
1438```js
1439try {
1440    let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO);
1441} catch (error) {
1442    // 失败返回错误码error.code并处理
1443    console.log(error.code);
1444}
1445```
1446
1447### setFlashMode
1448
1449setFlashMode(flashMode: FlashMode): void
1450
1451设置闪光灯模式。
1452
1453进行设置之前,需要先检查:
1454
14551. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash)。
14562. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported)。
1457
1458**系统能力:** SystemCapability.Multimedia.Camera.Core
1459
1460**参数:**
1461
1462| 参数名       | 类型                     | 必填 | 说明                  |
1463| --------- | ----------------------- | ---- | --------------------- |
1464| flashMode | [FlashMode](#flashmode) | 是   | 指定闪光灯模式。       |
1465
1466**返回值:**
1467
1468| 类型        | 说明                          |
1469| ---------- | ----------------------------- |
1470| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1471
1472**错误码:**
1473
1474以下错误码的详细介绍请参见相机错误码
1475
1476| 错误码ID         | 错误信息        |
1477| --------------- | --------------- |
1478| 7400103                |  Session not config.                                   |
1479
1480**示例:**
1481
1482```js
1483try {
1484    captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO);
1485} catch (error) {
1486    // 失败返回错误码error.code并处理
1487    console.log(error.code);
1488}
1489```
1490
1491### getFlashMode
1492
1493getFlashMode(): FlashMode
1494
1495获取当前设备的闪光灯模式。
1496
1497**系统能力:** SystemCapability.Multimedia.Camera.Core
1498
1499**返回值:**
1500
1501| 类型        | 说明                          |
1502| ---------- | ----------------------------- |
1503| [FlashMode](#flashmode)    | 获取当前设备的闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1504
1505**错误码:**
1506
1507以下错误码的详细介绍请参见相机错误码
1508
1509| 错误码ID         | 错误信息        |
1510| --------------- | --------------- |
1511| 7400103                |  Session not config.                                   |
1512
1513**示例:**
1514
1515```js
1516try {
1517    let flashMode = captureSession.getFlashMode();
1518} catch (error) {
1519    // 失败返回错误码error.code并处理
1520    console.log(error.code);
1521}
1522```
1523
1524### isExposureModeSupported
1525
1526isExposureModeSupported(aeMode: ExposureMode): boolean;
1527
1528检测曝光模式是否支持。
1529
1530**系统能力:** SystemCapability.Multimedia.Camera.Core
1531
1532**参数:**
1533
1534| 参数名      | 类型                           | 必填  | 说明                           |
1535| -------- | -------------------------------| ---- | ----------------------------- |
1536| aeMode   | [ExposureMode](#exposuremode)  | 是   | 曝光模式。                      |
1537
1538**返回值:**
1539
1540| 类型        | 说明                          |
1541| ---------- | ----------------------------- |
1542| boolean    | 获取是否支持曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1543
1544**错误码:**
1545
1546以下错误码的详细介绍请参见相机错误码
1547
1548| 错误码ID         | 错误信息        |
1549| --------------- | --------------- |
1550| 7400103                |  Session not config.                                   |
1551
1552**示例:**
1553
1554```js
1555try {
1556    let isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
1557} catch (error) {
1558    // 失败返回错误码error.code并处理
1559    console.log(error.code);
1560}
1561```
1562
1563### getExposureMode
1564
1565getExposureMode(): ExposureMode
1566
1567获取当前曝光模式。
1568
1569**系统能力:** SystemCapability.Multimedia.Camera.Core
1570
1571**返回值:**
1572
1573| 类型        | 说明                          |
1574| ---------- | ----------------------------- |
1575| [ExposureMode](#exposuremode)    | 获取当前曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1576
1577**错误码:**
1578
1579以下错误码的详细介绍请参见相机错误码
1580
1581| 错误码ID         | 错误信息        |
1582| --------------- | --------------- |
1583| 7400103                |  Session not config.                                   |
1584
1585**示例:**
1586
1587```js
1588try {
1589    let exposureMode = captureSession.getExposureMode();
1590} catch (error) {
1591    // 失败返回错误码error.code并处理
1592    console.log(error.code);
1593}
1594```
1595
1596### setExposureMode
1597
1598setExposureMode(aeMode: ExposureMode): void
1599
1600设置曝光模式。
1601
1602**系统能力:** SystemCapability.Multimedia.Camera.Core
1603
1604**参数:**
1605
1606| 参数名      | 类型                            | 必填 | 说明                    |
1607| -------- | -------------------------------| ---- | ----------------------- |
1608| aeMode   | [ExposureMode](#exposuremode)  | 是   | 曝光模式。                |
1609
1610**返回值:**
1611
1612| 类型        | 说明                          |
1613| ---------- | ----------------------------- |
1614| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1615
1616**错误码:**
1617
1618以下错误码的详细介绍请参见相机错误码
1619
1620| 错误码ID         | 错误信息        |
1621| --------------- | --------------- |
1622| 7400103                |  Session not config.                                   |
1623
1624**示例:**
1625
1626```js
1627try {
1628    captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
1629} catch (error) {
1630    // 失败返回错误码error.code并处理
1631    console.log(error.code);
1632}
1633```
1634
1635### getMeteringPoint
1636
1637getMeteringPoint(): Point
1638
1639查询曝光区域中心点。(该接口目前为预留,将在3.2版本开放)
1640
1641**系统能力:** SystemCapability.Multimedia.Camera.Core
1642
1643**返回值:**
1644
1645| 类型        | 说明                          |
1646| ---------- | ----------------------------- |
1647| [Point](#point)    | 获取当前曝光点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1648
1649**错误码:**
1650
1651以下错误码的详细介绍请参见相机错误码
1652
1653| 错误码ID         | 错误信息        |
1654| --------------- | --------------- |
1655| 7400103                |  Session not config.                                   |
1656
1657**示例:**
1658
1659```js
1660try {
1661    let exposurePoint = captureSession.getMeteringPoint();
1662} catch (error) {
1663    // 失败返回错误码error.code并处理
1664    console.log(error.code);
1665}
1666```
1667
1668### setMeteringPoint
1669
1670setMeteringPoint(point: Point): void
1671
1672设置曝光区域中心点。(该接口目前为预留,将在3.2版本开放)
1673
1674**系统能力:** SystemCapability.Multimedia.Camera.Core
1675
1676**参数:**
1677
1678| 参数名           | 类型                            | 必填 | 说明                 |
1679| ------------- | -------------------------------| ---- | ------------------- |
1680| exposurePoint | [Point](#point)                | 是   | 曝光点。              |
1681
1682**返回值:**
1683
1684| 类型        | 说明                          |
1685| ---------- | ----------------------------- |
1686| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1687
1688**错误码:**
1689
1690以下错误码的详细介绍请参见相机错误码
1691
1692| 错误码ID         | 错误信息        |
1693| --------------- | --------------- |
1694| 7400103                |  Session not config.                                   |
1695
1696**示例:**
1697
1698```js
1699const exposurePoint = {x: 1, y: 1};
1700try {
1701    captureSession.setMeteringPoint(exposurePoint);
1702} catch (error) {
1703    // 失败返回错误码error.code并处理
1704    console.log(error.code);
1705}
1706```
1707
1708### getExposureBiasRange
1709
1710getExposureBiasRange(): Array<number\>
1711
1712查询曝光补偿范围。
1713
1714**系统能力:** SystemCapability.Multimedia.Camera.Core
1715
1716**返回值:**
1717
1718| 类型        | 说明                          |
1719| ---------- | ----------------------------- |
1720| Array<number\>   | 获取补偿范围的数组。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1721
1722**错误码:**
1723
1724以下错误码的详细介绍请参见相机错误码
1725
1726| 错误码ID         | 错误信息        |
1727| --------------- | --------------- |
1728| 7400103                |  Session not config.                                   |
1729
1730**示例:**
1731
1732```js
1733try {
1734    let biasRangeArray = captureSession.getExposureBiasRange();
1735} catch (error) {
1736    // 失败返回错误码error.code并处理
1737    console.log(error.code);
1738}
1739```
1740
1741### setExposureBias
1742
1743setExposureBias(exposureBias: number): void
1744
1745设置曝光补偿。
1746
1747进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrange)查询支持的范围。
1748
1749**系统能力:** SystemCapability.Multimedia.Camera.Core
1750
1751**参数:**
1752
1753| 参数名     | 类型                            | 必填 | 说明                 |
1754| -------- | -------------------------------| ---- | ------------------- |
1755| exposureBias   | number                   | 是   | 曝光补偿,getExposureBiasRange查询支持的范围,接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1756
1757**错误码:**
1758
1759以下错误码的详细介绍请参见相机错误码
1760
1761| 错误码ID         | 错误信息        |
1762| --------------- | --------------- |
1763| 7400103                |  Session not config.                                   |
1764
1765**示例:**
1766
1767```js
1768let exposureBias = biasRangeArray[0];
1769try {
1770    captureSession.setExposureBias(exposureBias);
1771} catch (error) {
1772    // 失败返回错误码error.code并处理
1773    console.log(error.code);
1774}
1775```
1776
1777### getExposureValue
1778
1779getExposureValue(): number
1780
1781查询当前曝光值。
1782
1783**系统能力:** SystemCapability.Multimedia.Camera.Core
1784
1785**返回值:**
1786
1787| 类型        | 说明                          |
1788| ---------- | ----------------------------- |
1789| number    | 获取曝光值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1790
1791**错误码:**
1792
1793以下错误码的详细介绍请参见相机错误码
1794
1795| 错误码ID         | 错误信息        |
1796| --------------- | --------------- |
1797| 7400103                |  Session not config.                                   |
1798
1799**示例:**
1800
1801```js
1802try {
1803    let exposureValue = captureSession.getExposureValue();
1804} catch (error) {
1805    // 失败返回错误码error.code并处理
1806    console.log(error.code);
1807}
1808```
1809
1810### isFocusModeSupported
1811
1812isFocusModeSupported(afMode: FocusMode): boolean
1813
1814检测对焦模式是否支持。
1815
1816**系统能力:** SystemCapability.Multimedia.Camera.Core
1817
1818**参数:**
1819
1820| 参数名      | 类型                     | 必填 | 说明                              |
1821| -------- | ----------------------- | ---- | -------------------------------- |
1822| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。                    |
1823
1824**返回值:**
1825
1826| 类型        | 说明                          |
1827| ---------- | ----------------------------- |
1828| boolean    | 返回true表示支持该焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1829
1830**错误码:**
1831
1832以下错误码的详细介绍请参见相机错误码
1833
1834| 错误码ID         | 错误信息        |
1835| --------------- | --------------- |
1836| 7400103                |  Session not config.                                   |
1837
1838**示例:**
1839
1840```js
1841try {
1842    let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO);
1843} catch (error) {
1844    // 失败返回错误码error.code并处理
1845    console.log(error.code);
1846}
1847```
1848
1849### setFocusMode
1850
1851setFocusMode(afMode: FocusMode): void
1852
1853设置对焦模式。
1854
1855进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)。
1856
1857**系统能力:** SystemCapability.Multimedia.Camera.Core
1858
1859**参数:**
1860
1861| 参数名      | 类型                     | 必填 | 说明                 |
1862| -------- | ----------------------- | ---- | ------------------- |
1863| afMode   | [FocusMode](#focusmode) | 是   | 指定的焦距模式。       |
1864
1865**返回值:**
1866
1867| 类型        | 说明                          |
1868| ---------- | ----------------------------- |
1869| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1870
1871**错误码:**
1872
1873以下错误码的详细介绍请参见相机错误码
1874
1875| 错误码ID         | 错误信息        |
1876| --------------- | --------------- |
1877| 7400103                |  Session not config.                                   |
1878
1879**示例:**
1880
1881```js
1882try {
1883    captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO);
1884} catch (error) {
1885    // 失败返回错误码error.code并处理
1886    console.log(error.code);
1887}
1888```
1889
1890### getFocusMode
1891
1892getFocusMode(): FocusMode
1893
1894获取当前的对焦模式。
1895
1896**系统能力:** SystemCapability.Multimedia.Camera.Core
1897
1898**返回值:**
1899
1900| 类型        | 说明                          |
1901| ---------- | ----------------------------- |
1902| [FocusMode](#focusmode)   | 获取当前设备的焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1903
1904**错误码:**
1905
1906以下错误码的详细介绍请参见相机错误码
1907
1908| 错误码ID         | 错误信息        |
1909| --------------- | --------------- |
1910| 7400103                |  Session not config.                                   |
1911
1912**示例:**
1913
1914```js
1915try {
1916    let afMode = captureSession.getFocusMode();
1917} catch (error) {
1918    // 失败返回错误码error.code并处理
1919    console.log(error.code);
1920}
1921```
1922
1923### setFocusPoint
1924
1925setFocusPoint(point: Point): void
1926
1927设置焦点。
1928
1929**系统能力:** SystemCapability.Multimedia.Camera.Core
1930
1931**参数:**
1932
1933| 参数名      | 类型                     | 必填 | 说明                 |
1934| -------- | ----------------------- | ---- | ------------------- |
1935| Point1    | [Point](#point)         | 是   | 焦点。                |
1936
1937**返回值:**
1938
1939| 类型        | 说明                          |
1940| ---------- | ----------------------------- |
1941| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1942
1943**错误码:**
1944
1945以下错误码的详细介绍请参见相机错误码
1946
1947| 错误码ID         | 错误信息        |
1948| --------------- | --------------- |
1949| 7400103                |  Session not config.                                   |
1950
1951**示例:**
1952
1953```js
1954const Point1 = {x: 1, y: 1};
1955try {
1956    captureSession.setFocusPoint(Point1);
1957} catch (error) {
1958    // 失败返回错误码error.code并处理
1959    console.log(error.code);
1960}
1961```
1962
1963### getFocusPoint
1964
1965getFocusPoint(): Point
1966
1967查询焦点。
1968
1969**系统能力:** SystemCapability.Multimedia.Camera.Core
1970
1971**返回值:**
1972
1973| 类型        | 说明                          |
1974| ---------- | ----------------------------- |
1975| [Point](#point)    | 用于获取当前焦点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
1976
1977**错误码:**
1978
1979以下错误码的详细介绍请参见相机错误码
1980
1981| 错误码ID         | 错误信息        |
1982| --------------- | --------------- |
1983| 7400103                |  Session not config.                                   |
1984
1985**示例:**
1986
1987```js
1988try {
1989    let point = captureSession.getFocusPoint();
1990} catch (error) {
1991    // 失败返回错误码error.code并处理
1992    console.log(error.code);
1993}
1994```
1995
1996### getFocalLength
1997
1998getFocalLength(): number
1999
2000查询焦距值。
2001
2002**系统能力:** SystemCapability.Multimedia.Camera.Core
2003
2004**返回值:**
2005
2006| 类型        | 说明                          |
2007| ---------- | ----------------------------- |
2008| number    | 用于获取当前焦距。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2009
2010**错误码:**
2011
2012以下错误码的详细介绍请参见相机错误码
2013
2014| 错误码ID         | 错误信息        |
2015| --------------- | --------------- |
2016| 7400103                |  Session not config.                                   |
2017
2018**示例:**
2019
2020```js
2021try {
2022    let focalLength = captureSession.getFocalLength();
2023} catch (error) {
2024    // 失败返回错误码error.code并处理
2025    console.log(error.code);
2026}
2027```
2028
2029### getZoomRatioRange
2030
2031getZoomRatioRange(): Array<number\>
2032
2033获取支持的变焦范围。
2034
2035**系统能力:** SystemCapability.Multimedia.Camera.Core
2036
2037**返回值:**
2038
2039| 类型        | 说明                          |
2040| ---------- | ----------------------------- |
2041| Array<number\>   | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2042
2043**错误码:**
2044
2045以下错误码的详细介绍请参见相机错误码
2046
2047| 错误码ID         | 错误信息        |
2048| --------------- | --------------- |
2049| 7400103                |  Session not config.                                   |
2050
2051**示例:**
2052
2053```js
2054try {
2055    let zoomRatioRange = captureSession.getZoomRatioRange();
2056} catch (error) {
2057    // 失败返回错误码error.code并处理
2058    console.log(error.code);
2059}
2060```
2061
2062### setZoomRatio
2063
2064setZoomRatio(zoomRatio: number): void
2065
2066设置变焦比。
2067
2068**系统能力:** SystemCapability.Multimedia.Camera.Core
2069
2070**参数:**
2071
2072| 参数名       | 类型                  | 必填 | 说明                 |
2073| --------- | -------------------- | ---- | ------------------- |
2074| zoomRatio | number               | 是   | 可变焦距比,通过getZoomRatioRange获取支持的变焦范围 |
2075
2076**返回值:**
2077
2078| 类型        | 说明                          |
2079| ---------- | ----------------------------- |
2080| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2081
2082**错误码:**
2083
2084以下错误码的详细介绍请参见相机错误码
2085
2086| 错误码ID         | 错误信息        |
2087| --------------- | --------------- |
2088| 7400103                |  Session not config.                                   |
2089
2090**示例:**
2091
2092```js
2093let zoomRatio = zoomRatioRange[0];
2094try {
2095    captureSession.setZoomRatio(zoomRatio);
2096} catch (error) {
2097    // 失败返回错误码error.code并处理
2098    console.log(error.code);
2099}
2100```
2101
2102### getZoomRatio
2103
2104getZoomRatio(): number
2105
2106获取当前的变焦比。
2107
2108**系统能力:** SystemCapability.Multimedia.Camera.Core
2109
2110**返回值:**
2111
2112| 类型        | 说明                          |
2113| ---------- | ----------------------------- |
2114| number    | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2115
2116**错误码:**
2117
2118以下错误码的详细介绍请参见相机错误码
2119
2120| 错误码ID         | 错误信息        |
2121| --------------- | --------------- |
2122| 7400103                |  Session not config.                                   |
2123
2124**示例:**
2125
2126```js
2127try {
2128    let zoomRatio = captureSession.getZoomRatio();
2129} catch (error) {
2130    // 失败返回错误码error.code并处理
2131    console.log(error.code);
2132}
2133```
2134
2135### isVideoStabilizationModeSupported
2136
2137isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean
2138
2139查询是否支持指定的视频防抖模式。
2140
2141**系统能力:** SystemCapability.Multimedia.Camera.Core
2142
2143**参数:**
2144
2145| 参数名      | 类型                                              | 必填 | 说明                             |
2146| -------- | ------------------------------------------------- | ---- | ------------------------------ |
2147| vsMode   | [VideoStabilizationMode](#videostabilizationmode) | 是   | 视频防抖模式。                    |
2148
2149**返回值:**
2150
2151| 类型        | 说明                          |
2152| ---------- | ----------------------------- |
2153| boolean    | 返回视频防抖模式是否支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2154
2155**错误码:**
2156
2157以下错误码的详细介绍请参见相机错误码
2158
2159| 错误码ID         | 错误信息        |
2160| --------------- | --------------- |
2161| 7400103                |  Session not config.                                   |
2162
2163**示例:**
2164
2165```js
2166try {
2167    let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF);
2168} catch (error) {
2169    // 失败返回错误码error.code并处理
2170    console.log(error.code);
2171}
2172```
2173
2174### getActiveVideoStabilizationMode
2175
2176getActiveVideoStabilizationMode(): VideoStabilizationMode
2177
2178查询当前正在使用的视频防抖模式。
2179
2180**系统能力:** SystemCapability.Multimedia.Camera.Core
2181
2182**返回值:**
2183
2184| 类型        | 说明                          |
2185| ---------- | ----------------------------- |
2186| VideoStabilizationMode    | 视频防抖是否正在使用。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2187
2188**错误码:**
2189
2190以下错误码的详细介绍请参见相机错误码
2191
2192| 错误码ID         | 错误信息        |
2193| --------------- | --------------- |
2194| 7400103                |  Session not config.                                   |
2195
2196**示例:**
2197
2198```js
2199try {
2200    let vsMode = captureSession.getActiveVideoStabilizationMode();
2201} catch (error) {
2202    // 失败返回错误码error.code并处理
2203    console.log(error.code);
2204}
2205```
2206
2207### setVideoStabilizationMode
2208
2209setVideoStabilizationMode(mode: VideoStabilizationMode): void
2210
2211设置视频防抖模式。
2212
2213**系统能力:** SystemCapability.Multimedia.Camera.Core
2214
2215**参数:**
2216
2217| 参数名      | 类型                                              | 必填 | 说明                    |
2218| -------- | ------------------------------------------------- | ---- | --------------------- |
2219| mode     | [VideoStabilizationMode](#videostabilizationmode) | 是   | 需要设置的视频防抖模式。   |
2220
2221**返回值:**
2222
2223| 类型        | 说明                          |
2224| ---------- | ----------------------------- |
2225| [CameraErrorCode](#cameraerrorcode)    | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2226
2227**错误码:**
2228
2229以下错误码的详细介绍请参见相机错误码
2230
2231| 错误码ID         | 错误信息        |
2232| --------------- | --------------- |
2233| 7400103                |  Session not config.                                   |
2234
2235**示例:**
2236
2237```js
2238try {
2239    captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF);
2240} catch (error) {
2241    // 失败返回错误码error.code并处理
2242    console.log(error.code);
2243}
2244```
2245
2246### on('focusStateChange')
2247
2248on(type: 'focusStateChange', callback: AsyncCallback<FocusState\>): void
2249
2250监听相机聚焦的状态变化,通过注册回调函数获取结果。
2251
2252**系统能力:** SystemCapability.Multimedia.Camera.Core
2253
2254**参数:**
2255
2256| 参数名     | 类型                                      | 必填 | 说明                       |
2257| -------- | ----------------------------------------- | ---- | ------------------------ |
2258| type     | string                                    | 是   | 监听事件,固定为'focusStateChange',session 创建成功可监听。仅当自动对焦模式时,且相机对焦状态发生改变时可触发该事件 |
2259| callback | AsyncCallback<[FocusState](#focusstate)\> | 是   | 回调函数,用于获取当前对焦状态。  |
2260
2261**示例:**
2262
2263```js
2264captureSession.on('focusStateChange', (focusState) => {
2265    console.log(`Focus state  : ${focusState}`);
2266})
2267```
2268
2269### on('error')
2270
2271on(type: 'error', callback: ErrorCallback<BusinessError\>): void
2272
2273监听拍照会话的错误事件,通过注册回调函数获取结果。
2274
2275**系统能力:** SystemCapability.Multimedia.Camera.Core
2276
2277**参数:**
2278
2279| 参数名     | 类型                                                          | 必填 | 说明                           |
2280| -------- | ----------------------------------------------------------- | ---- | ------------------------------ |
2281| type     | string                                                      | 是   | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用(beginConfig(),commitConfig(),addInput)等接口发生错误时返回错误信息。 |
2282| callback | ErrorCallback<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)        |
2283
2284**示例:**
2285
2286```js
2287captureSession.on('error', (error) => {
2288    console.log(`Capture session error code: ${error.code}`);
2289})
2290```
2291
2292## CameraOutput
2293
2294会话中[CaptureSession](#capturesession)使用的输出信息,output的基类。
2295
2296## PreviewOutput
2297
2298预览输出类。继承[CameraOutput](#cameraoutput)
2299
2300### start
2301
2302start(callback: AsyncCallback<void\>): void
2303
2304开始输出预览流,通过注册回调函数获取结果。
2305
2306**系统能力:** SystemCapability.Multimedia.Camera.Core
2307
2308**参数:**
2309
2310| 参数名      | 类型                  | 必填 | 说明                 |
2311| -------- | -------------------- | ---- | -------------------- |
2312| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2313
2314**错误码:**
2315
2316以下错误码的详细介绍请参见相机错误码
2317
2318| 错误码ID         | 错误信息        |
2319| --------------- | --------------- |
2320| 7400103                |  Session not config.                                   |
2321
2322**示例:**
2323
2324```js
2325previewOutput.start((err) => {
2326    if (err) {
2327        console.error(`Failed to start the previewOutput. ${err.code}`);
2328        return;
2329    }
2330    console.log('Callback returned with previewOutput started.');
2331})
2332```
2333
2334### start
2335
2336start(): Promise<void\>
2337
2338开始输出预览流,通过Promise获取结果。
2339
2340**系统能力:** SystemCapability.Multimedia.Camera.Core
2341
2342**返回值:**
2343
2344| 类型            | 说明                     |
2345| -------------- | ----------------------- |
2346| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)|
2347
2348**错误码:**
2349
2350以下错误码的详细介绍请参见相机错误码
2351
2352| 错误码ID         | 错误信息        |
2353| --------------- | --------------- |
2354| 7400103                |  Session not config.                                   |
2355
2356**示例:**
2357
2358```js
2359previewOutput.start().then(() => {
2360    console.log('Promise returned with previewOutput started.');
2361}).catch((err) => {
2362    console.log('Failed to previewOutput start '+ err.code);
2363});
2364```
2365
2366### stop
2367
2368stop(callback: AsyncCallback<void\>): void
2369
2370停止输出预览流,通过注册回调函数获取结果。
2371
2372**系统能力:** SystemCapability.Multimedia.Camera.Core
2373
2374**参数:**
2375
2376| 参数名      | 类型                  | 必填 | 说明                 |
2377| -------- | -------------------- | ---- | -------------------- |
2378| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
2379
2380**示例:**
2381
2382```js
2383previewOutput.stop((err) => {
2384    if (err) {
2385        console.error(`Failed to stop the previewOutput. ${err.code}`);
2386        return;
2387    }
2388    console.log('Callback returned with previewOutput stopped.');
2389})
2390```
2391
2392### stop
2393
2394stop(): Promise<void\>
2395
2396停止输出预览流,通过Promise获取结果。
2397
2398**系统能力:** SystemCapability.Multimedia.Camera.Core
2399
2400**返回值:**
2401
2402| 类型            | 说明                     |
2403| -------------- | ------------------------ |
2404| Promise<void\> | 使用Promise的方式获取结果。 |
2405
2406**示例:**
2407
2408```js
2409previewOutput.stop().then(() => {
2410    console.log('Callback returned with previewOutput stopped.');
2411}).catch((err) => {
2412    console.log('Failed to previewOutput stop '+ err.code);
2413});
2414```
2415
2416### release
2417
2418release(callback: AsyncCallback<void\>): void
2419
2420释放输出资源,通过注册回调函数获取结果。
2421
2422**系统能力:** SystemCapability.Multimedia.Camera.Core
2423
2424**参数:**
2425
2426| 参数名      | 类型                  | 必填 | 说明                 |
2427| -------- | -------------------- | ---- | ------------------- |
2428| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2429
2430**错误码:**
2431
2432以下错误码的详细介绍请参见相机错误码
2433
2434| 错误码ID         | 错误信息        |
2435| --------------- | --------------- |
2436| 7400201                |  Camera service fatal error.                           |
2437
2438**示例:**
2439
2440```js
2441previewOutput.release((err) => {
2442    if (err) {
2443        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
2444        return;
2445    }
2446    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
2447});
2448```
2449
2450### release
2451
2452release(): Promise<void\>
2453
2454释放输出资源,通过Promise获取结果。
2455
2456**系统能力:** SystemCapability.Multimedia.Camera.Core
2457
2458**返回值:**
2459
2460| 类型            | 说明                     |
2461| -------------- | ----------------------- |
2462| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2463
2464**错误码:**
2465
2466以下错误码的详细介绍请参见相机错误码
2467
2468| 错误码ID         | 错误信息        |
2469| --------------- | --------------- |
2470| 7400201                |  Camera service fatal error.                           |
2471
2472**示例:**
2473
2474```js
2475previewOutput.release().then(() => {
2476    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
2477}).catch((err) => {
2478    console.log('Failed to previewOutput release '+ err.code);
2479});
2480```
2481
2482### on('frameStart')
2483
2484on(type: 'frameStart', callback: AsyncCallback<void\>): void
2485
2486监听预览帧启动,通过注册回调函数获取结果。
2487
2488**系统能力:** SystemCapability.Multimedia.Camera.Core
2489
2490**参数:**
2491
2492| 参数名      | 类型                  | 必填 | 说明                                     |
2493| -------- | -------------------- | ---- | --------------------------------------- |
2494| type     | string               | 是   | 监听事件,固定为'frameStart',previewOutput创建成功可监听。底层第一次开始曝光时触发该事件并返回 |
2495| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览开始                     |
2496
2497**示例:**
2498
2499```js
2500previewOutput.on('frameStart', () => {
2501    console.log('Preview frame started');
2502})
2503```
2504
2505### on('frameEnd')
2506
2507on(type: 'frameEnd', callback: AsyncCallback<void\>): void
2508
2509监听预览帧结束,通过注册回调函数获取结果。
2510
2511**系统能力:** SystemCapability.Multimedia.Camera.Core
2512
2513**参数:**
2514
2515| 参数名      | 类型                  | 必填 | 说明                                  |
2516| -------- | -------------------- | ---- | ------------------------------------- |
2517| type     | string               | 是   | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。预览完全结束最后一帧时触发该事件并返回, |
2518| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。只要有该事件返回就证明预览结束                 |
2519
2520**示例:**
2521
2522```js
2523previewOutput.on('frameEnd', () => {
2524    console.log('Preview frame ended');
2525})
2526```
2527
2528### on('error')
2529
2530on(type: 'error', callback: ErrorCallback<BusinessError\>): void
2531
2532监听预览输出的错误事件,通过注册回调函数获取结果。
2533
2534**系统能力:** SystemCapability.Multimedia.Camera.Core
2535
2536**参数:**
2537
2538| 参数名     | 类型         | 必填 | 说明                       |
2539| -------- | --------------| ---- | ------------------------ |
2540| type     | string        | 是   | 监听事件,固定为'error',previewOutput创建成功可监听。预览接口使用错误时触发该事件,比如调用(start(),release())等接口发生错误时返回对应错误信息。|
2541| callback | ErrorCallback<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)  |
2542
2543**示例:**
2544
2545```js
2546previewOutput.on('error', (previewOutputError) => {
2547    console.log(`Preview output error code: ${previewOutputError.code}`);
2548})
2549```
2550
2551## ImageRotation
2552
2553枚举,图片旋转角度。
2554
2555**系统能力:** SystemCapability.Multimedia.Camera.Core
2556
2557| 名称          | 值   | 说明           |
2558| ------------ | ---- | ------------- |
2559| ROTATION_0   | 0    | 图片旋转0度。   |
2560| ROTATION_90  | 90   | 图片旋转90度。  |
2561| ROTATION_180 | 180  | 图片旋转180度。 |
2562| ROTATION_270 | 270  | 图片旋转270度。 |
2563
2564## Location
2565
2566图片地理位置信息。
2567
2568**系统能力:** SystemCapability.Multimedia.Camera.Core
2569
2570| 名称          | 类型   | 必填 |说明         |
2571| ------------ | ------ | --- |------------ |
2572| latitude     | number | 是  |纬度(度)。    |
2573| longitude    | number | 是  |经度(度)。    |
2574| altitude     | number | 是  |海拔(米)。    |
2575
2576## QualityLevel
2577
2578枚举,图片质量。
2579
2580**系统能力:** SystemCapability.Multimedia.Camera.Core
2581
2582| 名称                  | 值   | 说明         |
2583| -------------------- | ---- | ------------ |
2584| QUALITY_LEVEL_HIGH   | 0    | 图片质量高。   |
2585| QUALITY_LEVEL_MEDIUM | 1    | 图片质量中等。 |
2586| QUALITY_LEVEL_LOW    | 2    | 图片质量差。   |
2587
2588
2589## PhotoCaptureSetting
2590
2591拍摄照片的设置。
2592
2593**系统能力:** SystemCapability.Multimedia.Camera.Core
2594
2595| 名称      | 类型                            | 必填  | 说明              |
2596| -------- | ------------------------------- | ---- | -----------------|
2597| quality  | [QualityLevel](#qualitylevel)   | 否   | 图片质量。         |
2598| rotation | [ImageRotation](#imagerotation) | 否   | 图片旋转角度。      |
2599| location | [Location](#location)           | 否   | 图片地理位置信息。   |
2600| mirror   | boolean                         | 否   |镜像使能开关(默认关)。 |
2601
2602## PhotoOutput
2603
2604拍照会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
2605
2606### capture
2607
2608capture(callback: AsyncCallback<void\>): void
2609
2610以默认设置触发一次拍照,通过注册回调函数获取结果。
2611
2612**系统能力:** SystemCapability.Multimedia.Camera.Core
2613
2614**参数:**
2615
2616| 参数名      | 类型                  | 必填 | 说明                 |
2617| -------- | -------------------- | ---- | ------------------- |
2618| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2619
2620**错误码:**
2621
2622以下错误码的详细介绍请参见相机错误码
2623
2624| 错误码ID         | 错误信息        |
2625| --------------- | --------------- |
2626| 7400104                |  Session not running.                                  |
2627| 7400201                |  Camera service fatal error.                           |
2628
2629**示例:**
2630
2631```js
2632photoOutput.capture((err) => {
2633    if (err) {
2634        console.error(`Failed to capture the photo ${err.code}`);
2635        return;
2636    }
2637    console.log('Callback invoked to indicate the photo capture request success.');
2638});
2639```
2640
2641### capture
2642
2643capture(): Promise<void\>
2644
2645以默认设置触发一次拍照,通过Promise获取结果。
2646
2647**系统能力:** SystemCapability.Multimedia.Camera.Core
2648
2649**返回值:**
2650
2651| 类型            | 说明                     |
2652| -------------- | ------------------------ |
2653| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2654
2655**错误码:**
2656
2657以下错误码的详细介绍请参见相机错误码
2658
2659| 错误码ID         | 错误信息        |
2660| --------------- | --------------- |
2661| 7400104                |  Session not running.                                  |
2662| 7400201                |  Camera service fatal error.                           |
2663
2664**示例:**
2665
2666```js
2667photoOutput.capture().then(() => {
2668    console.log('Promise returned to indicate that photo capture request success.');
2669}).catch((err) => {
2670    console.log('Failed to photoOutput capture '+ err.code);
2671});
2672```
2673
2674### capture
2675
2676capture(setting: PhotoCaptureSetting, callback: AsyncCallback<void\>): void
2677
2678以指定参数触发一次拍照,通过注册回调函数获取结果。
2679
2680**系统能力:** SystemCapability.Multimedia.Camera.Core
2681
2682**参数:**
2683
2684| 参数名      | 类型                                         | 必填 | 说明                  |
2685| -------- | ------------------------------------------- | ---- | -------------------- |
2686| setting  | [PhotoCaptureSetting](#photocapturesetting) | 是   | 拍照设置。             |
2687| callback | AsyncCallback<void\>                        | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)  |
2688
2689**错误码:**
2690
2691以下错误码的详细介绍请参见相机错误码
2692
2693| 错误码ID         | 错误信息        |
2694| --------------- | --------------- |
2695| 7400101                |  Parameter missing or parameter type incorrect        |
2696| 7400104                |  Session not running.                                  |
2697| 7400201                |  Camera service fatal error.                           |
2698
2699**示例:**
2700
2701```js
2702let captureLocation = {
2703  latitude: 0,
2704  longitude: 0,
2705  altitude: 0,
2706}
2707let settings = {
2708  quality: camera.QualityLevel.QUALITY_LEVEL_LOW,
2709  rotation: camera.ImageRotation.ROTATION_0,
2710  location: captureLocation,
2711  mirror: false
2712}
2713photoOutput.capture(settings, (err) => {
2714    if (err) {
2715        console.error(`Failed to capture the photo ${err.code}`);
2716        return;
2717    }
2718    console.log('Callback invoked to indicate the photo capture request success.');
2719});
2720```
2721
2722### capture
2723
2724capture(setting?: PhotoCaptureSetting): Promise<void\>
2725
2726以指定参数触发一次拍照,通过Promise获取结果。
2727
2728**系统能力:** SystemCapability.Multimedia.Camera.Core
2729
2730**参数:**
2731
2732| 参数名     | 类型                                         | 必填 | 说明      |
2733| ------- | ------------------------------------------- | ---- | -------- |
2734| setting | [PhotoCaptureSetting](#photocapturesetting) | 否   | 拍照设置。 |
2735
2736**返回值:**
2737
2738| 类型            | 说明                     |
2739| -------------- | ------------------------ |
2740| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2741
2742**错误码:**
2743
2744以下错误码的详细介绍请参见相机错误码
2745
2746| 错误码ID         | 错误信息        |
2747| --------------- | --------------- |
2748| 7400101                |  Parameter missing or parameter type incorrect        |
2749| 7400104                |  Session not running.                                  |
2750| 7400201                |  Camera service fatal error.                           |
2751
2752**示例:**
2753
2754```js
2755photoOutput.capture(settings).then(() => {
2756    console.log('Promise returned to indicate that photo capture request success.');
2757}).catch((err) => {
2758    console.log('Failed to photoOutput capture '+ err.code);
2759});
2760```
2761
2762### isMirrorSupported
2763
2764isMirrorSupported(): boolean
2765
2766查询是否支持镜像拍照。
2767
2768**系统能力:** SystemCapability.Multimedia.Camera.Core
2769
2770**返回值:**
2771
2772| 类型            | 说明                     |
2773| -------------- | ----------------------- |
2774| boolean | 返回是否支持镜像拍照。 |
2775
2776**示例:**
2777
2778```js
2779let isSupported = photoOutput.isMirrorSupported();
2780```
2781
2782### release
2783
2784release(callback: AsyncCallback<void\>): void
2785
2786释放输出资源,通过注册回调函数获取结果。
2787
2788**系统能力:** SystemCapability.Multimedia.Camera.Core
2789
2790**参数:**
2791
2792| 参数名      | 类型                  | 必填 | 说明                 |
2793| -------- | -------------------- | ---- | ------------------- |
2794| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2795
2796**错误码:**
2797
2798以下错误码的详细介绍请参见相机错误码
2799
2800| 错误码ID         | 错误信息        |
2801| --------------- | --------------- |
2802| 7400201                |  Camera service fatal error.                           |
2803
2804**示例:**
2805
2806```js
2807photoOutput.release((err) => {
2808    if (err) {
2809        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
2810        return;
2811    }
2812    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
2813});
2814```
2815
2816### release
2817
2818release(): Promise<void\>
2819
2820释放输出资源,通过Promise获取结果。
2821
2822**系统能力:** SystemCapability.Multimedia.Camera.Core
2823
2824**返回值:**
2825
2826| 类型            | 说明                     |
2827| -------------- | ----------------------- |
2828| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2829
2830**错误码:**
2831
2832以下错误码的详细介绍请参见相机错误码
2833
2834| 错误码ID         | 错误信息        |
2835| --------------- | --------------- |
2836| 7400201                |  Camera service fatal error.                           |
2837
2838**示例:**
2839
2840```js
2841photoOutput.release().then(() => {
2842    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
2843}).catch((err) => {
2844    console.log('Failed to photoOutput release '+ err.code);
2845});
2846```
2847
2848### on('captureStart')
2849
2850on(type: 'captureStart', callback: AsyncCallback<number\>): void
2851
2852监听拍照开始,通过注册回调函数获取Capture ID。
2853
2854**系统能力:** SystemCapability.Multimedia.Camera.Core
2855
2856**参数:**
2857
2858| 参数名      | 类型                    | 必填 | 说明                                       |
2859| -------- | ---------------------- | ---- | ------------------------------------------ |
2860| type     | string                 | 是   | 监听事件,固定为'captureStart',photoOutput创建成功后可监听。每次拍照,底层开始曝光时触发该事件并返回。 |
2861| callback | AsyncCallback<number\> | 是   | 使用callback的方式获取Capture ID。            |
2862
2863**示例:**
2864
2865```js
2866photoOutput.on('captureStart', (captureId) => {
2867    console.log(`photo capture stated, captureId : ${captureId}`);
2868})
2869```
2870
2871### on('frameShutter')
2872
2873on(type: 'frameShutter', callback: AsyncCallback<FrameShutterInfo\>): void
2874
2875监听拍照帧输出捕获,通过注册回调函数获取结果。
2876
2877**系统能力:** SystemCapability.Multimedia.Camera.Core
2878
2879**参数:**
2880
2881| 参数名     | 类型      | 必填 | 说明                                  |
2882| -------- | ---------- | --- | ------------------------------------ |
2883| type     | string     | 是   | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 |
2884| callback | AsyncCallback<[FrameShutterInfo](#frameshutterinfo)\> | 是   | 回调函数,用于获取相关信息。该回调返回意味着可以再次下发拍照请求。             |
2885
2886**示例:**
2887
2888```js
2889photoOutput.on('frameShutter', (frameShutterInfo) => {
2890    console.log(`photo capture end, captureId : ${frameShutterInfo.captureId}`);
2891    console.log(`Timestamp for frame : ${frameShutterInfo.timestamp}`);
2892})
2893```
2894
2895### on('captureEnd')
2896
2897on(type: 'captureEnd', callback: AsyncCallback<CaptureEndInfo\>): void
2898
2899监听拍照结束,通过注册回调函数获取结果。
2900
2901**系统能力:** SystemCapability.Multimedia.Camera.Core
2902
2903**参数:**
2904
2905| 参数名     | 类型           | 必填 | 说明                                       |
2906| -------- | --------------- | ---- | ---------------------------------------- |
2907| type     | string          | 是   | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 |
2908| callback | AsyncCallback<[CaptureEndInfo](#captureendinfo)\> | 是   | 回调函数,用于获取相关信息。                  |
2909
2910**示例:**
2911
2912```js
2913photoOutput.on('captureEnd', (captureEndInfo) => {
2914    console.log(`photo capture end, captureId : ${captureEndInfo.captureId}`);
2915    console.log(`frameCount : ${captureEndInfo.frameCount}`);
2916})
2917```
2918
2919### on('error')
2920
2921on(type: 'error', callback: ErrorCallback<BusinessError\>): void
2922
2923监听拍照输出发生错误,通过注册回调函数获取结果。
2924
2925**系统能力:** SystemCapability.Multimedia.Camera.Core
2926
2927**参数:**
2928
2929| 参数名     | 类型         | 必填 | 说明                                 |
2930| -------- | ------------- | ---- | ----------------------------------- |
2931| type     | string       | 是   | 监听事件,固定为'error',photoOutput创建成功后可监听。拍照接口调用时出现错误触发该事件并返回错误信息。 |
2932| callback | ErrorCallback<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)             |
2933
2934**示例:**
2935
2936```js
2937photoOutput.on('error', (error) => {
2938    console.log(`Photo output error code: ${error.code}`);
2939})
2940```
2941
2942## FrameShutterInfo
2943
2944拍照帧输出信息。
2945
2946**系统能力:** SystemCapability.Multimedia.Camera.Core
2947
2948| 名称      | 类型   | 必填 | 说明         |
2949| --------- | ------ | ---- | ---------- |
2950| captureId | number | 是   | 拍照的ID。  |
2951| timestamp | number | 是   | 快门时间戳。 |
2952
2953## CaptureEndInfo
2954
2955拍照停止信息。
2956
2957**系统能力:** SystemCapability.Multimedia.Camera.Core
2958
2959| 名称       | 类型   | 必填 | 说明       |
2960| ---------- | ------ | ---- | ---------|
2961| captureId  | number | 是   | 拍照的ID。 |
2962| frameCount | number | 是   | 帧数。    |
2963
2964## VideoOutput
2965
2966录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput)
2967
2968### start
2969
2970start(callback: AsyncCallback<void\>): void
2971
2972启动录制,通过注册回调函数获取结果。
2973
2974**系统能力:** SystemCapability.Multimedia.Camera.Core
2975
2976**参数:**
2977
2978| 参数名      | 类型                  | 必填 | 说明                 |
2979| -------- | -------------------- | ---- | -------------------- |
2980| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
2981
2982**错误码:**
2983
2984以下错误码的详细介绍请参见相机错误码
2985
2986| 错误码ID         | 错误信息        |
2987| --------------- | --------------- |
2988| 7400103                |  Session not config.                                   |
2989| 7400201                |  Camera service fatal error.                           |
2990
2991**示例:**
2992
2993```js
2994videoOutput.start((err) => {
2995    if (err) {
2996        console.error(`Failed to start the video output ${err.code}`);
2997        return;
2998    }
2999    console.log('Callback invoked to indicate the video output start success.');
3000});
3001```
3002
3003### start
3004
3005start(): Promise<void\>
3006
3007启动录制,通过Promise获取结果。
3008
3009**系统能力:** SystemCapability.Multimedia.Camera.Core
3010
3011**返回值:**
3012
3013| 类型            | 说明                     |
3014| -------------- | ----------------------- |
3015| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
3016
3017**错误码:**
3018
3019以下错误码的详细介绍请参见相机错误码
3020
3021| 错误码ID         | 错误信息        |
3022| --------------- | --------------- |
3023| 7400103                |  Session not config.                                   |
3024| 7400201                |  Camera service fatal error.                           |
3025
3026**示例:**
3027
3028```js
3029videoOutput.start().then(() => {
3030    console.log('Promise returned to indicate that start method execution success.');
3031}).catch((err) => {
3032    console.log('Failed to videoOutput start '+ err.code);
3033});
3034```
3035
3036### stop
3037
3038stop(callback: AsyncCallback<void\>): void
3039
3040结束录制,通过注册回调函数获取结果。
3041
3042**系统能力:** SystemCapability.Multimedia.Camera.Core
3043
3044**参数:**
3045
3046| 参数名     | 类型                 | 必填 | 说明                     |
3047| -------- | -------------------- | ---- | ------------------------ |
3048| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 |
3049
3050**示例:**
3051
3052```js
3053videoOutput.stop((err) => {
3054    if (err) {
3055        console.error(`Failed to stop the video output ${err.code}`);
3056        return;
3057    }
3058    console.log('Callback invoked to indicate the video output stop success.');
3059});
3060```
3061
3062### stop
3063
3064stop(): Promise<void\>
3065
3066结束录制,通过Promise获取结果。
3067
3068**系统能力:** SystemCapability.Multimedia.Camera.Core
3069
3070**返回值:**
3071
3072| 类型            | 说明                     |
3073| -------------- | ----------------------- |
3074| Promise<void\> | 使用Promise的方式获取结果。 |
3075
3076**示例:**
3077
3078```js
3079videoOutput.stop().then(() => {
3080    console.log('Promise returned to indicate that stop method execution success.');
3081}).catch((err) => {
3082    console.log('Failed to videoOutput stop '+ err.code);
3083});
3084```
3085
3086### release
3087
3088release(callback: AsyncCallback<void\>): void
3089
3090释放输出资源,通过注册回调函数获取结果。
3091
3092**系统能力:** SystemCapability.Multimedia.Camera.Core
3093
3094**参数:**
3095
3096| 参数名      | 类型                  | 必填 | 说明                 |
3097| -------- | -------------------- | ---- | ------------------- |
3098| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
3099
3100**错误码:**
3101
3102以下错误码的详细介绍请参见相机错误码
3103
3104| 错误码ID         | 错误信息        |
3105| --------------- | --------------- |
3106| 7400201                |  Camera service fatal error.                           |
3107
3108**示例:**
3109
3110```js
3111videoOutput.release((err) => {
3112    if (err) {
3113        console.error(`Failed to release the PreviewOutput instance ${err.code}`);
3114        return;
3115    }
3116    console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
3117});
3118```
3119
3120### release
3121
3122release(): Promise<void\>
3123
3124释放输出资源,通过Promise获取结果。
3125
3126**系统能力:** SystemCapability.Multimedia.Camera.Core
3127
3128**返回值:**
3129
3130| 类型            | 说明                     |
3131| -------------- | ----------------------- |
3132| Promise<void\> | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
3133
3134**错误码:**
3135
3136以下错误码的详细介绍请参见相机错误码
3137
3138| 错误码ID         | 错误信息        |
3139| --------------- | --------------- |
3140| 7400201                |  Camera service fatal error.                           |
3141
3142**示例:**
3143
3144```js
3145videoOutput.release().then(() => {
3146    console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
3147}).catch((err) => {
3148    console.log('Failed to videoOutput release '+ err.code);
3149});
3150```
3151
3152### on('frameStart')
3153
3154on(type: 'frameStart', callback: AsyncCallback<void\>): void
3155
3156监听录像开始,通过注册回调函数获取结果。
3157
3158**系统能力:** SystemCapability.Multimedia.Camera.Core
3159
3160**参数:**
3161
3162| 参数名      | 类型                  | 必填 | 说明                                       |
3163| -------- | -------------------- | ---- | ----------------------------------------- |
3164| type     | string               | 是   | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。底层第一次曝光时触发该事件并返回。 |
3165| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。  只要有该事件返回就证明录像开始                     |
3166
3167**示例:**
3168
3169```js
3170videoOutput.on('frameStart', () => {
3171    console.log('Video frame started');
3172})
3173```
3174
3175### on('frameEnd')
3176
3177on(type: 'frameEnd', callback: AsyncCallback<void\>): void
3178
3179监听录像结束,通过注册回调函数获取结果。
3180
3181**系统能力:** SystemCapability.Multimedia.Camera.Core
3182
3183**参数:**
3184
3185| 参数名      | 类型                  | 必填 | 说明                                       |
3186| -------- | -------------------- | ---- | ------------------------------------------ |
3187| type     | string               | 是   | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。录像完全结束最后一帧时触发该事件并返回  。 |
3188| callback | AsyncCallback<void\> | 是   | 回调函数,用于获取结果。 只要有该事件返回就证明录像结束                      |
3189
3190**示例:**
3191
3192```js
3193videoOutput.on('frameEnd', () => {
3194    console.log('Video frame ended');
3195})
3196```
3197
3198### on('error')
3199
3200on(type: 'error', callback: ErrorCallback<BusinessError\>): void
3201
3202监听录像输出发生错误,通过注册回调函数获取结果。
3203
3204**系统能力:** SystemCapability.Multimedia.Camera.Core
3205
3206**参数:**
3207
3208| 参数名     | 类型       | 必填 | 说明                                    |
3209| -------- | ----------- | ---- | -------------------------------------- |
3210| type     | string      | 是   | 监听事件,固定为'error',videoOutput创建成功后可监听。录像接口调用出现错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时出现错误返回对应错误信息。 |
3211| callback | Callback<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)                 |
3212
3213**示例:**
3214
3215```js
3216videoOutput.on('error', (error) => {
3217    console.log(`Video output error code: ${error.code}`);
3218})
3219```
3220
3221## MetadataOutput
3222
3223metadata流。继承[CameraOutput](#cameraoutput)
3224
3225### start
3226
3227start(callback: AsyncCallback<void\>): void
3228
3229开始输出metadata,通过注册回调函数获取结果。
3230
3231**系统能力:** SystemCapability.Multimedia.Camera.Core
3232
3233**参数:**
3234
3235| 参数名     | 类型                                                         | 必填 | 说明                 |
3236| -------- | -------------------------- | ---- | ------------------- |
3237| callback | AsyncCallback<void\>       | 是   | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
3238
3239**错误码:**
3240
3241以下错误码的详细介绍请参见相机错误码
3242
3243| 错误码ID         | 错误信息        |
3244| --------------- | --------------- |
3245| 7400103                |  Session not config.                                   |
3246| 7400201                |  Camera service fatal error.                           |
3247
3248**示例:**
3249
3250```js
3251metadataOutput.start((err) => {
3252    if (err) {
3253        console.error(`Failed to start metadataOutput. ${err.code}`);
3254        return;
3255    }
3256    console.log('Callback returned with metadataOutput started.');
3257})
3258```
3259
3260### start
3261
3262start(): Promise<void\>
3263
3264开始输出metadata,通过Promise获取结果。
3265
3266**系统能力:** SystemCapability.Multimedia.Camera.Core
3267
3268**返回值:**
3269
3270| 类型                     | 说明                     |
3271| ----------------------  | ------------------------ |
3272| Promise<void\>          | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) |
3273
3274**错误码:**
3275
3276以下错误码的详细介绍请参见相机错误码
3277
3278| 错误码ID         | 错误信息        |
3279| --------------- | --------------- |
3280| 7400103                |  Session not config.                                   |
3281| 7400201                |  Camera service fatal error.                           |
3282
3283**示例:**
3284
3285```js
3286metadataOutput.start().then(() => {
3287    console.log('Callback returned with metadataOutput started.');
3288}).catch((err) => {
3289    console.log('Failed to metadataOutput start '+ err.code);
3290});
3291```
3292
3293### stop
3294
3295stop(callback: AsyncCallback<void\>): void
3296
3297停止输出metadata,通过注册回调函数获取结果。
3298
3299**系统能力:** SystemCapability.Multimedia.Camera.Core
3300
3301**参数:**
3302
3303| 参数名     | 类型                         | 必填 | 说明                  |
3304| -------- | -------------------------- | ---- | ------------------- |
3305| callback | AsyncCallback<void\>       | 是   | 回调函数,用于获取结果。 |
3306
3307**示例:**
3308
3309```js
3310metadataOutput.stop((err) => {
3311    if (err) {
3312        console.error(`Failed to stop the metadataOutput. ${err.code}`);
3313        return;
3314    }
3315    console.log('Callback returned with metadataOutput stopped.');
3316})
3317```
3318
3319### stop
3320
3321stop(): Promise<void\>
3322
3323停止输出metadata,通过Promise获取结果。
3324
3325**系统能力:** SystemCapability.Multimedia.Camera.Core
3326
3327**返回值:**
3328
3329| 类型                    | 说明                        |
3330| ----------------------  | --------------------------- |
3331| Promise<void\>         | 使用Promise的方式获取结果。 |
3332
3333**示例:**
3334
3335```js
3336metadataOutput.stop().then(() => {
3337    console.log('Callback returned with metadataOutput stopped.');
3338}).catch((err) => {
3339    console.log('Failed to metadataOutput stop '+ err.code);
3340});
3341```
3342
3343### on('metadataObjectsAvailable')
3344
3345on(type: 'metadataObjectsAvailable', callback: AsyncCallback<Array<MetadataObject\>\>): void
3346
3347监听检测到的metadata对象,通过注册回调函数获取结果。
3348
3349**系统能力:** SystemCapability.Multimedia.Camera.Core
3350
3351**参数:**
3352
3353| 参数名      | 类型         | 必填 | 说明                                  |
3354| -------- | -------------- | ---- | ------------------------------------ |
3355| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据 |
3356| callback | Callback<Array<[MetadataObject](#metadataobject)\>\> | 是   | 回调函数,用于获取metadata数据。 |
3357
3358**示例:**
3359
3360```js
3361metadataOutput.on('metadataObjectsAvailable', (metadataObjectArr) => {
3362    console.log(`metadata output metadataObjectsAvailable`);
3363})
3364```
3365
3366### on('error')
3367
3368on(type: 'error', callback: ErrorCallback<BusinessError\>): void
3369
3370监听metadata流的错误,通过注册回调函数获取结果。
3371
3372**系统能力:** SystemCapability.Multimedia.Camera.Core
3373
3374**参数:**
3375
3376| 参数名     | 类型         | 必填 | 说明                                     |
3377| -------- | ------------- | ---- | --------------------------------------- |
3378| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用(start(),release())接口时发生错误返回对应错误信息。 |
3379| callback | Callback<BusinessError\> | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)            |
3380
3381**示例:**
3382
3383```js
3384metadataOutput.on('error', (metadataOutputError) => {
3385    console.log(`Metadata output error code: ${metadataOutputError.code}`);
3386})
3387```
3388
3389## MetadataObjectType
3390
3391枚举,metadata流。
3392
3393**系统能力:** SystemCapability.Multimedia.Camera.Core
3394
3395| 名称                       | 值   | 说明              |
3396| ------------------------- | ---- | ----------------- |
3397| FACE_DETECTION            | 0    | metadata对象类型,人脸检测。 |
3398
3399## Rect
3400
3401矩形定义。
3402
3403**系统能力:** SystemCapability.Multimedia.Camera.Core
3404
3405| 名称      | 类型   |      必填     |           说明                 |
3406| -------- | ------ | --------------- | -------------------- |
3407| topLeftX | number |        是          | 矩形区域左上角x坐标。   |
3408| topLeftY | number |         是          | 矩形区域左上角y坐标。   |
3409| width    | number |         是         | 矩形宽。              |
3410| height   | number |         是           |矩形高。              |
3411
3412## MetadataObject
3413
3414相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取
3415
3416| 名称      | 类型                            | 必填  | 说明              |
3417| -------- | ------------------------------- | ---- | -----------------|
3418| type  | [MetadataObjectType](#metadataobjecttype)   | 否   | metadata 类型,目前只有人脸识别。 |
3419| timestamp | number | 否   | 当前时间戳(毫秒)。 |
3420| boundingBox | [Rect](#rect)           | 否   | metadata 区域框 |