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.Core。 589 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.Core。 638 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.Core。 850 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.Core。 863 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.Core。 875 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.Core。 888 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.Core。 900 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 区域框 |