1e41f4b71Sopenharmony_ci# @ohos.multimedia.camera (相机管理) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci本模块为开发者提供一套简单且易于理解的相机服务接口,开发者通过调用接口可以开发相机应用。应用通过访问和操作相机硬件,实现基础操作,如预览、拍照和录像;还可以通过接口组合完成更多操作,如控制闪光灯和曝光时间、对焦或调焦等。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## 导入模块 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci```ts 12e41f4b71Sopenharmony_ciimport { camera } from '@kit.CameraKit'; 13e41f4b71Sopenharmony_ci``` 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## camera.getCameraManager 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_cigetCameraManager(context: Context): CameraManager 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci获取相机管理器实例,同步返回结果。 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci**参数:** 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 26e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------- | ---- | ---------------------------- | 27e41f4b71Sopenharmony_ci| context | [Context](../apis-ability-kit/js-apis-inner-application-baseContext.md) | 是 | 应用上下文。 | 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci**返回值:** 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci| 类型 | 说明 | 32e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 33e41f4b71Sopenharmony_ci| [CameraManager](#cameramanager) | 相机管理器。 | 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci**错误码:** 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 40e41f4b71Sopenharmony_ci| --------------- | --------------- | 41e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 42e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci**示例:** 45e41f4b71Sopenharmony_ci 46e41f4b71Sopenharmony_ci```ts 47e41f4b71Sopenharmony_ciimport { common } from '@kit.AbilityKit'; 48e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_cifunction getCameraManager(context: common.BaseContext): camera.CameraManager | undefined { 51e41f4b71Sopenharmony_ci let cameraManager: camera.CameraManager | undefined = undefined; 52e41f4b71Sopenharmony_ci try { 53e41f4b71Sopenharmony_ci cameraManager = camera.getCameraManager(context); 54e41f4b71Sopenharmony_ci } catch (error) { 55e41f4b71Sopenharmony_ci let err = error as BusinessError; 56e41f4b71Sopenharmony_ci console.error(`The getCameraManager call failed. error code: ${err.code}`); 57e41f4b71Sopenharmony_ci } 58e41f4b71Sopenharmony_ci return cameraManager; 59e41f4b71Sopenharmony_ci} 60e41f4b71Sopenharmony_ci``` 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci## CameraDevice 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ci相机设备信息。 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 69e41f4b71Sopenharmony_ci| -------------- | --------------------------------- | ---- | ---- |---------- | 70e41f4b71Sopenharmony_ci| cameraId | string | 是 | 否 | 相机id。| 71e41f4b71Sopenharmony_ci| cameraPosition | [CameraPosition](#cameraposition) | 是 | 否 | 相机位置。 | 72e41f4b71Sopenharmony_ci| cameraType | [CameraType](#cameratype) | 是 | 否 | 相机类型。 | 73e41f4b71Sopenharmony_ci| connectionType | [ConnectionType](#connectiontype) | 是 | 否 | 相机连接类型。 | 74e41f4b71Sopenharmony_ci| cameraOrientation<sup>12+</sup> | number | 是 | 否 | 镜头的安装角度,不会随着屏幕旋转而改变,取值范围为0°-360°。 | 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci## CameraPosition 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ci枚举,相机位置。 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 85e41f4b71Sopenharmony_ci| --------------------------- | ---- |-----------------------------------------------------------------| 86e41f4b71Sopenharmony_ci| CAMERA_POSITION_UNSPECIFIED | 0 | 相机位置未指定。 | 87e41f4b71Sopenharmony_ci| CAMERA_POSITION_BACK | 1 | 后置相机。 | 88e41f4b71Sopenharmony_ci| CAMERA_POSITION_FRONT | 2 | 前置相机。 | 89e41f4b71Sopenharmony_ci| CAMERA_POSITION_FOLD_INNER<sup>(deprecated)</sup> | 3 | 折叠态相机。<br/> 从API version 11开始支持,从API version 12开始废弃。 | 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci## CameraType 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci枚举,相机类型。 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 96e41f4b71Sopenharmony_ci 97e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 98e41f4b71Sopenharmony_ci| ----------------------- | ---- | -------------- | 99e41f4b71Sopenharmony_ci| CAMERA_TYPE_DEFAULT | 0 | 相机类型未指定。 | 100e41f4b71Sopenharmony_ci| CAMERA_TYPE_WIDE_ANGLE | 1 | 广角相机。 | 101e41f4b71Sopenharmony_ci| CAMERA_TYPE_ULTRA_WIDE | 2 | 超广角相机。 | 102e41f4b71Sopenharmony_ci| CAMERA_TYPE_TELEPHOTO | 3 | 长焦相机。 | 103e41f4b71Sopenharmony_ci| CAMERA_TYPE_TRUE_DEPTH | 4 | 带景深信息的相机。 | 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci## ConnectionType 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci枚举,相机连接类型。 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 110e41f4b71Sopenharmony_ci 111e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 112e41f4b71Sopenharmony_ci| ---------------------------- | ---- | ------------- | 113e41f4b71Sopenharmony_ci| CAMERA_CONNECTION_BUILT_IN | 0 | 内置相机。 | 114e41f4b71Sopenharmony_ci| CAMERA_CONNECTION_USB_PLUGIN | 1 | USB连接的相机。 | 115e41f4b71Sopenharmony_ci| CAMERA_CONNECTION_REMOTE | 2 | 远程连接的相机。 | 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci## CameraStatus 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci枚举,相机状态。 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 122e41f4b71Sopenharmony_ci 123e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 124e41f4b71Sopenharmony_ci| ------------------------- | ---- | ------------ | 125e41f4b71Sopenharmony_ci| CAMERA_STATUS_APPEAR | 0 | 新的相机出现。 | 126e41f4b71Sopenharmony_ci| CAMERA_STATUS_DISAPPEAR | 1 | 相机被移除。 | 127e41f4b71Sopenharmony_ci| CAMERA_STATUS_AVAILABLE | 2 | 相机可用。 | 128e41f4b71Sopenharmony_ci| CAMERA_STATUS_UNAVAILABLE | 3 | 相机不可用。 | 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci## FoldStatus<sup>12+</sup> 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci枚举,折叠机折叠状态。 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 137e41f4b71Sopenharmony_ci| ------------------------- | ---- | ------------ | 138e41f4b71Sopenharmony_ci| NON_FOLDABLE | 0 | 表示当前设备不可折叠。 | 139e41f4b71Sopenharmony_ci| EXPANDED | 1 | 表示当前设备折叠状态为完全展开。 | 140e41f4b71Sopenharmony_ci| FOLDED | 2 | 表示当前设备折叠状态为折叠。 | 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci## CameraStatusInfo 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci相机管理器回调返回的接口实例,表示相机状态信息。 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 147e41f4b71Sopenharmony_ci 148e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 149e41f4b71Sopenharmony_ci| ------ | ----------------------------- | --------- |------------ | ---------- | 150e41f4b71Sopenharmony_ci| camera | [CameraDevice](#cameradevice) | 否 | 否 | 相机信息。 | 151e41f4b71Sopenharmony_ci| status | [CameraStatus](#camerastatus) | 否 | 否 | 相机状态。 | 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci## FoldStatusInfo<sup>12+</sup> 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci相机管理器回调返回的接口实例,表示折叠机折叠状态信息。 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 160e41f4b71Sopenharmony_ci| ------ | ----------------------------- | --------- |------------ | ---------- | 161e41f4b71Sopenharmony_ci| supportedCameras | [Array<CameraDevice\>](#cameradevice) | 否 | 否 | 当前折叠状态所支持的相机信息列表。 | 162e41f4b71Sopenharmony_ci| foldStatus | [FoldStatus](#foldstatus12) | 否 | 否 | 折叠屏折叠状态。 | 163e41f4b71Sopenharmony_ci 164e41f4b71Sopenharmony_ci## Profile 165e41f4b71Sopenharmony_ci 166e41f4b71Sopenharmony_ci相机配置信息项。 167e41f4b71Sopenharmony_ci 168e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 169e41f4b71Sopenharmony_ci 170e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 171e41f4b71Sopenharmony_ci| -------- | ----------------------------- |---- | ---- | ------------- | 172e41f4b71Sopenharmony_ci| format | [CameraFormat](#cameraformat) | 是 | 否 | 输出格式。 | 173e41f4b71Sopenharmony_ci| size | [Size](#size) | 是 | 否 | 分辨率。<br>设置的是相机分辨率宽高,非实际出图宽高。 | 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci## FrameRateRange 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci帧率范围。 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 182e41f4b71Sopenharmony_ci| -------- | ----------------------------- |----- |---| -------------- | 183e41f4b71Sopenharmony_ci| min | number | 是 | 否 | 最小帧率。 | 184e41f4b71Sopenharmony_ci| max | number | 是 | 否 | 最大帧率。 | 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci## VideoProfile 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci视频配置信息项,继承[Profile](#profile)。 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 191e41f4b71Sopenharmony_ci 192e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 193e41f4b71Sopenharmony_ci| ------------------------- | ----------------------------------------- | --- | ---- |----------- | 194e41f4b71Sopenharmony_ci| frameRateRange | [FrameRateRange](#frameraterange) | 是 | 否 | 帧率范围,fps(frames per second)。 | 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci## CameraOutputCapability 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci相机输出能力项。 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 201e41f4b71Sopenharmony_ci 202e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 203e41f4b71Sopenharmony_ci| ----------------------------- | --------------------------------------------------- | ---- | ---- |-------------------| 204e41f4b71Sopenharmony_ci| previewProfiles | Array\<[Profile](#profile)\> | 是 | 否 | 支持的预览配置信息集合。 | 205e41f4b71Sopenharmony_ci| photoProfiles | Array\<[Profile](#profile)\> | 是 | 否 | 支持的拍照配置信息集合。 | 206e41f4b71Sopenharmony_ci| videoProfiles | Array\<[VideoProfile](#videoprofile)\> | 是 | 否 | 支持的录像配置信息集合。 | 207e41f4b71Sopenharmony_ci| supportedMetadataObjectTypes | Array\<[MetadataObjectType](#metadataobjecttype)\> | 是 | 否 | 支持的metadata流类型信息集合。 | 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci## SceneMode<sup>11+</sup> 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci枚举,相机支持模式。 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 216e41f4b71Sopenharmony_ci|----------------------------|---------|---------------------------------------------| 217e41f4b71Sopenharmony_ci| NORMAL_PHOTO | 1 | 普通拍照模式。详情见[PhotoSession](#photosession11) | 218e41f4b71Sopenharmony_ci| NORMAL_VIDEO | 2 | 普通录像模式。详情见[VideoSession](#videosession11) | 219e41f4b71Sopenharmony_ci| SECURE_PHOTO<sup>12+</sup> | 12 | 安全相机模式。详情见[SecureSession](#securesession12) | 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci## CameraErrorCode 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ci相机错误码。 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci接口使用不正确以及on接口监听error状态返回。 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 230e41f4b71Sopenharmony_ci| ------------------------- | ---- | ------------ | 231e41f4b71Sopenharmony_ci| INVALID_ARGUMENT | 7400101 | 参数缺失或者参数类型不对。 | 232e41f4b71Sopenharmony_ci| OPERATION_NOT_ALLOWED | 7400102 | 操作流程不对,不允许。 | 233e41f4b71Sopenharmony_ci| SESSION_NOT_CONFIG | 7400103 | session 未配置返回。 | 234e41f4b71Sopenharmony_ci| SESSION_NOT_RUNNING | 7400104 | session 未运行返回。 | 235e41f4b71Sopenharmony_ci| SESSION_CONFIG_LOCKED | 7400105 | session 配置已锁定返回。 | 236e41f4b71Sopenharmony_ci| DEVICE_SETTING_LOCKED | 7400106 | 设备设置已锁定返回。 | 237e41f4b71Sopenharmony_ci| CONFLICT_CAMERA | 7400107 | 设备重复打开返回。 | 238e41f4b71Sopenharmony_ci| DEVICE_DISABLED | 7400108 | 安全原因摄像头被禁用。 | 239e41f4b71Sopenharmony_ci| DEVICE_PREEMPTED | 7400109 | 相机被抢占导致无法使用。 | 240e41f4b71Sopenharmony_ci| UNRESOLVED_CONFLICTS_WITH_CURRENT_CONFIGURATIONS<sup>12+</sup> | 7400110 | 与当前配置存在冲突。 | 241e41f4b71Sopenharmony_ci| SERVICE_FATAL_ERROR | 7400201 | 相机服务错误返回。 | 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ci## CameraManager 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci相机管理器类,使用前需要通过[getCameraManager](#cameragetcameramanager)获取相机管理实例。 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci### getSupportedCameras 248e41f4b71Sopenharmony_ci 249e41f4b71Sopenharmony_cigetSupportedCameras(): Array\<CameraDevice\> 250e41f4b71Sopenharmony_ci 251e41f4b71Sopenharmony_ci获取支持指定的相机设备对象,同步返回结果。 252e41f4b71Sopenharmony_ci 253e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_ci**返回值:** 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci| 类型 | 说明 | 258e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 259e41f4b71Sopenharmony_ci| Array\<[CameraDevice](#cameradevice)> | 相机设备列表。 | 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci**示例:** 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci```ts 264e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 265e41f4b71Sopenharmony_ci 266e41f4b71Sopenharmony_cifunction getSupportedCameras(cameraManager: camera.CameraManager): Array<camera.CameraDevice> { 267e41f4b71Sopenharmony_ci let cameras: Array<camera.CameraDevice> = []; 268e41f4b71Sopenharmony_ci try { 269e41f4b71Sopenharmony_ci cameras = cameraManager.getSupportedCameras(); 270e41f4b71Sopenharmony_ci } catch (error) { 271e41f4b71Sopenharmony_ci let err = error as BusinessError; 272e41f4b71Sopenharmony_ci console.error(`The getSupportedCameras call failed. error code: ${err.code}`); 273e41f4b71Sopenharmony_ci } 274e41f4b71Sopenharmony_ci return cameras; 275e41f4b71Sopenharmony_ci} 276e41f4b71Sopenharmony_ci``` 277e41f4b71Sopenharmony_ci 278e41f4b71Sopenharmony_ci### getSupportedSceneModes<sup>11+</sup> 279e41f4b71Sopenharmony_ci 280e41f4b71Sopenharmony_cigetSupportedSceneModes(camera: CameraDevice): Array\<SceneMode\> 281e41f4b71Sopenharmony_ci 282e41f4b71Sopenharmony_ci获取指定的相机设备对象支持的模式,同步返回结果。 283e41f4b71Sopenharmony_ci 284e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 285e41f4b71Sopenharmony_ci 286e41f4b71Sopenharmony_ci**参数:** 287e41f4b71Sopenharmony_ci 288e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 289e41f4b71Sopenharmony_ci| ------------ |--------------------------------------------------------------- | -- | -------------------------- | 290e41f4b71Sopenharmony_ci| camera | [CameraDevice](#cameradevice) | 是 | 相机设备,通过 [getSupportedCameras](#getsupportedcameras) 接口获取。传参异常时,会返回错误码。 | 291e41f4b71Sopenharmony_ci 292e41f4b71Sopenharmony_ci**返回值:** 293e41f4b71Sopenharmony_ci 294e41f4b71Sopenharmony_ci| 类型 | 说明 | 295e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 296e41f4b71Sopenharmony_ci| Array\<[SceneMode](#scenemode11)> | 相机支持的模式列表。 | 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci**示例:** 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci```ts 301e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 302e41f4b71Sopenharmony_ci 303e41f4b71Sopenharmony_cifunction getSupportedSceneModes(cameraManager: camera.CameraManager, camera: camera.CameraDevice): Array<camera.SceneMode> { 304e41f4b71Sopenharmony_ci let modes: Array<camera.SceneMode> = []; 305e41f4b71Sopenharmony_ci try { 306e41f4b71Sopenharmony_ci modes = cameraManager.getSupportedSceneModes(camera); 307e41f4b71Sopenharmony_ci } catch (error) { 308e41f4b71Sopenharmony_ci let err = error as BusinessError; 309e41f4b71Sopenharmony_ci console.error(`The getSupportedSceneModes call failed. error code: ${err.code}`); 310e41f4b71Sopenharmony_ci } 311e41f4b71Sopenharmony_ci return modes; 312e41f4b71Sopenharmony_ci} 313e41f4b71Sopenharmony_ci``` 314e41f4b71Sopenharmony_ci 315e41f4b71Sopenharmony_ci### getSupportedOutputCapability<sup>(deprecated)</sup> 316e41f4b71Sopenharmony_ci 317e41f4b71Sopenharmony_cigetSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci查询相机设备支持的输出能力,同步返回结果。 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci> **说明:** 322e41f4b71Sopenharmony_ci> 从 API version 10开始支持,从API version 11开始废弃。建议使用[getSupportedOutputCapability](#getsupportedoutputcapability11)替代。 323e41f4b71Sopenharmony_ci 324e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 325e41f4b71Sopenharmony_ci 326e41f4b71Sopenharmony_ci**参数:** 327e41f4b71Sopenharmony_ci 328e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 329e41f4b71Sopenharmony_ci| ------------ |--------------------------------------------------------------- | -- | -------------------------- | 330e41f4b71Sopenharmony_ci| camera | [CameraDevice](#cameradevice) | 是 | 相机设备,通过 [getSupportedCameras](#getsupportedcameras) 接口获取。传参异常时,会返回错误码。 | 331e41f4b71Sopenharmony_ci 332e41f4b71Sopenharmony_ci**返回值:** 333e41f4b71Sopenharmony_ci 334e41f4b71Sopenharmony_ci| 类型 | 说明 | 335e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 336e41f4b71Sopenharmony_ci| [CameraOutputCapability](#cameraoutputcapability) | 相机输出能力。 | 337e41f4b71Sopenharmony_ci 338e41f4b71Sopenharmony_ci**示例:** 339e41f4b71Sopenharmony_ci 340e41f4b71Sopenharmony_ci```ts 341e41f4b71Sopenharmony_cifunction getSupportedOutputCapability(camera: camera.CameraDevice, cameraManager: camera.CameraManager): camera.CameraOutputCapability { 342e41f4b71Sopenharmony_ci let cameraOutputCapability: camera.CameraOutputCapability = cameraManager.getSupportedOutputCapability(camera); 343e41f4b71Sopenharmony_ci return cameraOutputCapability; 344e41f4b71Sopenharmony_ci} 345e41f4b71Sopenharmony_ci``` 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci### getSupportedOutputCapability<sup>11+</sup> 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_cigetSupportedOutputCapability(camera: CameraDevice, mode: SceneMode): CameraOutputCapability 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci查询相机设备在模式下支持的输出能力,同步返回结果。 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 354e41f4b71Sopenharmony_ci 355e41f4b71Sopenharmony_ci**参数:** 356e41f4b71Sopenharmony_ci 357e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 358e41f4b71Sopenharmony_ci| ------------ |--------------------------------------------------------------- | -- | -------------------------- | 359e41f4b71Sopenharmony_ci| camera | [CameraDevice](#cameradevice) | 是 | 相机设备,通过 [getSupportedCameras](#getsupportedcameras) 接口获取。 | 360e41f4b71Sopenharmony_ci| mode | [SceneMode](#scenemode11) | 是 | 相机模式,通过 [getSupportedSceneModes](#getsupportedscenemodes11) 接口获取。 | 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ci**返回值:** 363e41f4b71Sopenharmony_ci 364e41f4b71Sopenharmony_ci| 类型 | 说明 | 365e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 366e41f4b71Sopenharmony_ci| [CameraOutputCapability](#cameraoutputcapability) | 相机输出能力。 | 367e41f4b71Sopenharmony_ci 368e41f4b71Sopenharmony_ci**示例:** 369e41f4b71Sopenharmony_ci 370e41f4b71Sopenharmony_ci```ts 371e41f4b71Sopenharmony_cifunction getSupportedOutputCapability(camera: camera.CameraDevice, cameraManager: camera.CameraManager, sceneMode: camera.SceneMode): camera.CameraOutputCapability { 372e41f4b71Sopenharmony_ci let cameraOutputCapability: camera.CameraOutputCapability = cameraManager.getSupportedOutputCapability(camera, sceneMode); 373e41f4b71Sopenharmony_ci return cameraOutputCapability; 374e41f4b71Sopenharmony_ci} 375e41f4b71Sopenharmony_ci``` 376e41f4b71Sopenharmony_ci 377e41f4b71Sopenharmony_ci### isCameraMuted 378e41f4b71Sopenharmony_ci 379e41f4b71Sopenharmony_ciisCameraMuted(): boolean 380e41f4b71Sopenharmony_ci 381e41f4b71Sopenharmony_ci查询相机当前的禁用状态(禁用/未禁用)。 382e41f4b71Sopenharmony_ci 383e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 384e41f4b71Sopenharmony_ci 385e41f4b71Sopenharmony_ci**返回值:** 386e41f4b71Sopenharmony_ci 387e41f4b71Sopenharmony_ci| 类型 | 说明 | 388e41f4b71Sopenharmony_ci| ---------- | -------------------------------------------- | 389e41f4b71Sopenharmony_ci| boolean | 返回true表示相机被禁用,返回false表示相机未被禁用。 | 390e41f4b71Sopenharmony_ci 391e41f4b71Sopenharmony_ci**示例:** 392e41f4b71Sopenharmony_ci 393e41f4b71Sopenharmony_ci```ts 394e41f4b71Sopenharmony_cifunction isCameraMuted(cameraManager: camera.CameraManager): boolean { 395e41f4b71Sopenharmony_ci let isMuted: boolean = cameraManager.isCameraMuted(); 396e41f4b71Sopenharmony_ci return isMuted; 397e41f4b71Sopenharmony_ci} 398e41f4b71Sopenharmony_ci``` 399e41f4b71Sopenharmony_ci 400e41f4b71Sopenharmony_ci### createCameraInput 401e41f4b71Sopenharmony_ci 402e41f4b71Sopenharmony_cicreateCameraInput(camera: CameraDevice): CameraInput 403e41f4b71Sopenharmony_ci 404e41f4b71Sopenharmony_ci使用CameraDevice对象创建CameraInput实例,同步返回结果。 405e41f4b71Sopenharmony_ci 406e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.CAMERA 407e41f4b71Sopenharmony_ci 408e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 409e41f4b71Sopenharmony_ci 410e41f4b71Sopenharmony_ci**参数:** 411e41f4b71Sopenharmony_ci 412e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 413e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- |--------------------------------------------------| 414e41f4b71Sopenharmony_ci| camera | [CameraDevice](#cameradevice) | 是 | CameraDevice对象,通过 [getSupportedCameras](#getsupportedcameras) 接口获取。 | 415e41f4b71Sopenharmony_ci 416e41f4b71Sopenharmony_ci**返回值:** 417e41f4b71Sopenharmony_ci 418e41f4b71Sopenharmony_ci| 类型 | 说明 | 419e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 420e41f4b71Sopenharmony_ci| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 421e41f4b71Sopenharmony_ci 422e41f4b71Sopenharmony_ci**错误码:** 423e41f4b71Sopenharmony_ci 424e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 425e41f4b71Sopenharmony_ci 426e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 427e41f4b71Sopenharmony_ci| --------------- | --------------- | 428e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 429e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 430e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 431e41f4b71Sopenharmony_ci 432e41f4b71Sopenharmony_ci**示例:** 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci```ts 435e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 436e41f4b71Sopenharmony_ci 437e41f4b71Sopenharmony_cifunction createCameraInput(camera: camera.CameraDevice, cameraManager: camera.CameraManager): camera.CameraInput | undefined { 438e41f4b71Sopenharmony_ci let cameraInput: camera.CameraInput | undefined = undefined; 439e41f4b71Sopenharmony_ci try { 440e41f4b71Sopenharmony_ci cameraInput = cameraManager.createCameraInput(camera); 441e41f4b71Sopenharmony_ci } catch (error) { 442e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 443e41f4b71Sopenharmony_ci let err = error as BusinessError; 444e41f4b71Sopenharmony_ci console.error(`The createCameraInput call failed. error code: ${err.code}`); 445e41f4b71Sopenharmony_ci } 446e41f4b71Sopenharmony_ci return cameraInput; 447e41f4b71Sopenharmony_ci} 448e41f4b71Sopenharmony_ci``` 449e41f4b71Sopenharmony_ci 450e41f4b71Sopenharmony_ci### createCameraInput 451e41f4b71Sopenharmony_ci 452e41f4b71Sopenharmony_cicreateCameraInput(position: CameraPosition, type: CameraType): CameraInput 453e41f4b71Sopenharmony_ci 454e41f4b71Sopenharmony_ci根据相机位置和类型创建CameraInput实例,同步返回结果。 455e41f4b71Sopenharmony_ci 456e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.CAMERA 457e41f4b71Sopenharmony_ci 458e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 459e41f4b71Sopenharmony_ci 460e41f4b71Sopenharmony_ci**参数:** 461e41f4b71Sopenharmony_ci 462e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 463e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | --------------------------------- | 464e41f4b71Sopenharmony_ci| position | [CameraPosition](#cameraposition) | 是 | 相机位置,通过 [getSupportedCameras](#getsupportedcameras) 接口获取设备,然后获取设备位置信息。 | 465e41f4b71Sopenharmony_ci| type | [CameraType](#cameratype) | 是 | 相机类型,通过 [getSupportedCameras](#getsupportedcameras) 接口获取设备,然后获取设备类型信息。 | 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci**返回值:** 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_ci| 类型 | 说明 | 470e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 471e41f4b71Sopenharmony_ci| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci**错误码:** 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 478e41f4b71Sopenharmony_ci| --------------- | --------------- | 479e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 480e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 481e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 482e41f4b71Sopenharmony_ci 483e41f4b71Sopenharmony_ci**示例:** 484e41f4b71Sopenharmony_ci 485e41f4b71Sopenharmony_ci```ts 486e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 487e41f4b71Sopenharmony_ci 488e41f4b71Sopenharmony_cifunction createCameraInput(camera: camera.CameraDevice, cameraManager: camera.CameraManager): camera.CameraInput | undefined { 489e41f4b71Sopenharmony_ci let position: camera.CameraPosition = camera.cameraPosition; 490e41f4b71Sopenharmony_ci let type: camera.CameraType = camera.cameraType; 491e41f4b71Sopenharmony_ci let cameraInput: camera.CameraInput | undefined = undefined; 492e41f4b71Sopenharmony_ci try { 493e41f4b71Sopenharmony_ci cameraInput = cameraManager.createCameraInput(position, type); 494e41f4b71Sopenharmony_ci } catch (error) { 495e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 496e41f4b71Sopenharmony_ci let err = error as BusinessError; 497e41f4b71Sopenharmony_ci console.error(`The createCameraInput call failed. error code: ${err.code}`); 498e41f4b71Sopenharmony_ci } 499e41f4b71Sopenharmony_ci return cameraInput; 500e41f4b71Sopenharmony_ci} 501e41f4b71Sopenharmony_ci``` 502e41f4b71Sopenharmony_ci 503e41f4b71Sopenharmony_ci### createPreviewOutput 504e41f4b71Sopenharmony_ci 505e41f4b71Sopenharmony_cicreatePreviewOutput(profile: Profile, surfaceId: string): PreviewOutput 506e41f4b71Sopenharmony_ci 507e41f4b71Sopenharmony_ci创建预览输出对象,同步返回结果。 508e41f4b71Sopenharmony_ci 509e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 510e41f4b71Sopenharmony_ci 511e41f4b71Sopenharmony_ci**参数:** 512e41f4b71Sopenharmony_ci 513e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 514e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------- | ---- | ------------------------------- | 515e41f4b71Sopenharmony_ci| profile | [Profile](#profile) | 是 | 支持的预览配置信息,通过[getSupportedOutputCapability](#getsupportedoutputcapability11)接口获取。| 516e41f4b71Sopenharmony_ci| surfaceId| string | 是 | 从[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](../apis-image-kit/js-apis-image.md#imagereceiver9)组件获取的surfaceId。| 517e41f4b71Sopenharmony_ci 518e41f4b71Sopenharmony_ci**返回值:** 519e41f4b71Sopenharmony_ci 520e41f4b71Sopenharmony_ci| 类型 | 说明 | 521e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 522e41f4b71Sopenharmony_ci| [PreviewOutput](#previewoutput) | PreviewOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci**错误码:** 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 529e41f4b71Sopenharmony_ci| --------------- | --------------- | 530e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 531e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 532e41f4b71Sopenharmony_ci 533e41f4b71Sopenharmony_ci**示例:** 534e41f4b71Sopenharmony_ci 535e41f4b71Sopenharmony_ci```ts 536e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 537e41f4b71Sopenharmony_ci 538e41f4b71Sopenharmony_cifunction createPreviewOutput(cameraOutputCapability: camera.CameraOutputCapability, cameraManager: camera.CameraManager, surfaceId: string): camera.PreviewOutput | undefined { 539e41f4b71Sopenharmony_ci let profile: camera.Profile = cameraOutputCapability.previewProfiles[0]; 540e41f4b71Sopenharmony_ci let previewOutput: camera.PreviewOutput | undefined = undefined; 541e41f4b71Sopenharmony_ci try { 542e41f4b71Sopenharmony_ci previewOutput = cameraManager.createPreviewOutput(profile, surfaceId); 543e41f4b71Sopenharmony_ci } catch (error) { 544e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 545e41f4b71Sopenharmony_ci let err = error as BusinessError; 546e41f4b71Sopenharmony_ci console.error(`The createPreviewOutput call failed. error code: ${err.code}`); 547e41f4b71Sopenharmony_ci } 548e41f4b71Sopenharmony_ci return previewOutput; 549e41f4b71Sopenharmony_ci} 550e41f4b71Sopenharmony_ci``` 551e41f4b71Sopenharmony_ci 552e41f4b71Sopenharmony_ci### createPreviewOutput<sup>12+</sup> 553e41f4b71Sopenharmony_ci 554e41f4b71Sopenharmony_cicreatePreviewOutput(surfaceId: string): PreviewOutput 555e41f4b71Sopenharmony_ci 556e41f4b71Sopenharmony_ci创建无配置信息的预览输出对象,同步返回结果。该接口需配合[preconfig](#preconfig12)一起使用。 557e41f4b71Sopenharmony_ci 558e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 559e41f4b71Sopenharmony_ci 560e41f4b71Sopenharmony_ci**参数:** 561e41f4b71Sopenharmony_ci 562e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 563e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------- | ---- | ------------------------------- | 564e41f4b71Sopenharmony_ci| surfaceId| string | 是 | 从[XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](../apis-image-kit/js-apis-image.md#imagereceiver9)组件获取的surfaceId。| 565e41f4b71Sopenharmony_ci 566e41f4b71Sopenharmony_ci**返回值:** 567e41f4b71Sopenharmony_ci 568e41f4b71Sopenharmony_ci| 类型 | 说明 | 569e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 570e41f4b71Sopenharmony_ci| [PreviewOutput](#previewoutput) | PreviewOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 571e41f4b71Sopenharmony_ci 572e41f4b71Sopenharmony_ci**错误码:** 573e41f4b71Sopenharmony_ci 574e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 575e41f4b71Sopenharmony_ci 576e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 577e41f4b71Sopenharmony_ci|---------|------------------------------------------------| 578e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 579e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 580e41f4b71Sopenharmony_ci 581e41f4b71Sopenharmony_ci**示例:** 582e41f4b71Sopenharmony_ci 583e41f4b71Sopenharmony_ci```ts 584e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 585e41f4b71Sopenharmony_ci 586e41f4b71Sopenharmony_cifunction createPreviewOutput(cameraManager: camera.CameraManager, surfaceId: string): camera.PreviewOutput | undefined { 587e41f4b71Sopenharmony_ci let previewOutput: camera.PreviewOutput | undefined = undefined; 588e41f4b71Sopenharmony_ci try { 589e41f4b71Sopenharmony_ci previewOutput = cameraManager.createPreviewOutput(surfaceId); 590e41f4b71Sopenharmony_ci } catch (error) { 591e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 592e41f4b71Sopenharmony_ci let err = error as BusinessError; 593e41f4b71Sopenharmony_ci console.error(`The createPreviewOutput call failed. error code: ${err.code}`); 594e41f4b71Sopenharmony_ci } 595e41f4b71Sopenharmony_ci return previewOutput; 596e41f4b71Sopenharmony_ci} 597e41f4b71Sopenharmony_ci``` 598e41f4b71Sopenharmony_ci 599e41f4b71Sopenharmony_ci### createPhotoOutput<sup>(deprecated)</sup> 600e41f4b71Sopenharmony_ci 601e41f4b71Sopenharmony_cicreatePhotoOutput(profile: Profile, surfaceId: string): PhotoOutput 602e41f4b71Sopenharmony_ci 603e41f4b71Sopenharmony_ci创建拍照输出对象,同步返回结果。 604e41f4b71Sopenharmony_ci 605e41f4b71Sopenharmony_ci> **说明:** 606e41f4b71Sopenharmony_ci> 从 API version 10开始支持,从API version 11开始废弃。建议使用[createPhotoOutput](#createphotooutput11)替代。 607e41f4b71Sopenharmony_ci 608e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 609e41f4b71Sopenharmony_ci 610e41f4b71Sopenharmony_ci**参数:** 611e41f4b71Sopenharmony_ci 612e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 613e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | ----------------------------------- | 614e41f4b71Sopenharmony_ci| profile | [Profile](#profile) | 是 | 支持的拍照配置信息,通过[getSupportedOutputCapability](#getsupportedoutputcapability11)接口获取。| 615e41f4b71Sopenharmony_ci| surfaceId| string | 是 | 从[ImageReceiver](../apis-image-kit/js-apis-image.md#imagereceiver9)获取的surfaceId。| 616e41f4b71Sopenharmony_ci 617e41f4b71Sopenharmony_ci**返回值:** 618e41f4b71Sopenharmony_ci 619e41f4b71Sopenharmony_ci| 类型 | 说明 | 620e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 621e41f4b71Sopenharmony_ci| [PhotoOutput](#photooutput) | PhotoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 622e41f4b71Sopenharmony_ci 623e41f4b71Sopenharmony_ci**错误码:** 624e41f4b71Sopenharmony_ci 625e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 628e41f4b71Sopenharmony_ci| --------------- | --------------- | 629e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 630e41f4b71Sopenharmony_ci 631e41f4b71Sopenharmony_ci```ts 632e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 633e41f4b71Sopenharmony_ci 634e41f4b71Sopenharmony_cifunction createPhotoOutput(cameraOutputCapability: camera.CameraOutputCapability, cameraManager: camera.CameraManager, surfaceId: string): camera.PhotoOutput | undefined { 635e41f4b71Sopenharmony_ci let profile: camera.Profile = cameraOutputCapability.photoProfiles[0]; 636e41f4b71Sopenharmony_ci let photoOutput: camera.PhotoOutput | undefined = undefined; 637e41f4b71Sopenharmony_ci try { 638e41f4b71Sopenharmony_ci photoOutput = cameraManager.createPhotoOutput(profile, surfaceId); 639e41f4b71Sopenharmony_ci } catch (error) { 640e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 641e41f4b71Sopenharmony_ci let err = error as BusinessError; 642e41f4b71Sopenharmony_ci console.error(`The createPhotoOutput call failed. error code: ${err.code}`); 643e41f4b71Sopenharmony_ci } 644e41f4b71Sopenharmony_ci return photoOutput; 645e41f4b71Sopenharmony_ci} 646e41f4b71Sopenharmony_ci``` 647e41f4b71Sopenharmony_ci 648e41f4b71Sopenharmony_ci### createPhotoOutput<sup>11+</sup> 649e41f4b71Sopenharmony_ci 650e41f4b71Sopenharmony_cicreatePhotoOutput(profile?: Profile): PhotoOutput 651e41f4b71Sopenharmony_ci 652e41f4b71Sopenharmony_ci创建拍照输出对象,同步返回结果。 653e41f4b71Sopenharmony_ci 654e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 655e41f4b71Sopenharmony_ci 656e41f4b71Sopenharmony_ci**参数:** 657e41f4b71Sopenharmony_ci 658e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 659e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- |----| ----------------------------------- | 660e41f4b71Sopenharmony_ci| profile | [Profile](#profile) | 否 | 支持的拍照配置信息,通过[getSupportedOutputCapability](#getsupportedoutputcapability11)接口获取。<br>API 11时,该参数必填;从API version 12开始,如果使用[preconfig](#preconfig12)进行预配置,传入profile参数会覆盖preconfig的预配置参数。| 661e41f4b71Sopenharmony_ci 662e41f4b71Sopenharmony_ci**返回值:** 663e41f4b71Sopenharmony_ci 664e41f4b71Sopenharmony_ci| 类型 | 说明 | 665e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 666e41f4b71Sopenharmony_ci| [PhotoOutput](#photooutput) | PhotoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 667e41f4b71Sopenharmony_ci 668e41f4b71Sopenharmony_ci**错误码:** 669e41f4b71Sopenharmony_ci 670e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 671e41f4b71Sopenharmony_ci 672e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 673e41f4b71Sopenharmony_ci|----------|------------------------------------------------| 674e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 675e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 676e41f4b71Sopenharmony_ci 677e41f4b71Sopenharmony_ci**示例:** 678e41f4b71Sopenharmony_ci 679e41f4b71Sopenharmony_ci```ts 680e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 681e41f4b71Sopenharmony_ci 682e41f4b71Sopenharmony_cifunction createPhotoOutput(cameraOutputCapability: camera.CameraOutputCapability, cameraManager: camera.CameraManager): camera.PhotoOutput | undefined { 683e41f4b71Sopenharmony_ci let profile: camera.Profile = cameraOutputCapability.photoProfiles[0]; 684e41f4b71Sopenharmony_ci let photoOutput: camera.PhotoOutput | undefined = undefined; 685e41f4b71Sopenharmony_ci try { 686e41f4b71Sopenharmony_ci photoOutput = cameraManager.createPhotoOutput(profile); 687e41f4b71Sopenharmony_ci } catch (error) { 688e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 689e41f4b71Sopenharmony_ci let err = error as BusinessError; 690e41f4b71Sopenharmony_ci console.error(`The createPhotoOutput call failed. error code: ${err.code}`); 691e41f4b71Sopenharmony_ci } 692e41f4b71Sopenharmony_ci return photoOutput; 693e41f4b71Sopenharmony_ci} 694e41f4b71Sopenharmony_ci``` 695e41f4b71Sopenharmony_ci 696e41f4b71Sopenharmony_ci### createVideoOutput 697e41f4b71Sopenharmony_ci 698e41f4b71Sopenharmony_cicreateVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput 699e41f4b71Sopenharmony_ci 700e41f4b71Sopenharmony_ci创建录像输出对象,同步返回结果。 701e41f4b71Sopenharmony_ci 702e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 703e41f4b71Sopenharmony_ci 704e41f4b71Sopenharmony_ci**参数:** 705e41f4b71Sopenharmony_ci 706e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 707e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | ------------------------------ | 708e41f4b71Sopenharmony_ci| profile | [VideoProfile](#videoprofile) | 是 | 支持的录像配置信息,通过[getSupportedOutputCapability](#getsupportedoutputcapability11)接口获取。 | 709e41f4b71Sopenharmony_ci| surfaceId| string | 是 | 从[AVRecorder](../apis-media-kit/js-apis-media.md#avrecorder9)获取的surfaceId。| 710e41f4b71Sopenharmony_ci 711e41f4b71Sopenharmony_ci**返回值:** 712e41f4b71Sopenharmony_ci 713e41f4b71Sopenharmony_ci| 类型 | 说明 | 714e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 715e41f4b71Sopenharmony_ci| [VideoOutput](#videooutput) | VideoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 716e41f4b71Sopenharmony_ci 717e41f4b71Sopenharmony_ci**错误码:** 718e41f4b71Sopenharmony_ci 719e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 720e41f4b71Sopenharmony_ci 721e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 722e41f4b71Sopenharmony_ci| --------------- | --------------- | 723e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 724e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 725e41f4b71Sopenharmony_ci 726e41f4b71Sopenharmony_ci**示例:** 727e41f4b71Sopenharmony_ci 728e41f4b71Sopenharmony_ci```ts 729e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 730e41f4b71Sopenharmony_ci 731e41f4b71Sopenharmony_cifunction createVideoOutput(cameraOutputCapability: camera.CameraOutputCapability, cameraManager: camera.CameraManager, surfaceId: string): camera.VideoOutput | undefined { 732e41f4b71Sopenharmony_ci let profile: camera.VideoProfile = cameraOutputCapability.videoProfiles[0]; 733e41f4b71Sopenharmony_ci let videoOutput: camera.VideoOutput | undefined = undefined; 734e41f4b71Sopenharmony_ci try { 735e41f4b71Sopenharmony_ci videoOutput = cameraManager.createVideoOutput(profile, surfaceId); 736e41f4b71Sopenharmony_ci } catch (error) { 737e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 738e41f4b71Sopenharmony_ci let err = error as BusinessError; 739e41f4b71Sopenharmony_ci console.error(`The createVideoOutput call failed. error code: ${err.code}`); 740e41f4b71Sopenharmony_ci } 741e41f4b71Sopenharmony_ci return videoOutput; 742e41f4b71Sopenharmony_ci} 743e41f4b71Sopenharmony_ci``` 744e41f4b71Sopenharmony_ci 745e41f4b71Sopenharmony_ci### createVideoOutput<sup>12+</sup> 746e41f4b71Sopenharmony_ci 747e41f4b71Sopenharmony_cicreateVideoOutput(surfaceId: string): VideoOutput 748e41f4b71Sopenharmony_ci 749e41f4b71Sopenharmony_ci创建无配置信息的录像输出对象,同步返回结果。该接口需配合[preconfig](#preconfig12-1)功能一起使用。 750e41f4b71Sopenharmony_ci 751e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 752e41f4b71Sopenharmony_ci 753e41f4b71Sopenharmony_ci**参数:** 754e41f4b71Sopenharmony_ci 755e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 756e41f4b71Sopenharmony_ci|-----------|--------|-------|----------------------------------------------------------------------------| 757e41f4b71Sopenharmony_ci| surfaceId | string | 是 | 从[AVRecorder](../apis-media-kit/js-apis-media.md#avrecorder9)获取的surfaceId。 | 758e41f4b71Sopenharmony_ci 759e41f4b71Sopenharmony_ci**返回值:** 760e41f4b71Sopenharmony_ci 761e41f4b71Sopenharmony_ci| 类型 | 说明 | 762e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 763e41f4b71Sopenharmony_ci| [VideoOutput](#videooutput) | VideoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 764e41f4b71Sopenharmony_ci 765e41f4b71Sopenharmony_ci**错误码:** 766e41f4b71Sopenharmony_ci 767e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 768e41f4b71Sopenharmony_ci 769e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 770e41f4b71Sopenharmony_ci|----------|------------------------------------------------| 771e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 772e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 773e41f4b71Sopenharmony_ci 774e41f4b71Sopenharmony_ci**示例:** 775e41f4b71Sopenharmony_ci 776e41f4b71Sopenharmony_ci```ts 777e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 778e41f4b71Sopenharmony_ci 779e41f4b71Sopenharmony_cifunction createVideoOutput(cameraManager: camera.CameraManager, surfaceId: string): camera.VideoOutput | undefined { 780e41f4b71Sopenharmony_ci let videoOutput: camera.VideoOutput | undefined = undefined; 781e41f4b71Sopenharmony_ci try { 782e41f4b71Sopenharmony_ci videoOutput = cameraManager.createVideoOutput(surfaceId); 783e41f4b71Sopenharmony_ci } catch (error) { 784e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 785e41f4b71Sopenharmony_ci let err = error as BusinessError; 786e41f4b71Sopenharmony_ci console.error(`The createVideoOutput call failed. error code: ${err.code}`); 787e41f4b71Sopenharmony_ci } 788e41f4b71Sopenharmony_ci return videoOutput; 789e41f4b71Sopenharmony_ci} 790e41f4b71Sopenharmony_ci``` 791e41f4b71Sopenharmony_ci 792e41f4b71Sopenharmony_ci### createMetadataOutput 793e41f4b71Sopenharmony_ci 794e41f4b71Sopenharmony_cicreateMetadataOutput(metadataObjectTypes: Array\<MetadataObjectType\>): MetadataOutput 795e41f4b71Sopenharmony_ci 796e41f4b71Sopenharmony_ci创建metadata流输出对象,同步返回结果。 797e41f4b71Sopenharmony_ci 798e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 799e41f4b71Sopenharmony_ci 800e41f4b71Sopenharmony_ci**参数:** 801e41f4b71Sopenharmony_ci 802e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 803e41f4b71Sopenharmony_ci| -------------------- | -------------------------------------------------- | --- | ---------------------------- | 804e41f4b71Sopenharmony_ci| metadataObjectTypes | Array\<[MetadataObjectType](#metadataobjecttype)\> | 是 | metadata流类型信息,通过[getSupportedOutputCapability](#getsupportedoutputcapability11)接口获取。 | 805e41f4b71Sopenharmony_ci 806e41f4b71Sopenharmony_ci**返回值:** 807e41f4b71Sopenharmony_ci 808e41f4b71Sopenharmony_ci| 类型 | 说明 | 809e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 810e41f4b71Sopenharmony_ci| [MetadataOutput](#metadataoutput) | MetadataOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 811e41f4b71Sopenharmony_ci 812e41f4b71Sopenharmony_ci**错误码:** 813e41f4b71Sopenharmony_ci 814e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 815e41f4b71Sopenharmony_ci 816e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 817e41f4b71Sopenharmony_ci| --------------- | --------------- | 818e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 819e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 820e41f4b71Sopenharmony_ci 821e41f4b71Sopenharmony_ci**示例:** 822e41f4b71Sopenharmony_ci 823e41f4b71Sopenharmony_ci```ts 824e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 825e41f4b71Sopenharmony_ci 826e41f4b71Sopenharmony_cifunction createMetadataOutput(cameraManager: camera.CameraManager, cameraOutputCapability: camera.CameraOutputCapability): void { 827e41f4b71Sopenharmony_ci let metadataObjectTypes: Array<camera.MetadataObjectType> = cameraOutputCapability.supportedMetadataObjectTypes; 828e41f4b71Sopenharmony_ci let metadataOutput: camera.MetadataOutput | undefined = undefined; 829e41f4b71Sopenharmony_ci try { 830e41f4b71Sopenharmony_ci metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes); 831e41f4b71Sopenharmony_ci } catch (error) { 832e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 833e41f4b71Sopenharmony_ci let err = error as BusinessError; 834e41f4b71Sopenharmony_ci console.error(`createMetadataOutput error. error code: ${err.code}`); 835e41f4b71Sopenharmony_ci } 836e41f4b71Sopenharmony_ci} 837e41f4b71Sopenharmony_ci``` 838e41f4b71Sopenharmony_ci 839e41f4b71Sopenharmony_ci### createCaptureSession<sup>(deprecated)</sup> 840e41f4b71Sopenharmony_ci 841e41f4b71Sopenharmony_cicreateCaptureSession(): CaptureSession 842e41f4b71Sopenharmony_ci 843e41f4b71Sopenharmony_ci创建CaptureSession实例,同步返回结果。 844e41f4b71Sopenharmony_ci 845e41f4b71Sopenharmony_ci> **说明:** 846e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[createSession](#createsession11)替代。 847e41f4b71Sopenharmony_ci 848e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 849e41f4b71Sopenharmony_ci 850e41f4b71Sopenharmony_ci**返回值:** 851e41f4b71Sopenharmony_ci 852e41f4b71Sopenharmony_ci| 类型 | 说明 | 853e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 854e41f4b71Sopenharmony_ci| [CaptureSession](#capturesessiondeprecated) | CaptureSession实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 855e41f4b71Sopenharmony_ci 856e41f4b71Sopenharmony_ci**错误码:** 857e41f4b71Sopenharmony_ci 858e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 859e41f4b71Sopenharmony_ci 860e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 861e41f4b71Sopenharmony_ci| --------------- | --------------- | 862e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 863e41f4b71Sopenharmony_ci 864e41f4b71Sopenharmony_ci**示例:** 865e41f4b71Sopenharmony_ci 866e41f4b71Sopenharmony_ci```ts 867e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 868e41f4b71Sopenharmony_ci 869e41f4b71Sopenharmony_cifunction createCaptureSession(cameraManager: camera.CameraManager): camera.CaptureSession | undefined { 870e41f4b71Sopenharmony_ci let captureSession: camera.CaptureSession | undefined = undefined; 871e41f4b71Sopenharmony_ci try { 872e41f4b71Sopenharmony_ci captureSession = cameraManager.createCaptureSession(); 873e41f4b71Sopenharmony_ci } catch (error) { 874e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 875e41f4b71Sopenharmony_ci let err = error as BusinessError; 876e41f4b71Sopenharmony_ci console.error(`createCaptureSession error. error code: ${err.code}`); 877e41f4b71Sopenharmony_ci } 878e41f4b71Sopenharmony_ci return captureSession; 879e41f4b71Sopenharmony_ci} 880e41f4b71Sopenharmony_ci``` 881e41f4b71Sopenharmony_ci 882e41f4b71Sopenharmony_ci### createSession<sup>11+</sup> 883e41f4b71Sopenharmony_ci 884e41f4b71Sopenharmony_cicreateSession\<T extends Session\>(mode: SceneMode): T 885e41f4b71Sopenharmony_ci 886e41f4b71Sopenharmony_ci创建指定SceneMode的Session实例,同步返回结果。 887e41f4b71Sopenharmony_ci 888e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 889e41f4b71Sopenharmony_ci 890e41f4b71Sopenharmony_ci**参数:** 891e41f4b71Sopenharmony_ci 892e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 893e41f4b71Sopenharmony_ci| -------- | -----------------| ---- | --------- | 894e41f4b71Sopenharmony_ci| mode | [SceneMode](#scenemode11) | 是 | 相机支持的模式。传参异常(如超出范围、传入null、未定义等),实际接口不会生效。 | 895e41f4b71Sopenharmony_ci 896e41f4b71Sopenharmony_ci**返回值:** 897e41f4b71Sopenharmony_ci 898e41f4b71Sopenharmony_ci| 类型 | 说明 | 899e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 900e41f4b71Sopenharmony_ci| [T extends Session](#session11) | Session实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 901e41f4b71Sopenharmony_ci 902e41f4b71Sopenharmony_ci**错误码:** 903e41f4b71Sopenharmony_ci 904e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 905e41f4b71Sopenharmony_ci 906e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 907e41f4b71Sopenharmony_ci| --------------- | --------------- | 908e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 909e41f4b71Sopenharmony_ci 910e41f4b71Sopenharmony_ci**示例:** 911e41f4b71Sopenharmony_ci 912e41f4b71Sopenharmony_ci```ts 913e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 914e41f4b71Sopenharmony_ci 915e41f4b71Sopenharmony_cifunction createSession(cameraManager: camera.CameraManager, mode: camera.SceneMode): camera.Session | undefined { 916e41f4b71Sopenharmony_ci let photoSession: camera.PhotoSession | undefined = undefined; 917e41f4b71Sopenharmony_ci try { 918e41f4b71Sopenharmony_ci photoSession = cameraManager.createSession(mode) as camera.PhotoSession; 919e41f4b71Sopenharmony_ci } catch (error) { 920e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 921e41f4b71Sopenharmony_ci let err = error as BusinessError; 922e41f4b71Sopenharmony_ci console.error(`createCaptureSession error. error code: ${err.code}`); 923e41f4b71Sopenharmony_ci } 924e41f4b71Sopenharmony_ci return photoSession; 925e41f4b71Sopenharmony_ci} 926e41f4b71Sopenharmony_ci``` 927e41f4b71Sopenharmony_ci 928e41f4b71Sopenharmony_ci### on('cameraStatus') 929e41f4b71Sopenharmony_ci 930e41f4b71Sopenharmony_cion(type: 'cameraStatus', callback: AsyncCallback\<CameraStatusInfo\>): void 931e41f4b71Sopenharmony_ci 932e41f4b71Sopenharmony_ci相机设备状态回调,通过注册回调函数获取相机的状态变化。使用callback异步回调。 933e41f4b71Sopenharmony_ci 934e41f4b71Sopenharmony_ci> **说明:** 935e41f4b71Sopenharmony_ci> 936e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 937e41f4b71Sopenharmony_ci 938e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 939e41f4b71Sopenharmony_ci 940e41f4b71Sopenharmony_ci**参数:** 941e41f4b71Sopenharmony_ci 942e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 943e41f4b71Sopenharmony_ci| -------- | -----------------| ---- | --------- | 944e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'cameraStatus'。cameraManager对象获取成功后可监听。目前只支持对设备打开或者关闭会触发该事件并返回对应信息。 | 945e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[CameraStatusInfo](#camerastatusinfo)\> | 是 | 回调函数,用于获取镜头状态变化信息。 | | 946e41f4b71Sopenharmony_ci 947e41f4b71Sopenharmony_ci**示例:** 948e41f4b71Sopenharmony_ci 949e41f4b71Sopenharmony_ci```ts 950e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 951e41f4b71Sopenharmony_ci 952e41f4b71Sopenharmony_cifunction callback(err: BusinessError, cameraStatusInfo: camera.CameraStatusInfo): void { 953e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 954e41f4b71Sopenharmony_ci console.error('cameraStatus with errorCode = ' + err.code); 955e41f4b71Sopenharmony_ci return; 956e41f4b71Sopenharmony_ci } 957e41f4b71Sopenharmony_ci console.info(`camera : ${cameraStatusInfo.camera.cameraId}`); 958e41f4b71Sopenharmony_ci console.info(`status: ${cameraStatusInfo.status}`); 959e41f4b71Sopenharmony_ci} 960e41f4b71Sopenharmony_ci 961e41f4b71Sopenharmony_cifunction registerCameraStatus(cameraManager: camera.CameraManager): void { 962e41f4b71Sopenharmony_ci cameraManager.on('cameraStatus', callback); 963e41f4b71Sopenharmony_ci} 964e41f4b71Sopenharmony_ci``` 965e41f4b71Sopenharmony_ci 966e41f4b71Sopenharmony_ci### off('cameraStatus') 967e41f4b71Sopenharmony_ci 968e41f4b71Sopenharmony_cioff(type: 'cameraStatus', callback?: AsyncCallback\<CameraStatusInfo\>): void 969e41f4b71Sopenharmony_ci 970e41f4b71Sopenharmony_ci相机设备状态注销回调,通过注销回调函数取消获取相机的状态变化。 971e41f4b71Sopenharmony_ci 972e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 973e41f4b71Sopenharmony_ci 974e41f4b71Sopenharmony_ci**参数:** 975e41f4b71Sopenharmony_ci 976e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 977e41f4b71Sopenharmony_ci| -------- | -----------------| ---- | --------- | 978e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'cameraStatus'。cameraManager对象获取成功后可监听。 | 979e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[CameraStatusInfo](#camerastatusinfo)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 980e41f4b71Sopenharmony_ci 981e41f4b71Sopenharmony_ci**示例:** 982e41f4b71Sopenharmony_ci 983e41f4b71Sopenharmony_ci```ts 984e41f4b71Sopenharmony_cifunction unregisterCameraStatus(cameraManager: camera.CameraManager): void { 985e41f4b71Sopenharmony_ci cameraManager.off('cameraStatus'); 986e41f4b71Sopenharmony_ci} 987e41f4b71Sopenharmony_ci``` 988e41f4b71Sopenharmony_ci 989e41f4b71Sopenharmony_ci### on('foldStatusChange')<sup>12+</sup> 990e41f4b71Sopenharmony_ci 991e41f4b71Sopenharmony_cion(type: 'foldStatusChange', callback: AsyncCallback\<FoldStatusInfo\>): void 992e41f4b71Sopenharmony_ci 993e41f4b71Sopenharmony_ci开启折叠设备折叠状态变化的监听。使用callback异步回调。 994e41f4b71Sopenharmony_ci 995e41f4b71Sopenharmony_ci> **说明:** 996e41f4b71Sopenharmony_ci> 997e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 998e41f4b71Sopenharmony_ci 999e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1000e41f4b71Sopenharmony_ci 1001e41f4b71Sopenharmony_ci**参数:** 1002e41f4b71Sopenharmony_ci 1003e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1004e41f4b71Sopenharmony_ci| -------- | -----------------| ---- | --------- | 1005e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'foldStatusChange'。表示折叠设备折叠状态发生变化。 | 1006e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FoldStatusInfo](#foldstatusinfo12)\> | 是 | 回调函数。返回折叠设备折叠信息。 | 1007e41f4b71Sopenharmony_ci 1008e41f4b71Sopenharmony_ci**示例:** 1009e41f4b71Sopenharmony_ci 1010e41f4b71Sopenharmony_ci```ts 1011e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1012e41f4b71Sopenharmony_ci 1013e41f4b71Sopenharmony_cifunction callback(err: BusinessError, foldStatusInfo: camera.FoldStatusInfo): void { 1014e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 1015e41f4b71Sopenharmony_ci console.error('foldStatusChange with errorCode = ' + err.code); 1016e41f4b71Sopenharmony_ci return; 1017e41f4b71Sopenharmony_ci } 1018e41f4b71Sopenharmony_ci console.info(`camera length: ${foldStatusInfo.supportedCameras.length}`); 1019e41f4b71Sopenharmony_ci console.info(`foldStatus: ${foldStatusInfo.foldStatus}`); 1020e41f4b71Sopenharmony_ci} 1021e41f4b71Sopenharmony_ci 1022e41f4b71Sopenharmony_cifunction registerFoldStatusChange(cameraManager: camera.CameraManager): void { 1023e41f4b71Sopenharmony_ci cameraManager.on('foldStatusChange', callback); 1024e41f4b71Sopenharmony_ci} 1025e41f4b71Sopenharmony_ci``` 1026e41f4b71Sopenharmony_ci 1027e41f4b71Sopenharmony_ci### off('foldStatusChange')<sup>12+</sup> 1028e41f4b71Sopenharmony_ci 1029e41f4b71Sopenharmony_cioff(type: 'foldStatusChange', callback?: AsyncCallback\<FoldStatusInfo\>): void 1030e41f4b71Sopenharmony_ci 1031e41f4b71Sopenharmony_ci关闭折叠设备折叠状态变化的监听。 1032e41f4b71Sopenharmony_ci 1033e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1034e41f4b71Sopenharmony_ci 1035e41f4b71Sopenharmony_ci**参数:** 1036e41f4b71Sopenharmony_ci 1037e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1038e41f4b71Sopenharmony_ci| -------- | -----------------| ---- | --------- | 1039e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'foldStatusChange'。表示折叠设备折叠状态发生变化。 | 1040e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FoldStatusInfo](#foldstatusinfo12)\> | 否 | 回调函数,返回折叠设备折叠信息。如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 1041e41f4b71Sopenharmony_ci 1042e41f4b71Sopenharmony_ci**示例:** 1043e41f4b71Sopenharmony_ci 1044e41f4b71Sopenharmony_ci```ts 1045e41f4b71Sopenharmony_cifunction unregisterFoldStatusChange(cameraManager: camera.CameraManager): void { 1046e41f4b71Sopenharmony_ci cameraManager.off('foldStatusChange'); 1047e41f4b71Sopenharmony_ci} 1048e41f4b71Sopenharmony_ci``` 1049e41f4b71Sopenharmony_ci 1050e41f4b71Sopenharmony_ci### isTorchSupported<sup>11+</sup> 1051e41f4b71Sopenharmony_ci 1052e41f4b71Sopenharmony_ciisTorchSupported(): boolean 1053e41f4b71Sopenharmony_ci 1054e41f4b71Sopenharmony_ci检测设备是否支持手电筒。 1055e41f4b71Sopenharmony_ci 1056e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1057e41f4b71Sopenharmony_ci 1058e41f4b71Sopenharmony_ci**返回值:** 1059e41f4b71Sopenharmony_ci 1060e41f4b71Sopenharmony_ci| 类型 | 说明 | 1061e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 1062e41f4b71Sopenharmony_ci| boolean | 返回true表示设备支持手电筒。 | 1063e41f4b71Sopenharmony_ci 1064e41f4b71Sopenharmony_ci**示例:** 1065e41f4b71Sopenharmony_ci 1066e41f4b71Sopenharmony_ci```ts 1067e41f4b71Sopenharmony_cifunction isTorchSupported(cameraManager: camera.CameraManager): boolean { 1068e41f4b71Sopenharmony_ci let isSupported = cameraManager.isTorchSupported(); 1069e41f4b71Sopenharmony_ci return isSupported; 1070e41f4b71Sopenharmony_ci} 1071e41f4b71Sopenharmony_ci``` 1072e41f4b71Sopenharmony_ci 1073e41f4b71Sopenharmony_ci### isTorchModeSupported<sup>11+</sup> 1074e41f4b71Sopenharmony_ci 1075e41f4b71Sopenharmony_ciisTorchModeSupported(mode: TorchMode): boolean 1076e41f4b71Sopenharmony_ci 1077e41f4b71Sopenharmony_ci检测是否支持设置的手电筒模式。 1078e41f4b71Sopenharmony_ci 1079e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1080e41f4b71Sopenharmony_ci 1081e41f4b71Sopenharmony_ci**参数:** 1082e41f4b71Sopenharmony_ci 1083e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1084e41f4b71Sopenharmony_ci| -------- | --------------- | ---- | --------- | 1085e41f4b71Sopenharmony_ci| mode | [TorchMode](#torchmode11) | 是 | 手电筒模式。传参为null或者undefined,作为0处理,手电筒关闭。 | 1086e41f4b71Sopenharmony_ci 1087e41f4b71Sopenharmony_ci**返回值:** 1088e41f4b71Sopenharmony_ci 1089e41f4b71Sopenharmony_ci| 类型 | 说明 | 1090e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 1091e41f4b71Sopenharmony_ci| boolean | 返回true表示设备支持设置的手电筒模式。 | 1092e41f4b71Sopenharmony_ci 1093e41f4b71Sopenharmony_ci**示例:** 1094e41f4b71Sopenharmony_ci 1095e41f4b71Sopenharmony_ci```ts 1096e41f4b71Sopenharmony_cifunction isTorchModeSupported(cameraManager: camera.CameraManager, torchMode: camera.TorchMode): boolean { 1097e41f4b71Sopenharmony_ci let isSupported = cameraManager.isTorchModeSupported(torchMode); 1098e41f4b71Sopenharmony_ci return isSupported; 1099e41f4b71Sopenharmony_ci} 1100e41f4b71Sopenharmony_ci``` 1101e41f4b71Sopenharmony_ci 1102e41f4b71Sopenharmony_ci### getTorchMode<sup>11+</sup> 1103e41f4b71Sopenharmony_ci 1104e41f4b71Sopenharmony_cigetTorchMode(): TorchMode 1105e41f4b71Sopenharmony_ci 1106e41f4b71Sopenharmony_ci获取当前设备手电筒模式。 1107e41f4b71Sopenharmony_ci 1108e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1109e41f4b71Sopenharmony_ci 1110e41f4b71Sopenharmony_ci**返回值:** 1111e41f4b71Sopenharmony_ci 1112e41f4b71Sopenharmony_ci| 类型 | 说明 | 1113e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 1114e41f4b71Sopenharmony_ci| [TorchMode](#torchmode11) | 返回设备当前手电筒模式。 | 1115e41f4b71Sopenharmony_ci 1116e41f4b71Sopenharmony_ci**示例:** 1117e41f4b71Sopenharmony_ci 1118e41f4b71Sopenharmony_ci```ts 1119e41f4b71Sopenharmony_cifunction getTorchMode(cameraManager: camera.CameraManager): camera.TorchMode | undefined { 1120e41f4b71Sopenharmony_ci let torchMode: camera.TorchMode | undefined = undefined; 1121e41f4b71Sopenharmony_ci torchMode = cameraManager.getTorchMode(); 1122e41f4b71Sopenharmony_ci return torchMode; 1123e41f4b71Sopenharmony_ci} 1124e41f4b71Sopenharmony_ci``` 1125e41f4b71Sopenharmony_ci 1126e41f4b71Sopenharmony_ci### setTorchMode<sup>11+</sup> 1127e41f4b71Sopenharmony_ci 1128e41f4b71Sopenharmony_cisetTorchMode(mode: TorchMode): void 1129e41f4b71Sopenharmony_ci 1130e41f4b71Sopenharmony_ci设置设备手电筒模式。 1131e41f4b71Sopenharmony_ci 1132e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1133e41f4b71Sopenharmony_ci 1134e41f4b71Sopenharmony_ci**参数:** 1135e41f4b71Sopenharmony_ci 1136e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1137e41f4b71Sopenharmony_ci| -------- | --------------- | ---- | --------- | 1138e41f4b71Sopenharmony_ci| mode | [TorchMode](#torchmode11) | 是 | 手电筒模式。传参为null或者undefined,作为0处理,手电筒关闭。 | 1139e41f4b71Sopenharmony_ci 1140e41f4b71Sopenharmony_ci**错误码:** 1141e41f4b71Sopenharmony_ci 1142e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1143e41f4b71Sopenharmony_ci 1144e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1145e41f4b71Sopenharmony_ci| --------------- | --------------- | 1146e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 1147e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 1148e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1149e41f4b71Sopenharmony_ci 1150e41f4b71Sopenharmony_ci**示例:** 1151e41f4b71Sopenharmony_ci 1152e41f4b71Sopenharmony_ci```ts 1153e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1154e41f4b71Sopenharmony_ci 1155e41f4b71Sopenharmony_cifunction setTorchMode(cameraManager: camera.CameraManager, torchMode: camera.TorchMode): void { 1156e41f4b71Sopenharmony_ci try { 1157e41f4b71Sopenharmony_ci cameraManager.setTorchMode(torchMode); 1158e41f4b71Sopenharmony_ci } catch (error) { 1159e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 1160e41f4b71Sopenharmony_ci let err = error as BusinessError; 1161e41f4b71Sopenharmony_ci console.error(`The setTorchMode call failed. error code: ${err.code}`); 1162e41f4b71Sopenharmony_ci } 1163e41f4b71Sopenharmony_ci} 1164e41f4b71Sopenharmony_ci``` 1165e41f4b71Sopenharmony_ci 1166e41f4b71Sopenharmony_ci### on('torchStatusChange')<sup>11+</sup> 1167e41f4b71Sopenharmony_ci 1168e41f4b71Sopenharmony_cion(type: 'torchStatusChange', callback: AsyncCallback\<TorchStatusInfo\>): void 1169e41f4b71Sopenharmony_ci 1170e41f4b71Sopenharmony_ci手电筒状态变化回调,通过注册回调函数获取手电筒状态变化。使用callback异步回调。 1171e41f4b71Sopenharmony_ci 1172e41f4b71Sopenharmony_ci> **说明:** 1173e41f4b71Sopenharmony_ci> 1174e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 1175e41f4b71Sopenharmony_ci 1176e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1177e41f4b71Sopenharmony_ci 1178e41f4b71Sopenharmony_ci**参数:** 1179e41f4b71Sopenharmony_ci 1180e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1181e41f4b71Sopenharmony_ci| -------- | --------------- | ---- | --------- | 1182e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'torchStatusChange'。cameraManager对象获取成功后可监听。目前只支持手电筒打开,手电筒关闭,手电筒不可用,手电筒恢复可用会触发该事件并返回对应信息。 | 1183e41f4b71Sopenharmony_ci| callback | AsyncCallback\<TorchStatusInfo> | 是 | 回调函数,用于获取手电筒状态变化信息。 | 1184e41f4b71Sopenharmony_ci 1185e41f4b71Sopenharmony_ci**示例:** 1186e41f4b71Sopenharmony_ci 1187e41f4b71Sopenharmony_ci```ts 1188e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1189e41f4b71Sopenharmony_ci 1190e41f4b71Sopenharmony_cifunction callback(err: BusinessError, torchStatusInfo: camera.TorchStatusInfo): void { 1191e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 1192e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 1193e41f4b71Sopenharmony_ci return; 1194e41f4b71Sopenharmony_ci } 1195e41f4b71Sopenharmony_ci console.info(`onTorchStatusChange, isTorchAvailable: ${torchStatusInfo.isTorchAvailable}, isTorchActive: ${torchStatusInfo.isTorchActive}, level: ${torchStatusInfo.torchLevel}`); 1196e41f4b71Sopenharmony_ci} 1197e41f4b71Sopenharmony_ci 1198e41f4b71Sopenharmony_cifunction registerTorchStatusChange(cameraManager: camera.CameraManager): void { 1199e41f4b71Sopenharmony_ci cameraManager.on('torchStatusChange', callback); 1200e41f4b71Sopenharmony_ci} 1201e41f4b71Sopenharmony_ci``` 1202e41f4b71Sopenharmony_ci 1203e41f4b71Sopenharmony_ci### off('torchStatusChange')<sup>11+</sup> 1204e41f4b71Sopenharmony_ci 1205e41f4b71Sopenharmony_cioff(type: 'torchStatusChange', callback?: AsyncCallback\<TorchStatusInfo\>): void 1206e41f4b71Sopenharmony_ci 1207e41f4b71Sopenharmony_ci手电筒状态变化注销回调,通过注销回调函数取消获取手电筒状态变化。 1208e41f4b71Sopenharmony_ci 1209e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1210e41f4b71Sopenharmony_ci 1211e41f4b71Sopenharmony_ci**参数:** 1212e41f4b71Sopenharmony_ci 1213e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1214e41f4b71Sopenharmony_ci| -------- | --------------- | ---- | --------- | 1215e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'torchStatusChange'。cameraManager对象获取成功后可监听。 | 1216e41f4b71Sopenharmony_ci| callback | AsyncCallback\<TorchStatusInfo> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 1217e41f4b71Sopenharmony_ci 1218e41f4b71Sopenharmony_ci**示例:** 1219e41f4b71Sopenharmony_ci 1220e41f4b71Sopenharmony_ci```ts 1221e41f4b71Sopenharmony_cifunction unregisterTorchStatusChange(cameraManager: camera.CameraManager): void { 1222e41f4b71Sopenharmony_ci cameraManager.off('torchStatusChange'); 1223e41f4b71Sopenharmony_ci} 1224e41f4b71Sopenharmony_ci``` 1225e41f4b71Sopenharmony_ci 1226e41f4b71Sopenharmony_ci## TorchMode<sup>11+</sup> 1227e41f4b71Sopenharmony_ci 1228e41f4b71Sopenharmony_ci枚举,手电筒模式。 1229e41f4b71Sopenharmony_ci 1230e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1231e41f4b71Sopenharmony_ci 1232e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1233e41f4b71Sopenharmony_ci| ---------------------------- | ---- | ------------- | 1234e41f4b71Sopenharmony_ci| OFF | 0 | 常关模式。 | 1235e41f4b71Sopenharmony_ci| ON | 1 | 常开模式。 | 1236e41f4b71Sopenharmony_ci| AUTO | 2 | 自动模式。 | 1237e41f4b71Sopenharmony_ci 1238e41f4b71Sopenharmony_ci## TorchStatusInfo<sup>11+</sup> 1239e41f4b71Sopenharmony_ci 1240e41f4b71Sopenharmony_ci手电筒回调返回的接口实例,表示手电筒状态信息。 1241e41f4b71Sopenharmony_ci 1242e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1243e41f4b71Sopenharmony_ci 1244e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 1245e41f4b71Sopenharmony_ci| ---------------- | ---------- | ---- | ---- | ----------- | 1246e41f4b71Sopenharmony_ci| isTorchAvailable | boolean | 是 | 否 | 手电筒是否可用。| 1247e41f4b71Sopenharmony_ci| isTorchActive | boolean | 是 | 否 | 手电筒是否被激活。 | 1248e41f4b71Sopenharmony_ci| torchLevel | number | 是 | 否 | 手电筒亮度等级。取值范围为[0,1],越靠近1,亮度越大。 | 1249e41f4b71Sopenharmony_ci 1250e41f4b71Sopenharmony_ci## Size 1251e41f4b71Sopenharmony_ci 1252e41f4b71Sopenharmony_ci输出能力查询。 1253e41f4b71Sopenharmony_ci 1254e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1255e41f4b71Sopenharmony_ci 1256e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 1257e41f4b71Sopenharmony_ci| ------ | ------ | ---- |-----| ------------ | 1258e41f4b71Sopenharmony_ci| height | number | 否 | 否 | 图像尺寸高(像素)。 | 1259e41f4b71Sopenharmony_ci| width | number | 否 | 否 | 图像尺寸宽(像素)。 | 1260e41f4b71Sopenharmony_ci 1261e41f4b71Sopenharmony_ci## Point 1262e41f4b71Sopenharmony_ci 1263e41f4b71Sopenharmony_ci点坐标用于对焦、曝光配置。 1264e41f4b71Sopenharmony_ci 1265e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1266e41f4b71Sopenharmony_ci 1267e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 1268e41f4b71Sopenharmony_ci| ------ | ------ | ------ | ------ | ------------ | 1269e41f4b71Sopenharmony_ci| x | number | 否 | 否 | 点的x坐标。 | 1270e41f4b71Sopenharmony_ci| y | number | 否 | 否 | 点的y坐标。 | 1271e41f4b71Sopenharmony_ci 1272e41f4b71Sopenharmony_ci## CameraFormat 1273e41f4b71Sopenharmony_ci 1274e41f4b71Sopenharmony_ci枚举,输出格式。 1275e41f4b71Sopenharmony_ci 1276e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1277e41f4b71Sopenharmony_ci 1278e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1279e41f4b71Sopenharmony_ci| ----------------------- | --------- | ------------ | 1280e41f4b71Sopenharmony_ci| CAMERA_FORMAT_RGBA_8888 | 3 | RGBA_888格式的图片。 | 1281e41f4b71Sopenharmony_ci| CAMERA_FORMAT_YUV_420_SP| 1003 | YUV_420_SP格式的图片。 | 1282e41f4b71Sopenharmony_ci| CAMERA_FORMAT_JPEG | 2000 | JPEG格式的图片。 | 1283e41f4b71Sopenharmony_ci| CAMERA_FORMAT_YCBCR_P010<sup>11+</sup> | 2001 | YCBCR_P010格式的图片。 | 1284e41f4b71Sopenharmony_ci| CAMERA_FORMAT_YCRCB_P010<sup>11+</sup> | 2002 | YCRCB_P010格式的图片。 | 1285e41f4b71Sopenharmony_ci| CAMERA_FORMAT_HEIC<sup>13+</sup> | 2003 | HEIF格式的图片。 | 1286e41f4b71Sopenharmony_ci 1287e41f4b71Sopenharmony_ci## VideoCodecType<sup>13+</sup> 1288e41f4b71Sopenharmony_ci 1289e41f4b71Sopenharmony_ci枚举,视频编码类型。 1290e41f4b71Sopenharmony_ci 1291e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1292e41f4b71Sopenharmony_ci 1293e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 1294e41f4b71Sopenharmony_ci|------|------|-------------| 1295e41f4b71Sopenharmony_ci| HVC | 0 | 视频编码类型HVC。 | 1296e41f4b71Sopenharmony_ci| HEVC | 1 | 视频编码类型HEVC。 | 1297e41f4b71Sopenharmony_ci 1298e41f4b71Sopenharmony_ci## CameraInput 1299e41f4b71Sopenharmony_ci 1300e41f4b71Sopenharmony_ci相机设备输入对象。 1301e41f4b71Sopenharmony_ci 1302e41f4b71Sopenharmony_ci会话中[Session](#session11)使用的相机信息。 1303e41f4b71Sopenharmony_ci 1304e41f4b71Sopenharmony_ci### open 1305e41f4b71Sopenharmony_ci 1306e41f4b71Sopenharmony_ciopen(callback: AsyncCallback\<void\>): void 1307e41f4b71Sopenharmony_ci 1308e41f4b71Sopenharmony_ci打开相机,通过注册回调函数获取状态。使用callback异步回调。 1309e41f4b71Sopenharmony_ci 1310e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1311e41f4b71Sopenharmony_ci 1312e41f4b71Sopenharmony_ci**参数:** 1313e41f4b71Sopenharmony_ci 1314e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1315e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------- | 1316e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 1317e41f4b71Sopenharmony_ci 1318e41f4b71Sopenharmony_ci**错误码:** 1319e41f4b71Sopenharmony_ci 1320e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1321e41f4b71Sopenharmony_ci 1322e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1323e41f4b71Sopenharmony_ci| --------------- | --------------- | 1324e41f4b71Sopenharmony_ci| 7400107 | Can not use camera cause of conflict. | 1325e41f4b71Sopenharmony_ci| 7400108 | Camera disabled cause of security reason. | 1326e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1327e41f4b71Sopenharmony_ci 1328e41f4b71Sopenharmony_ci**示例:** 1329e41f4b71Sopenharmony_ci 1330e41f4b71Sopenharmony_ci```ts 1331e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1332e41f4b71Sopenharmony_ci 1333e41f4b71Sopenharmony_cifunction openCameraInput(cameraInput: camera.CameraInput): void { 1334e41f4b71Sopenharmony_ci cameraInput.open((err: BusinessError) => { 1335e41f4b71Sopenharmony_ci if (err) { 1336e41f4b71Sopenharmony_ci console.error(`Failed to open the camera, error code: ${err.code}.`); 1337e41f4b71Sopenharmony_ci return; 1338e41f4b71Sopenharmony_ci } 1339e41f4b71Sopenharmony_ci console.info('Callback returned with camera opened.'); 1340e41f4b71Sopenharmony_ci }); 1341e41f4b71Sopenharmony_ci} 1342e41f4b71Sopenharmony_ci``` 1343e41f4b71Sopenharmony_ci 1344e41f4b71Sopenharmony_ci### open 1345e41f4b71Sopenharmony_ci 1346e41f4b71Sopenharmony_ciopen(): Promise\<void\> 1347e41f4b71Sopenharmony_ci 1348e41f4b71Sopenharmony_ci打开相机,通过Promise获取相机的状态。 1349e41f4b71Sopenharmony_ci 1350e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1351e41f4b71Sopenharmony_ci 1352e41f4b71Sopenharmony_ci**返回值:** 1353e41f4b71Sopenharmony_ci 1354e41f4b71Sopenharmony_ci| 类型 | 说明 | 1355e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 1356e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 1357e41f4b71Sopenharmony_ci 1358e41f4b71Sopenharmony_ci**错误码:** 1359e41f4b71Sopenharmony_ci 1360e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1361e41f4b71Sopenharmony_ci 1362e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1363e41f4b71Sopenharmony_ci| --------------- | --------------- | 1364e41f4b71Sopenharmony_ci| 7400107 | Can not use camera cause of conflict. | 1365e41f4b71Sopenharmony_ci| 7400108 | Camera disabled cause of security reason. | 1366e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1367e41f4b71Sopenharmony_ci 1368e41f4b71Sopenharmony_ci**示例:** 1369e41f4b71Sopenharmony_ci 1370e41f4b71Sopenharmony_ci```ts 1371e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1372e41f4b71Sopenharmony_ci 1373e41f4b71Sopenharmony_cifunction openCameraInput(cameraInput: camera.CameraInput): void { 1374e41f4b71Sopenharmony_ci cameraInput.open().then(() => { 1375e41f4b71Sopenharmony_ci console.info('Promise returned with camera opened.'); 1376e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1377e41f4b71Sopenharmony_ci console.error(`Failed to open the camera, error code: ${error.code}.`); 1378e41f4b71Sopenharmony_ci }); 1379e41f4b71Sopenharmony_ci} 1380e41f4b71Sopenharmony_ci``` 1381e41f4b71Sopenharmony_ci 1382e41f4b71Sopenharmony_ci### open<sup>12+</sup> 1383e41f4b71Sopenharmony_ci 1384e41f4b71Sopenharmony_ciopen(isSecureEnabled: boolean): Promise\<bigint\> 1385e41f4b71Sopenharmony_ci 1386e41f4b71Sopenharmony_ci打开相机,获取安全相机的句柄。 1387e41f4b71Sopenharmony_ci 1388e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1389e41f4b71Sopenharmony_ci 1390e41f4b71Sopenharmony_ci**参数:** 1391e41f4b71Sopenharmony_ci 1392e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1393e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- |-------------------------------------------------------------------------| 1394e41f4b71Sopenharmony_ci| isSecureEnabled | boolean | 是 | 是否使能以安全的方式打开相机。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 1395e41f4b71Sopenharmony_ci 1396e41f4b71Sopenharmony_ci**返回值:** 1397e41f4b71Sopenharmony_ci 1398e41f4b71Sopenharmony_ci| 类型 | 说明 | 1399e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 1400e41f4b71Sopenharmony_ci| Promise\<bigint\> | 使用Promise的方式获取打开相机句柄。 | 1401e41f4b71Sopenharmony_ci 1402e41f4b71Sopenharmony_ci**错误码:** 1403e41f4b71Sopenharmony_ci 1404e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1405e41f4b71Sopenharmony_ci 1406e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1407e41f4b71Sopenharmony_ci| --------------- | --------------- | 1408e41f4b71Sopenharmony_ci| 7400107 | Can not use camera cause of conflict. | 1409e41f4b71Sopenharmony_ci| 7400108 | Camera disabled cause of security reason. | 1410e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1411e41f4b71Sopenharmony_ci 1412e41f4b71Sopenharmony_ci**示例:** 1413e41f4b71Sopenharmony_ci 1414e41f4b71Sopenharmony_ci```ts 1415e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1416e41f4b71Sopenharmony_ci 1417e41f4b71Sopenharmony_cifunction openCameraInput(cameraInput: camera.CameraInput): void { 1418e41f4b71Sopenharmony_ci cameraInput.open(true).then(() => { 1419e41f4b71Sopenharmony_ci console.info('Promise returned with camera opened.'); 1420e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1421e41f4b71Sopenharmony_ci console.error(`Failed to open the camera, error code: ${error.code}.`); 1422e41f4b71Sopenharmony_ci }); 1423e41f4b71Sopenharmony_ci} 1424e41f4b71Sopenharmony_ci``` 1425e41f4b71Sopenharmony_ci 1426e41f4b71Sopenharmony_ci### close 1427e41f4b71Sopenharmony_ci 1428e41f4b71Sopenharmony_ciclose(callback: AsyncCallback\<void\>\): void 1429e41f4b71Sopenharmony_ci 1430e41f4b71Sopenharmony_ci关闭相机,通过注册回调函数获取状态。使用callback异步回调。 1431e41f4b71Sopenharmony_ci 1432e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1433e41f4b71Sopenharmony_ci 1434e41f4b71Sopenharmony_ci**参数:** 1435e41f4b71Sopenharmony_ci 1436e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1437e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 1438e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 1439e41f4b71Sopenharmony_ci 1440e41f4b71Sopenharmony_ci**错误码:** 1441e41f4b71Sopenharmony_ci 1442e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1443e41f4b71Sopenharmony_ci 1444e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1445e41f4b71Sopenharmony_ci| --------------- | --------------- | 1446e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1447e41f4b71Sopenharmony_ci 1448e41f4b71Sopenharmony_ci**示例:** 1449e41f4b71Sopenharmony_ci 1450e41f4b71Sopenharmony_ci```ts 1451e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1452e41f4b71Sopenharmony_ci 1453e41f4b71Sopenharmony_cifunction closeCameraInput(cameraInput: camera.CameraInput): void { 1454e41f4b71Sopenharmony_ci cameraInput.close((err: BusinessError) => { 1455e41f4b71Sopenharmony_ci if (err) { 1456e41f4b71Sopenharmony_ci console.error(`Failed to close the cameras, error code: ${err.code}.`); 1457e41f4b71Sopenharmony_ci return; 1458e41f4b71Sopenharmony_ci } 1459e41f4b71Sopenharmony_ci console.info('Callback returned with camera closed.'); 1460e41f4b71Sopenharmony_ci }); 1461e41f4b71Sopenharmony_ci} 1462e41f4b71Sopenharmony_ci``` 1463e41f4b71Sopenharmony_ci 1464e41f4b71Sopenharmony_ci### close 1465e41f4b71Sopenharmony_ci 1466e41f4b71Sopenharmony_ciclose(): Promise\<void\> 1467e41f4b71Sopenharmony_ci 1468e41f4b71Sopenharmony_ci关闭相机,通过Promise获取状态。 1469e41f4b71Sopenharmony_ci 1470e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1471e41f4b71Sopenharmony_ci 1472e41f4b71Sopenharmony_ci**返回值:** 1473e41f4b71Sopenharmony_ci 1474e41f4b71Sopenharmony_ci| 类型 | 说明 | 1475e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 1476e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 1477e41f4b71Sopenharmony_ci 1478e41f4b71Sopenharmony_ci**错误码:** 1479e41f4b71Sopenharmony_ci 1480e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1481e41f4b71Sopenharmony_ci 1482e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1483e41f4b71Sopenharmony_ci| --------------- | --------------- | 1484e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1485e41f4b71Sopenharmony_ci 1486e41f4b71Sopenharmony_ci**示例:** 1487e41f4b71Sopenharmony_ci 1488e41f4b71Sopenharmony_ci```ts 1489e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1490e41f4b71Sopenharmony_ci 1491e41f4b71Sopenharmony_cifunction closeCameraInput(cameraInput: camera.CameraInput): void { 1492e41f4b71Sopenharmony_ci cameraInput.close().then(() => { 1493e41f4b71Sopenharmony_ci console.info('Promise returned with camera closed.'); 1494e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1495e41f4b71Sopenharmony_ci console.error(`Failed to close the cameras, error code: ${error.code}.`); 1496e41f4b71Sopenharmony_ci }); 1497e41f4b71Sopenharmony_ci} 1498e41f4b71Sopenharmony_ci``` 1499e41f4b71Sopenharmony_ci 1500e41f4b71Sopenharmony_ci### on('error') 1501e41f4b71Sopenharmony_ci 1502e41f4b71Sopenharmony_cion(type: 'error', camera: CameraDevice, callback: ErrorCallback): void 1503e41f4b71Sopenharmony_ci 1504e41f4b71Sopenharmony_ci监听CameraInput的错误事件,通过注册回调函数获取结果。使用callback异步回调。 1505e41f4b71Sopenharmony_ci 1506e41f4b71Sopenharmony_ci> **说明:** 1507e41f4b71Sopenharmony_ci> 1508e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 1509e41f4b71Sopenharmony_ci 1510e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1511e41f4b71Sopenharmony_ci 1512e41f4b71Sopenharmony_ci**参数:** 1513e41f4b71Sopenharmony_ci 1514e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1515e41f4b71Sopenharmony_ci| -------- | -------------------------------- | --- | ------------------------------------------- | 1516e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',CameraInput对象创建成功可监听。相机设备出错情况下可触发该事件并返回结果,比如设备不可用或者冲突等返回对应错误信息。 | 1517e41f4b71Sopenharmony_ci| camera | [CameraDevice](#cameradevice) | 是 | CameraDevice对象。 | 1518e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取结果。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 1519e41f4b71Sopenharmony_ci 1520e41f4b71Sopenharmony_ci**示例:** 1521e41f4b71Sopenharmony_ci 1522e41f4b71Sopenharmony_ci```ts 1523e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1524e41f4b71Sopenharmony_ci 1525e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 1526e41f4b71Sopenharmony_ci console.error(`Camera input error code: ${err.code}`); 1527e41f4b71Sopenharmony_ci} 1528e41f4b71Sopenharmony_ci 1529e41f4b71Sopenharmony_cifunction registerCameraInputError(cameraInput: camera.CameraInput, camera: camera.CameraDevice): void { 1530e41f4b71Sopenharmony_ci cameraInput.on('error', camera, callback); 1531e41f4b71Sopenharmony_ci} 1532e41f4b71Sopenharmony_ci``` 1533e41f4b71Sopenharmony_ci 1534e41f4b71Sopenharmony_ci### off('error') 1535e41f4b71Sopenharmony_ci 1536e41f4b71Sopenharmony_cioff(type: 'error', camera: CameraDevice, callback?: ErrorCallback): void 1537e41f4b71Sopenharmony_ci 1538e41f4b71Sopenharmony_ci注销监听CameraInput的错误事件。 1539e41f4b71Sopenharmony_ci 1540e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1541e41f4b71Sopenharmony_ci 1542e41f4b71Sopenharmony_ci**参数:** 1543e41f4b71Sopenharmony_ci 1544e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1545e41f4b71Sopenharmony_ci| -------- | -------------------------------- | --- | ------------------------------------------- | 1546e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',CameraInput对象创建成功可监听。相机设备出错情况下可触发该事件并返回结果,比如设备不可用或者冲突等返回对应错误信息。 | 1547e41f4b71Sopenharmony_ci| camera | [CameraDevice](#cameradevice) | 是 | CameraDevice对象。 | 1548e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 1549e41f4b71Sopenharmony_ci 1550e41f4b71Sopenharmony_ci**示例:** 1551e41f4b71Sopenharmony_ci 1552e41f4b71Sopenharmony_ci```ts 1553e41f4b71Sopenharmony_cifunction unregisterCameraInputError(cameraInput: camera.CameraInput, camera: camera.CameraDevice): void { 1554e41f4b71Sopenharmony_ci cameraInput.off('error', camera); 1555e41f4b71Sopenharmony_ci} 1556e41f4b71Sopenharmony_ci``` 1557e41f4b71Sopenharmony_ci 1558e41f4b71Sopenharmony_ci## CameraOutput 1559e41f4b71Sopenharmony_ci 1560e41f4b71Sopenharmony_ci会话中[Session](#session11)使用的输出信息,output的基类。 1561e41f4b71Sopenharmony_ci 1562e41f4b71Sopenharmony_ci### release 1563e41f4b71Sopenharmony_ci 1564e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void\>): void 1565e41f4b71Sopenharmony_ci 1566e41f4b71Sopenharmony_ci释放输出资源,通过注册回调函数获取结果。使用callback异步回调。 1567e41f4b71Sopenharmony_ci 1568e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1569e41f4b71Sopenharmony_ci 1570e41f4b71Sopenharmony_ci**参数:** 1571e41f4b71Sopenharmony_ci 1572e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1573e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------- | 1574e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 1575e41f4b71Sopenharmony_ci 1576e41f4b71Sopenharmony_ci**错误码:** 1577e41f4b71Sopenharmony_ci 1578e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1579e41f4b71Sopenharmony_ci 1580e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1581e41f4b71Sopenharmony_ci| --------------- | --------------- | 1582e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1583e41f4b71Sopenharmony_ci 1584e41f4b71Sopenharmony_ci**示例:** 1585e41f4b71Sopenharmony_ci 1586e41f4b71Sopenharmony_ci```ts 1587e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1588e41f4b71Sopenharmony_ci 1589e41f4b71Sopenharmony_cifunction releasePreviewOutput(previewOutput: camera.PreviewOutput): void { 1590e41f4b71Sopenharmony_ci previewOutput.release((err: BusinessError) => { 1591e41f4b71Sopenharmony_ci if (err) { 1592e41f4b71Sopenharmony_ci console.error(`Failed to release the Preview output instance ${err.code}`); 1593e41f4b71Sopenharmony_ci return; 1594e41f4b71Sopenharmony_ci } 1595e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the preview output instance is released successfully.'); 1596e41f4b71Sopenharmony_ci }); 1597e41f4b71Sopenharmony_ci} 1598e41f4b71Sopenharmony_ci 1599e41f4b71Sopenharmony_cifunction releaseVideoOutput(videoOutput: camera.VideoOutput): void { 1600e41f4b71Sopenharmony_ci videoOutput.release((err: BusinessError) => { 1601e41f4b71Sopenharmony_ci if (err) { 1602e41f4b71Sopenharmony_ci console.error(`Failed to release the video output instance ${err.code}`); 1603e41f4b71Sopenharmony_ci return; 1604e41f4b71Sopenharmony_ci } 1605e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the video output instance is released successfully.'); 1606e41f4b71Sopenharmony_ci }); 1607e41f4b71Sopenharmony_ci} 1608e41f4b71Sopenharmony_ci``` 1609e41f4b71Sopenharmony_ci 1610e41f4b71Sopenharmony_ci### release 1611e41f4b71Sopenharmony_ci 1612e41f4b71Sopenharmony_cirelease(): Promise\<void\> 1613e41f4b71Sopenharmony_ci 1614e41f4b71Sopenharmony_ci释放输出资源,通过Promise获取结果。 1615e41f4b71Sopenharmony_ci 1616e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1617e41f4b71Sopenharmony_ci 1618e41f4b71Sopenharmony_ci**返回值:** 1619e41f4b71Sopenharmony_ci 1620e41f4b71Sopenharmony_ci| 类型 | 说明 | 1621e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 1622e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 1623e41f4b71Sopenharmony_ci 1624e41f4b71Sopenharmony_ci**错误码:** 1625e41f4b71Sopenharmony_ci 1626e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1627e41f4b71Sopenharmony_ci 1628e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1629e41f4b71Sopenharmony_ci| --------------- | --------------- | 1630e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 1631e41f4b71Sopenharmony_ci 1632e41f4b71Sopenharmony_ci**示例:** 1633e41f4b71Sopenharmony_ci 1634e41f4b71Sopenharmony_ci```ts 1635e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1636e41f4b71Sopenharmony_ci 1637e41f4b71Sopenharmony_cifunction releasePreviewOutput(previewOutput: camera.PreviewOutput): void { 1638e41f4b71Sopenharmony_ci previewOutput.release().then(() => { 1639e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the preview output instance is released successfully.'); 1640e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1641e41f4b71Sopenharmony_ci console.error(`Failed to preview output release, error code: ${error.code}`); 1642e41f4b71Sopenharmony_ci }); 1643e41f4b71Sopenharmony_ci} 1644e41f4b71Sopenharmony_ci 1645e41f4b71Sopenharmony_cifunction releaseVideoOutput(videoOutput: camera.VideoOutput): void { 1646e41f4b71Sopenharmony_ci videoOutput.release().then(() => { 1647e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the video output instance is released successfully.'); 1648e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1649e41f4b71Sopenharmony_ci console.error(`Failed to video output release, error code: ${error.code}`); 1650e41f4b71Sopenharmony_ci }); 1651e41f4b71Sopenharmony_ci} 1652e41f4b71Sopenharmony_ci``` 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci## PreviewOutput 1655e41f4b71Sopenharmony_ci 1656e41f4b71Sopenharmony_ci预览输出类。继承[CameraOutput](#cameraoutput)。 1657e41f4b71Sopenharmony_ci 1658e41f4b71Sopenharmony_ci### start<sup>(deprecated)</sup> 1659e41f4b71Sopenharmony_ci 1660e41f4b71Sopenharmony_cistart(callback: AsyncCallback\<void\>): void 1661e41f4b71Sopenharmony_ci 1662e41f4b71Sopenharmony_ci开始输出预览流,通过注册回调函数获取结果。使用callback异步回调。 1663e41f4b71Sopenharmony_ci 1664e41f4b71Sopenharmony_ci> **说明:** 1665e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.start](#start11)替代。 1666e41f4b71Sopenharmony_ci 1667e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1668e41f4b71Sopenharmony_ci 1669e41f4b71Sopenharmony_ci**参数:** 1670e41f4b71Sopenharmony_ci 1671e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1672e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 1673e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 1674e41f4b71Sopenharmony_ci 1675e41f4b71Sopenharmony_ci**错误码:** 1676e41f4b71Sopenharmony_ci 1677e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1678e41f4b71Sopenharmony_ci 1679e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1680e41f4b71Sopenharmony_ci| --------------- | --------------- | 1681e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 1682e41f4b71Sopenharmony_ci 1683e41f4b71Sopenharmony_ci**示例:** 1684e41f4b71Sopenharmony_ci 1685e41f4b71Sopenharmony_ci```ts 1686e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1687e41f4b71Sopenharmony_ci 1688e41f4b71Sopenharmony_cifunction startPreviewOutput(previewOutput: camera.PreviewOutput): void { 1689e41f4b71Sopenharmony_ci previewOutput.start((err: BusinessError) => { 1690e41f4b71Sopenharmony_ci if (err) { 1691e41f4b71Sopenharmony_ci console.error(`Failed to start the preview output, error code: ${err.code}.`); 1692e41f4b71Sopenharmony_ci return; 1693e41f4b71Sopenharmony_ci } 1694e41f4b71Sopenharmony_ci console.info('Callback returned with preview output started.'); 1695e41f4b71Sopenharmony_ci }); 1696e41f4b71Sopenharmony_ci} 1697e41f4b71Sopenharmony_ci``` 1698e41f4b71Sopenharmony_ci 1699e41f4b71Sopenharmony_ci### start<sup>(deprecated)</sup> 1700e41f4b71Sopenharmony_ci 1701e41f4b71Sopenharmony_cistart(): Promise\<void\> 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci开始输出预览流,通过Promise获取结果。 1704e41f4b71Sopenharmony_ci 1705e41f4b71Sopenharmony_ci> **说明:** 1706e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.start](#start11-1)替代。 1707e41f4b71Sopenharmony_ci 1708e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1709e41f4b71Sopenharmony_ci 1710e41f4b71Sopenharmony_ci**返回值:** 1711e41f4b71Sopenharmony_ci 1712e41f4b71Sopenharmony_ci| 类型 | 说明 | 1713e41f4b71Sopenharmony_ci| -------------- |-------------------| 1714e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 1715e41f4b71Sopenharmony_ci 1716e41f4b71Sopenharmony_ci**错误码:** 1717e41f4b71Sopenharmony_ci 1718e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 1719e41f4b71Sopenharmony_ci 1720e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 1721e41f4b71Sopenharmony_ci| --------------- | --------------- | 1722e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 1723e41f4b71Sopenharmony_ci 1724e41f4b71Sopenharmony_ci**示例:** 1725e41f4b71Sopenharmony_ci 1726e41f4b71Sopenharmony_ci```ts 1727e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1728e41f4b71Sopenharmony_ci 1729e41f4b71Sopenharmony_cifunction startPreviewOutput(previewOutput: camera.PreviewOutput): void { 1730e41f4b71Sopenharmony_ci previewOutput.start().then(() => { 1731e41f4b71Sopenharmony_ci console.info('Promise returned with preview output started.'); 1732e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1733e41f4b71Sopenharmony_ci console.error(`Failed to preview output start, error code: ${error.code}.`); 1734e41f4b71Sopenharmony_ci }); 1735e41f4b71Sopenharmony_ci} 1736e41f4b71Sopenharmony_ci``` 1737e41f4b71Sopenharmony_ci 1738e41f4b71Sopenharmony_ci### stop<sup>(deprecated)</sup> 1739e41f4b71Sopenharmony_ci 1740e41f4b71Sopenharmony_cistop(callback: AsyncCallback\<void\>): void 1741e41f4b71Sopenharmony_ci 1742e41f4b71Sopenharmony_ci停止输出预览流,通过注册回调函数获取结果。使用callback异步回调。 1743e41f4b71Sopenharmony_ci 1744e41f4b71Sopenharmony_ci> **说明:** 1745e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.stop](#stop11)替代。 1746e41f4b71Sopenharmony_ci 1747e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1748e41f4b71Sopenharmony_ci 1749e41f4b71Sopenharmony_ci**参数:** 1750e41f4b71Sopenharmony_ci 1751e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1752e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 1753e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。 | 1754e41f4b71Sopenharmony_ci 1755e41f4b71Sopenharmony_ci**示例:** 1756e41f4b71Sopenharmony_ci 1757e41f4b71Sopenharmony_ci```ts 1758e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1759e41f4b71Sopenharmony_ci 1760e41f4b71Sopenharmony_cifunction stopPreviewOutput(previewOutput: camera.PreviewOutput): void { 1761e41f4b71Sopenharmony_ci previewOutput.stop((err: BusinessError) => { 1762e41f4b71Sopenharmony_ci if (err) { 1763e41f4b71Sopenharmony_ci console.error(`Failed to stop the preview output, error code: ${err.code}.`); 1764e41f4b71Sopenharmony_ci return; 1765e41f4b71Sopenharmony_ci } 1766e41f4b71Sopenharmony_ci console.info('Returned with preview output stopped.'); 1767e41f4b71Sopenharmony_ci }) 1768e41f4b71Sopenharmony_ci} 1769e41f4b71Sopenharmony_ci``` 1770e41f4b71Sopenharmony_ci 1771e41f4b71Sopenharmony_ci### stop<sup>(deprecated)</sup> 1772e41f4b71Sopenharmony_ci 1773e41f4b71Sopenharmony_cistop(): Promise\<void\> 1774e41f4b71Sopenharmony_ci 1775e41f4b71Sopenharmony_ci停止输出预览流,通过Promise获取结果。 1776e41f4b71Sopenharmony_ci 1777e41f4b71Sopenharmony_ci> **说明:** 1778e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.stop](#stop11-1)替代。 1779e41f4b71Sopenharmony_ci 1780e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1781e41f4b71Sopenharmony_ci 1782e41f4b71Sopenharmony_ci**返回值:** 1783e41f4b71Sopenharmony_ci 1784e41f4b71Sopenharmony_ci| 类型 | 说明 | 1785e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 1786e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 1787e41f4b71Sopenharmony_ci 1788e41f4b71Sopenharmony_ci**示例:** 1789e41f4b71Sopenharmony_ci 1790e41f4b71Sopenharmony_ci```ts 1791e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1792e41f4b71Sopenharmony_ci 1793e41f4b71Sopenharmony_cifunction stopPreviewOutput(previewOutput: camera.PreviewOutput): void { 1794e41f4b71Sopenharmony_ci previewOutput.stop().then(() => { 1795e41f4b71Sopenharmony_ci console.info('Callback returned with preview output stopped.'); 1796e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 1797e41f4b71Sopenharmony_ci console.error(`Failed to preview output stop, error code: ${error.code}.`); 1798e41f4b71Sopenharmony_ci }); 1799e41f4b71Sopenharmony_ci} 1800e41f4b71Sopenharmony_ci``` 1801e41f4b71Sopenharmony_ci 1802e41f4b71Sopenharmony_ci### on('frameStart') 1803e41f4b71Sopenharmony_ci 1804e41f4b71Sopenharmony_cion(type: 'frameStart', callback: AsyncCallback\<void\>): void 1805e41f4b71Sopenharmony_ci 1806e41f4b71Sopenharmony_ci监听预览帧启动,通过注册回调函数获取结果。使用callback异步回调。 1807e41f4b71Sopenharmony_ci 1808e41f4b71Sopenharmony_ci> **说明:** 1809e41f4b71Sopenharmony_ci> 1810e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 1811e41f4b71Sopenharmony_ci 1812e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1813e41f4b71Sopenharmony_ci 1814e41f4b71Sopenharmony_ci**参数:** 1815e41f4b71Sopenharmony_ci 1816e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1817e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | --------------------------------------- | 1818e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameStart',previewOutput创建成功可监听。底层第一次开始曝光时触发该事件并返回。 | 1819e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。只要有该事件返回就证明预览开始。 | 1820e41f4b71Sopenharmony_ci 1821e41f4b71Sopenharmony_ci**示例:** 1822e41f4b71Sopenharmony_ci 1823e41f4b71Sopenharmony_ci```ts 1824e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1825e41f4b71Sopenharmony_ci 1826e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 1827e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 1828e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 1829e41f4b71Sopenharmony_ci return; 1830e41f4b71Sopenharmony_ci } 1831e41f4b71Sopenharmony_ci console.info('Preview frame started'); 1832e41f4b71Sopenharmony_ci} 1833e41f4b71Sopenharmony_ci 1834e41f4b71Sopenharmony_cifunction registerPreviewOutputFrameStart(previewOutput: camera.PreviewOutput): void { 1835e41f4b71Sopenharmony_ci previewOutput.on('frameStart', callback); 1836e41f4b71Sopenharmony_ci} 1837e41f4b71Sopenharmony_ci``` 1838e41f4b71Sopenharmony_ci 1839e41f4b71Sopenharmony_ci### off('frameStart') 1840e41f4b71Sopenharmony_ci 1841e41f4b71Sopenharmony_cioff(type: 'frameStart', callback?: AsyncCallback\<void\>): void 1842e41f4b71Sopenharmony_ci 1843e41f4b71Sopenharmony_ci注销监听预览帧启动。 1844e41f4b71Sopenharmony_ci 1845e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1846e41f4b71Sopenharmony_ci 1847e41f4b71Sopenharmony_ci**参数:** 1848e41f4b71Sopenharmony_ci 1849e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1850e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | --------------------------------------- | 1851e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameStart',previewOutput创建成功可监听。 | 1852e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 1853e41f4b71Sopenharmony_ci 1854e41f4b71Sopenharmony_ci**示例:** 1855e41f4b71Sopenharmony_ci 1856e41f4b71Sopenharmony_ci```ts 1857e41f4b71Sopenharmony_cifunction unregisterPreviewOutputFrameStart(previewOutput: camera.PreviewOutput): void { 1858e41f4b71Sopenharmony_ci previewOutput.off('frameStart'); 1859e41f4b71Sopenharmony_ci} 1860e41f4b71Sopenharmony_ci``` 1861e41f4b71Sopenharmony_ci 1862e41f4b71Sopenharmony_ci### on('frameEnd') 1863e41f4b71Sopenharmony_ci 1864e41f4b71Sopenharmony_cion(type: 'frameEnd', callback: AsyncCallback\<void\>): void 1865e41f4b71Sopenharmony_ci 1866e41f4b71Sopenharmony_ci监听预览帧结束,通过注册回调函数获取结果。使用callback异步回调。 1867e41f4b71Sopenharmony_ci 1868e41f4b71Sopenharmony_ci> **说明:** 1869e41f4b71Sopenharmony_ci> 1870e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 1871e41f4b71Sopenharmony_ci 1872e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1873e41f4b71Sopenharmony_ci 1874e41f4b71Sopenharmony_ci**参数:** 1875e41f4b71Sopenharmony_ci 1876e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1877e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------- | 1878e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。预览完全结束最后一帧时触发该事件并返回。 | 1879e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。只要有该事件返回就证明预览结束。 | 1880e41f4b71Sopenharmony_ci 1881e41f4b71Sopenharmony_ci**示例:** 1882e41f4b71Sopenharmony_ci 1883e41f4b71Sopenharmony_ci```ts 1884e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1885e41f4b71Sopenharmony_ci 1886e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 1887e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 1888e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 1889e41f4b71Sopenharmony_ci return; 1890e41f4b71Sopenharmony_ci } 1891e41f4b71Sopenharmony_ci console.info('Preview frame ended'); 1892e41f4b71Sopenharmony_ci} 1893e41f4b71Sopenharmony_ci 1894e41f4b71Sopenharmony_cifunction registerPreviewOutputFrameEnd(previewOutput: camera.PreviewOutput): void { 1895e41f4b71Sopenharmony_ci previewOutput.on('frameEnd', callback); 1896e41f4b71Sopenharmony_ci} 1897e41f4b71Sopenharmony_ci``` 1898e41f4b71Sopenharmony_ci 1899e41f4b71Sopenharmony_ci### off('frameEnd') 1900e41f4b71Sopenharmony_ci 1901e41f4b71Sopenharmony_cioff(type: 'frameEnd', callback?: AsyncCallback\<void\>): void 1902e41f4b71Sopenharmony_ci 1903e41f4b71Sopenharmony_ci注销监听预览帧结束。 1904e41f4b71Sopenharmony_ci 1905e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1906e41f4b71Sopenharmony_ci 1907e41f4b71Sopenharmony_ci**参数:** 1908e41f4b71Sopenharmony_ci 1909e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1910e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------- | 1911e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameEnd',previewOutput创建成功可监听。 | 1912e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 1913e41f4b71Sopenharmony_ci 1914e41f4b71Sopenharmony_ci**示例:** 1915e41f4b71Sopenharmony_ci 1916e41f4b71Sopenharmony_ci```ts 1917e41f4b71Sopenharmony_cifunction unregisterPreviewOutputFrameEnd(previewOutput: camera.PreviewOutput): void { 1918e41f4b71Sopenharmony_ci previewOutput.off('frameEnd'); 1919e41f4b71Sopenharmony_ci} 1920e41f4b71Sopenharmony_ci``` 1921e41f4b71Sopenharmony_ci 1922e41f4b71Sopenharmony_ci### on('error') 1923e41f4b71Sopenharmony_ci 1924e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 1925e41f4b71Sopenharmony_ci 1926e41f4b71Sopenharmony_ci监听预览输出的错误事件,通过注册回调函数获取结果。使用callback异步回调。 1927e41f4b71Sopenharmony_ci 1928e41f4b71Sopenharmony_ci> **说明:** 1929e41f4b71Sopenharmony_ci> 1930e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 1931e41f4b71Sopenharmony_ci 1932e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1933e41f4b71Sopenharmony_ci 1934e41f4b71Sopenharmony_ci**参数:** 1935e41f4b71Sopenharmony_ci 1936e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1937e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 1938e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',previewOutput创建成功可监听。预览接口使用错误时触发该事件,比如调用[Session.start](#start11-1),[CameraOutput.release](#release-1)等接口发生错误时返回对应错误信息。 | 1939e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 1940e41f4b71Sopenharmony_ci 1941e41f4b71Sopenharmony_ci**示例:** 1942e41f4b71Sopenharmony_ci 1943e41f4b71Sopenharmony_ci```ts 1944e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1945e41f4b71Sopenharmony_ci 1946e41f4b71Sopenharmony_cifunction callback(previewOutputError: BusinessError): void { 1947e41f4b71Sopenharmony_ci console.error(`Preview output error code: ${previewOutputError.code}`); 1948e41f4b71Sopenharmony_ci} 1949e41f4b71Sopenharmony_ci 1950e41f4b71Sopenharmony_cifunction registerPreviewOutputError(previewOutput: camera.PreviewOutput): void { 1951e41f4b71Sopenharmony_ci previewOutput.on('error', callback) 1952e41f4b71Sopenharmony_ci} 1953e41f4b71Sopenharmony_ci``` 1954e41f4b71Sopenharmony_ci 1955e41f4b71Sopenharmony_ci### off('error') 1956e41f4b71Sopenharmony_ci 1957e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 1958e41f4b71Sopenharmony_ci 1959e41f4b71Sopenharmony_ci注销监听预览输出的错误事件。 1960e41f4b71Sopenharmony_ci 1961e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1962e41f4b71Sopenharmony_ci 1963e41f4b71Sopenharmony_ci**参数:** 1964e41f4b71Sopenharmony_ci 1965e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1966e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 1967e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',previewOutput创建成功可监听。 | 1968e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 1969e41f4b71Sopenharmony_ci 1970e41f4b71Sopenharmony_ci**示例:** 1971e41f4b71Sopenharmony_ci 1972e41f4b71Sopenharmony_ci```ts 1973e41f4b71Sopenharmony_cifunction unregisterPreviewOutputError(previewOutput: camera.PreviewOutput): void { 1974e41f4b71Sopenharmony_ci previewOutput.off('error'); 1975e41f4b71Sopenharmony_ci} 1976e41f4b71Sopenharmony_ci``` 1977e41f4b71Sopenharmony_ci 1978e41f4b71Sopenharmony_ci### getSupportedFrameRates<sup>12+</sup> 1979e41f4b71Sopenharmony_ci 1980e41f4b71Sopenharmony_ci getSupportedFrameRates(): Array\<FrameRateRange\> 1981e41f4b71Sopenharmony_ci 1982e41f4b71Sopenharmony_ci查询支持的帧率范围。 1983e41f4b71Sopenharmony_ci 1984e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 1985e41f4b71Sopenharmony_ci 1986e41f4b71Sopenharmony_ci**返回值:** 1987e41f4b71Sopenharmony_ci| 类型 | 说明 | 1988e41f4b71Sopenharmony_ci| ------------- | ------------ | 1989e41f4b71Sopenharmony_ci| Array<[FrameRateRange](#frameraterange)> | 支持的帧率范围列表 | 1990e41f4b71Sopenharmony_ci 1991e41f4b71Sopenharmony_ci**示例:** 1992e41f4b71Sopenharmony_ci 1993e41f4b71Sopenharmony_ci```ts 1994e41f4b71Sopenharmony_cifunction getSupportedFrameRates(previewOutput: camera.PreviewOutput): Array<camera.FrameRateRange> { 1995e41f4b71Sopenharmony_ci let supportedFrameRatesArray: Array<camera.FrameRateRange> = previewOutput.getSupportedFrameRates(); 1996e41f4b71Sopenharmony_ci return supportedFrameRatesArray; 1997e41f4b71Sopenharmony_ci} 1998e41f4b71Sopenharmony_ci``` 1999e41f4b71Sopenharmony_ci 2000e41f4b71Sopenharmony_ci### setFrameRate<sup>12+</sup> 2001e41f4b71Sopenharmony_ci 2002e41f4b71Sopenharmony_cisetFrameRate(minFps: number, maxFps: number): void 2003e41f4b71Sopenharmony_ci 2004e41f4b71Sopenharmony_ci设置预览流帧率范围,设置的范围必须在支持的帧率范围内。 2005e41f4b71Sopenharmony_ci进行设置前,可通过[getSupportedFrameRates](#getsupportedframerates12)查询支持的帧率范围。 2006e41f4b71Sopenharmony_ci 2007e41f4b71Sopenharmony_ci> **说明:** 2008e41f4b71Sopenharmony_ci> 仅在[PhotoSession](#photosession11)或[VideoSession](#videosession11)模式下支持。 2009e41f4b71Sopenharmony_ci 2010e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2011e41f4b71Sopenharmony_ci 2012e41f4b71Sopenharmony_ci**参数:** 2013e41f4b71Sopenharmony_ci 2014e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2015e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 2016e41f4b71Sopenharmony_ci| minFps | number | 是 | 最小帧率。 | 2017e41f4b71Sopenharmony_ci| maxFps | number | 是 | 最大帧率,当传入的最小值大于最大值时,传参异常,接口不生效。| 2018e41f4b71Sopenharmony_ci 2019e41f4b71Sopenharmony_ci**错误码:** 2020e41f4b71Sopenharmony_ci 2021e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2022e41f4b71Sopenharmony_ci 2023e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2024e41f4b71Sopenharmony_ci| --------------- | --------------- | 2025e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 2026e41f4b71Sopenharmony_ci| 7400110 | Unresolved conflicts with current configurations. | 2027e41f4b71Sopenharmony_ci 2028e41f4b71Sopenharmony_ci**示例:** 2029e41f4b71Sopenharmony_ci 2030e41f4b71Sopenharmony_ci```ts 2031e41f4b71Sopenharmony_cifunction setFrameRateRange(previewOutput: camera.PreviewOutput, frameRateRange: Array<number>): void { 2032e41f4b71Sopenharmony_ci previewOutput.setFrameRate(frameRateRange[0], frameRateRange[1]); 2033e41f4b71Sopenharmony_ci} 2034e41f4b71Sopenharmony_ci``` 2035e41f4b71Sopenharmony_ci 2036e41f4b71Sopenharmony_ci### getActiveFrameRate<sup>12+</sup> 2037e41f4b71Sopenharmony_ci 2038e41f4b71Sopenharmony_cigetActiveFrameRate(): FrameRateRange 2039e41f4b71Sopenharmony_ci 2040e41f4b71Sopenharmony_ci获取已设置的帧率范围。 2041e41f4b71Sopenharmony_ci 2042e41f4b71Sopenharmony_ci使用[setFrameRate](#setframerate12)对预览流设置过帧率后可查询。 2043e41f4b71Sopenharmony_ci 2044e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2045e41f4b71Sopenharmony_ci 2046e41f4b71Sopenharmony_ci**返回值:** 2047e41f4b71Sopenharmony_ci 2048e41f4b71Sopenharmony_ci| 类型 | 说明 | 2049e41f4b71Sopenharmony_ci| ------------- | ------------ | 2050e41f4b71Sopenharmony_ci| [FrameRateRange](#frameraterange) | 帧率范围 | 2051e41f4b71Sopenharmony_ci 2052e41f4b71Sopenharmony_ci**示例:** 2053e41f4b71Sopenharmony_ci 2054e41f4b71Sopenharmony_ci```ts 2055e41f4b71Sopenharmony_cifunction getActiveFrameRate(previewOutput: camera.PreviewOutput): camera.FrameRateRange { 2056e41f4b71Sopenharmony_ci let activeFrameRate: camera.FrameRateRange = previewOutput.getActiveFrameRate(); 2057e41f4b71Sopenharmony_ci return activeFrameRate; 2058e41f4b71Sopenharmony_ci} 2059e41f4b71Sopenharmony_ci``` 2060e41f4b71Sopenharmony_ci 2061e41f4b71Sopenharmony_ci### getActiveProfile<sup>12+</sup> 2062e41f4b71Sopenharmony_ci 2063e41f4b71Sopenharmony_cigetActiveProfile(): Profile 2064e41f4b71Sopenharmony_ci 2065e41f4b71Sopenharmony_ci获取当前生效的配置信息。 2066e41f4b71Sopenharmony_ci 2067e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2068e41f4b71Sopenharmony_ci 2069e41f4b71Sopenharmony_ci**返回值:** 2070e41f4b71Sopenharmony_ci 2071e41f4b71Sopenharmony_ci| 类型 | 说明 | 2072e41f4b71Sopenharmony_ci| ------------- |-----------| 2073e41f4b71Sopenharmony_ci| [Profile](#profile) | 当前生效的配置信息 | 2074e41f4b71Sopenharmony_ci 2075e41f4b71Sopenharmony_ci**错误码:** 2076e41f4b71Sopenharmony_ci 2077e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2078e41f4b71Sopenharmony_ci 2079e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2080e41f4b71Sopenharmony_ci|---------|------------------------------| 2081e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2082e41f4b71Sopenharmony_ci 2083e41f4b71Sopenharmony_ci**示例:** 2084e41f4b71Sopenharmony_ci 2085e41f4b71Sopenharmony_ci```ts 2086e41f4b71Sopenharmony_cifunction testGetActiveProfile(previewOutput: camera.PreviewOutput): camera.Profile | undefined { 2087e41f4b71Sopenharmony_ci let activeProfile: camera.Profile | undefined = undefined; 2088e41f4b71Sopenharmony_ci try { 2089e41f4b71Sopenharmony_ci activeProfile = previewOutput.getActiveProfile(); 2090e41f4b71Sopenharmony_ci } catch (error) { 2091e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 2092e41f4b71Sopenharmony_ci let err = error as BusinessError; 2093e41f4b71Sopenharmony_ci console.error(`The previewOutput.getActiveProfile call failed. error code: ${err.code}`); 2094e41f4b71Sopenharmony_ci } 2095e41f4b71Sopenharmony_ci return activeProfile; 2096e41f4b71Sopenharmony_ci} 2097e41f4b71Sopenharmony_ci``` 2098e41f4b71Sopenharmony_ci 2099e41f4b71Sopenharmony_ci### getPreviewRotation<sup>12+</sup> 2100e41f4b71Sopenharmony_ci 2101e41f4b71Sopenharmony_cigetPreviewRotation(displayRotation: number): ImageRotation 2102e41f4b71Sopenharmony_ci 2103e41f4b71Sopenharmony_ci获取预览旋转角度。 2104e41f4b71Sopenharmony_ci 2105e41f4b71Sopenharmony_ci- 设备自然方向:设备默认使用方向,手机为竖屏(充电口向下)。 2106e41f4b71Sopenharmony_ci- 相机镜头角度:值等于相机图像顺时针旋转到设备自然方向的角度,手机后置相机传感器是竖屏安装的,所以需要顺时针旋转90度到设备自然方向。 2107e41f4b71Sopenharmony_ci- 屏幕显示方向:需要屏幕显示的图片左上角为第一个像素点为坐标原点。锁屏时与自然方向一致。 2108e41f4b71Sopenharmony_ci 2109e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2110e41f4b71Sopenharmony_ci 2111e41f4b71Sopenharmony_ci**参数:** 2112e41f4b71Sopenharmony_ci 2113e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2114e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 2115e41f4b71Sopenharmony_ci| displayRotation | number | 是 | 显示设备的屏幕旋转角度,通过[display.getDefaultDisplaySync](../apis-arkui/js-apis-display.md#displaygetdefaultdisplaysync9)获得。 | 2116e41f4b71Sopenharmony_ci 2117e41f4b71Sopenharmony_ci**返回值:** 2118e41f4b71Sopenharmony_ci 2119e41f4b71Sopenharmony_ci| 类型 | 说明 | 2120e41f4b71Sopenharmony_ci| ------------- |-----------| 2121e41f4b71Sopenharmony_ci| [ImageRotation](#imagerotation) | 获取预览旋转角度。 | 2122e41f4b71Sopenharmony_ci 2123e41f4b71Sopenharmony_ci**错误码:** 2124e41f4b71Sopenharmony_ci 2125e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2126e41f4b71Sopenharmony_ci 2127e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2128e41f4b71Sopenharmony_ci|---------|------------------------------| 2129e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 2130e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2131e41f4b71Sopenharmony_ci 2132e41f4b71Sopenharmony_ci**示例:** 2133e41f4b71Sopenharmony_ci 2134e41f4b71Sopenharmony_ci```ts 2135e41f4b71Sopenharmony_cifunction testGetPreviewRotation(previewOutput: camera.PreviewOutput, imageRotation : camera.ImageRotation): camera.ImageRotation { 2136e41f4b71Sopenharmony_ci let previewRotation: camera.ImageRotation; 2137e41f4b71Sopenharmony_ci try { 2138e41f4b71Sopenharmony_ci previewRotation = previewOutput.getPreviewRotation(imageRotation); 2139e41f4b71Sopenharmony_ci console.log(`Preview rotation is: ${previewRotation}`); 2140e41f4b71Sopenharmony_ci } catch (error) { 2141e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 2142e41f4b71Sopenharmony_ci let err = error as BusinessError; 2143e41f4b71Sopenharmony_ci console.error(`The previewOutput.getPreviewRotation call failed. error code: ${err.code}`); 2144e41f4b71Sopenharmony_ci } 2145e41f4b71Sopenharmony_ci return; 2146e41f4b71Sopenharmony_ci} 2147e41f4b71Sopenharmony_ci``` 2148e41f4b71Sopenharmony_ci### setPreviewRotation<sup>12+</sup> 2149e41f4b71Sopenharmony_cisetPreviewRotation(previewRotation: ImageRotation, isDisplayLocked?: boolean): void 2150e41f4b71Sopenharmony_ci 2151e41f4b71Sopenharmony_ci设置预览旋转角度。 2152e41f4b71Sopenharmony_ci 2153e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2154e41f4b71Sopenharmony_ci 2155e41f4b71Sopenharmony_ci**参数:** 2156e41f4b71Sopenharmony_ci 2157e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2158e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 2159e41f4b71Sopenharmony_ci| previewRotation | [ImageRotation](#imagerotation) | 是 | 预览旋转角度 | 2160e41f4b71Sopenharmony_ci| isDisplayLocked | boolean | 否 | 是否旋转锁定 | 2161e41f4b71Sopenharmony_ci 2162e41f4b71Sopenharmony_ci**错误码:** 2163e41f4b71Sopenharmony_ci 2164e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2165e41f4b71Sopenharmony_ci 2166e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2167e41f4b71Sopenharmony_ci|---------|------------------------------| 2168e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 2169e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2170e41f4b71Sopenharmony_ci 2171e41f4b71Sopenharmony_ci**示例:** 2172e41f4b71Sopenharmony_ci 2173e41f4b71Sopenharmony_ci```ts 2174e41f4b71Sopenharmony_cifunction testSetPreviewRotation(previewOutput: camera.PreviewOutput, previewRotation : camera.ImageRotation, isDisplayLocked: boolean): void { 2175e41f4b71Sopenharmony_ci try { 2176e41f4b71Sopenharmony_ci previewOutput.setPreviewRotation(previewRotation, isDisplayLocked); 2177e41f4b71Sopenharmony_ci } catch (error) { 2178e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 2179e41f4b71Sopenharmony_ci let err = error as BusinessError; 2180e41f4b71Sopenharmony_ci console.error(`The previewOutput.setPreviewRotation call failed. error code: ${err.code}`); 2181e41f4b71Sopenharmony_ci } 2182e41f4b71Sopenharmony_ci return; 2183e41f4b71Sopenharmony_ci} 2184e41f4b71Sopenharmony_ci``` 2185e41f4b71Sopenharmony_ci## ImageRotation 2186e41f4b71Sopenharmony_ci 2187e41f4b71Sopenharmony_ci枚举,图片旋转角度。 2188e41f4b71Sopenharmony_ci 2189e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2190e41f4b71Sopenharmony_ci 2191e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 2192e41f4b71Sopenharmony_ci| ------------ | ---- | ------------- | 2193e41f4b71Sopenharmony_ci| ROTATION_0 | 0 | 图片旋转0度。 | 2194e41f4b71Sopenharmony_ci| ROTATION_90 | 90 | 图片旋转90度。 | 2195e41f4b71Sopenharmony_ci| ROTATION_180 | 180 | 图片旋转180度。 | 2196e41f4b71Sopenharmony_ci| ROTATION_270 | 270 | 图片旋转270度。 | 2197e41f4b71Sopenharmony_ci 2198e41f4b71Sopenharmony_ci## Location 2199e41f4b71Sopenharmony_ci 2200e41f4b71Sopenharmony_ci图片地理位置信息。 2201e41f4b71Sopenharmony_ci 2202e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2203e41f4b71Sopenharmony_ci 2204e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 |说明 | 2205e41f4b71Sopenharmony_ci| ------------ | ------ | ---- |-----|------------ | 2206e41f4b71Sopenharmony_ci| latitude | number | 否 | 否 |纬度(度)。 | 2207e41f4b71Sopenharmony_ci| longitude | number | 否 | 否 |经度(度)。 | 2208e41f4b71Sopenharmony_ci| altitude | number | 否 | 否 |海拔(米)。 | 2209e41f4b71Sopenharmony_ci 2210e41f4b71Sopenharmony_ci## QualityLevel 2211e41f4b71Sopenharmony_ci 2212e41f4b71Sopenharmony_ci枚举,图片质量。 2213e41f4b71Sopenharmony_ci 2214e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2215e41f4b71Sopenharmony_ci 2216e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 2217e41f4b71Sopenharmony_ci| -------------------- | ---- | ------------ | 2218e41f4b71Sopenharmony_ci| QUALITY_LEVEL_HIGH | 0 | 图片质量高。 | 2219e41f4b71Sopenharmony_ci| QUALITY_LEVEL_MEDIUM | 1 | 图片质量中等。 | 2220e41f4b71Sopenharmony_ci| QUALITY_LEVEL_LOW | 2 | 图片质量差。 | 2221e41f4b71Sopenharmony_ci 2222e41f4b71Sopenharmony_ci 2223e41f4b71Sopenharmony_ci## PhotoCaptureSetting 2224e41f4b71Sopenharmony_ci 2225e41f4b71Sopenharmony_ci拍摄照片的设置。 2226e41f4b71Sopenharmony_ci 2227e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2228e41f4b71Sopenharmony_ci 2229e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 2230e41f4b71Sopenharmony_ci| -------- | ------------------------------- | ---- | ---- |----------------------------------------------------------------------| 2231e41f4b71Sopenharmony_ci| quality | [QualityLevel](#qualitylevel) | 否 | 是 | 图片质量(默认低)。 | 2232e41f4b71Sopenharmony_ci| rotation | [ImageRotation](#imagerotation) | 否 | 是 | 图片旋转角度(默认0度,顺时针旋转)。 | 2233e41f4b71Sopenharmony_ci| location | [Location](#location) | 否 | 是 | 图片地理位置信息(默认以设备硬件信息为准)。 | 2234e41f4b71Sopenharmony_ci| mirror | boolean | 否 | 是 | 镜像使能开关(默认关)。使用之前需要使用[isMirrorSupported](#ismirrorsupported)进行判断是否支持。 | 2235e41f4b71Sopenharmony_ci 2236e41f4b71Sopenharmony_ci## Photo<sup>11+</sup> 2237e41f4b71Sopenharmony_ci 2238e41f4b71Sopenharmony_ci全质量图对象。 2239e41f4b71Sopenharmony_ci 2240e41f4b71Sopenharmony_ci### 属性 2241e41f4b71Sopenharmony_ci 2242e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2243e41f4b71Sopenharmony_ci 2244e41f4b71Sopenharmony_ci| 名称 | 类型 | 必填 | 说明 | 2245e41f4b71Sopenharmony_ci| ------ | ----------------------------- | -------------- | ---------- | 2246e41f4b71Sopenharmony_ci| main<sup>11+</sup> | [image.Image](../apis-image-kit/js-apis-image.md#image9) | 是 | 全质量图Image。 | 2247e41f4b71Sopenharmony_ci 2248e41f4b71Sopenharmony_ci### release<sup>11+</sup> 2249e41f4b71Sopenharmony_ci 2250e41f4b71Sopenharmony_cirelease(): Promise\<void\> 2251e41f4b71Sopenharmony_ci 2252e41f4b71Sopenharmony_ci释放输出资源,通过Promise获取结果。 2253e41f4b71Sopenharmony_ci 2254e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2255e41f4b71Sopenharmony_ci 2256e41f4b71Sopenharmony_ci**返回值:** 2257e41f4b71Sopenharmony_ci 2258e41f4b71Sopenharmony_ci| 类型 | 说明 | 2259e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 2260e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 2261e41f4b71Sopenharmony_ci 2262e41f4b71Sopenharmony_ci**示例:** 2263e41f4b71Sopenharmony_ci 2264e41f4b71Sopenharmony_ci```ts 2265e41f4b71Sopenharmony_ciasync function releasePhoto(photo: camera.Photo): Promise<void> { 2266e41f4b71Sopenharmony_ci await photo.release(); 2267e41f4b71Sopenharmony_ci} 2268e41f4b71Sopenharmony_ci``` 2269e41f4b71Sopenharmony_ci 2270e41f4b71Sopenharmony_ci## PhotoOutput 2271e41f4b71Sopenharmony_ci 2272e41f4b71Sopenharmony_ci拍照会话中使用的输出信息,继承[CameraOutput](#cameraoutput)。 2273e41f4b71Sopenharmony_ci 2274e41f4b71Sopenharmony_ci### capture 2275e41f4b71Sopenharmony_ci 2276e41f4b71Sopenharmony_cicapture(callback: AsyncCallback\<void\>): void 2277e41f4b71Sopenharmony_ci 2278e41f4b71Sopenharmony_ci以默认设置触发一次拍照,通过注册回调函数获取结果。使用callback异步回调。 2279e41f4b71Sopenharmony_ci 2280e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2281e41f4b71Sopenharmony_ci 2282e41f4b71Sopenharmony_ci**参数:** 2283e41f4b71Sopenharmony_ci 2284e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2285e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------- | 2286e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 2287e41f4b71Sopenharmony_ci 2288e41f4b71Sopenharmony_ci**错误码:** 2289e41f4b71Sopenharmony_ci 2290e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2291e41f4b71Sopenharmony_ci 2292e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2293e41f4b71Sopenharmony_ci| --------------- | --------------- | 2294e41f4b71Sopenharmony_ci| 7400104 | Session not running. | 2295e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2296e41f4b71Sopenharmony_ci 2297e41f4b71Sopenharmony_ci**示例:** 2298e41f4b71Sopenharmony_ci 2299e41f4b71Sopenharmony_ci```ts 2300e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2301e41f4b71Sopenharmony_ci 2302e41f4b71Sopenharmony_cifunction capture(photoOutput: camera.PhotoOutput): void { 2303e41f4b71Sopenharmony_ci photoOutput.capture((err: BusinessError) => { 2304e41f4b71Sopenharmony_ci if (err) { 2305e41f4b71Sopenharmony_ci console.error(`Failed to capture the photo, error code: ${err.code}.`); 2306e41f4b71Sopenharmony_ci return; 2307e41f4b71Sopenharmony_ci } 2308e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the photo capture request success.'); 2309e41f4b71Sopenharmony_ci }); 2310e41f4b71Sopenharmony_ci} 2311e41f4b71Sopenharmony_ci``` 2312e41f4b71Sopenharmony_ci 2313e41f4b71Sopenharmony_ci### capture 2314e41f4b71Sopenharmony_ci 2315e41f4b71Sopenharmony_cicapture(): Promise\<void\> 2316e41f4b71Sopenharmony_ci 2317e41f4b71Sopenharmony_ci以默认设置触发一次拍照,通过Promise获取结果。 2318e41f4b71Sopenharmony_ci 2319e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2320e41f4b71Sopenharmony_ci 2321e41f4b71Sopenharmony_ci**返回值:** 2322e41f4b71Sopenharmony_ci 2323e41f4b71Sopenharmony_ci| 类型 | 说明 | 2324e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 2325e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 2326e41f4b71Sopenharmony_ci 2327e41f4b71Sopenharmony_ci**错误码:** 2328e41f4b71Sopenharmony_ci 2329e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2330e41f4b71Sopenharmony_ci 2331e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2332e41f4b71Sopenharmony_ci| --------------- | --------------- | 2333e41f4b71Sopenharmony_ci| 7400104 | Session not running. | 2334e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2335e41f4b71Sopenharmony_ci 2336e41f4b71Sopenharmony_ci**示例:** 2337e41f4b71Sopenharmony_ci 2338e41f4b71Sopenharmony_ci```ts 2339e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2340e41f4b71Sopenharmony_ci 2341e41f4b71Sopenharmony_cifunction capture(photoOutput: camera.PhotoOutput): void { 2342e41f4b71Sopenharmony_ci photoOutput.capture().then(() => { 2343e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that photo capture request success.'); 2344e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 2345e41f4b71Sopenharmony_ci console.error(`Failed to photo output capture, error code: ${error.code}.`); 2346e41f4b71Sopenharmony_ci }); 2347e41f4b71Sopenharmony_ci} 2348e41f4b71Sopenharmony_ci``` 2349e41f4b71Sopenharmony_ci 2350e41f4b71Sopenharmony_ci### capture 2351e41f4b71Sopenharmony_ci 2352e41f4b71Sopenharmony_cicapture(setting: PhotoCaptureSetting, callback: AsyncCallback\<void\>): void 2353e41f4b71Sopenharmony_ci 2354e41f4b71Sopenharmony_ci以指定参数触发一次拍照,通过注册回调函数获取结果。使用callback异步回调。 2355e41f4b71Sopenharmony_ci 2356e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2357e41f4b71Sopenharmony_ci 2358e41f4b71Sopenharmony_ci**参数:** 2359e41f4b71Sopenharmony_ci 2360e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2361e41f4b71Sopenharmony_ci| -------- | ------------------------------------------- | ---- | -------------------- | 2362e41f4b71Sopenharmony_ci| setting | [PhotoCaptureSetting](#photocapturesetting) | 是 | 拍照设置。 | 2363e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 2364e41f4b71Sopenharmony_ci 2365e41f4b71Sopenharmony_ci**错误码:** 2366e41f4b71Sopenharmony_ci 2367e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2368e41f4b71Sopenharmony_ci 2369e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2370e41f4b71Sopenharmony_ci| --------------- | --------------- | 2371e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 2372e41f4b71Sopenharmony_ci| 7400104 | Session not running. | 2373e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2374e41f4b71Sopenharmony_ci 2375e41f4b71Sopenharmony_ci**示例:** 2376e41f4b71Sopenharmony_ci 2377e41f4b71Sopenharmony_ci```ts 2378e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2379e41f4b71Sopenharmony_ci 2380e41f4b71Sopenharmony_cifunction capture(photoOutput: camera.PhotoOutput): void { 2381e41f4b71Sopenharmony_ci let captureLocation: camera.Location = { 2382e41f4b71Sopenharmony_ci latitude: 0, 2383e41f4b71Sopenharmony_ci longitude: 0, 2384e41f4b71Sopenharmony_ci altitude: 0 2385e41f4b71Sopenharmony_ci } 2386e41f4b71Sopenharmony_ci let settings: camera.PhotoCaptureSetting = { 2387e41f4b71Sopenharmony_ci quality: camera.QualityLevel.QUALITY_LEVEL_LOW, 2388e41f4b71Sopenharmony_ci rotation: camera.ImageRotation.ROTATION_0, 2389e41f4b71Sopenharmony_ci location: captureLocation, 2390e41f4b71Sopenharmony_ci mirror: false 2391e41f4b71Sopenharmony_ci } 2392e41f4b71Sopenharmony_ci photoOutput.capture(settings, (err: BusinessError) => { 2393e41f4b71Sopenharmony_ci if (err) { 2394e41f4b71Sopenharmony_ci console.error(`Failed to capture the photo, error code: ${err.code}.`); 2395e41f4b71Sopenharmony_ci return; 2396e41f4b71Sopenharmony_ci } 2397e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the photo capture request success.'); 2398e41f4b71Sopenharmony_ci }); 2399e41f4b71Sopenharmony_ci} 2400e41f4b71Sopenharmony_ci``` 2401e41f4b71Sopenharmony_ci 2402e41f4b71Sopenharmony_ci### capture 2403e41f4b71Sopenharmony_ci 2404e41f4b71Sopenharmony_cicapture(setting: PhotoCaptureSetting): Promise\<void\> 2405e41f4b71Sopenharmony_ci 2406e41f4b71Sopenharmony_ci以指定参数触发一次拍照,通过Promise获取结果。 2407e41f4b71Sopenharmony_ci 2408e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2409e41f4b71Sopenharmony_ci 2410e41f4b71Sopenharmony_ci**参数:** 2411e41f4b71Sopenharmony_ci 2412e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2413e41f4b71Sopenharmony_ci| ------- | ------------------------------------------- | ---- | -------- | 2414e41f4b71Sopenharmony_ci| setting | [PhotoCaptureSetting](#photocapturesetting) | 是 | 拍照设置,传入undefined类型数据按默认无参处理。 | 2415e41f4b71Sopenharmony_ci 2416e41f4b71Sopenharmony_ci**返回值:** 2417e41f4b71Sopenharmony_ci 2418e41f4b71Sopenharmony_ci| 类型 | 说明 | 2419e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 2420e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 2421e41f4b71Sopenharmony_ci 2422e41f4b71Sopenharmony_ci**错误码:** 2423e41f4b71Sopenharmony_ci 2424e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2425e41f4b71Sopenharmony_ci 2426e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2427e41f4b71Sopenharmony_ci| --------------- | --------------- | 2428e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 2429e41f4b71Sopenharmony_ci| 7400104 | Session not running. | 2430e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2431e41f4b71Sopenharmony_ci 2432e41f4b71Sopenharmony_ci**示例:** 2433e41f4b71Sopenharmony_ci 2434e41f4b71Sopenharmony_ci```ts 2435e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2436e41f4b71Sopenharmony_ci 2437e41f4b71Sopenharmony_cifunction capture(photoOutput: camera.PhotoOutput): void { 2438e41f4b71Sopenharmony_ci let captureLocation: camera.Location = { 2439e41f4b71Sopenharmony_ci latitude: 0, 2440e41f4b71Sopenharmony_ci longitude: 0, 2441e41f4b71Sopenharmony_ci altitude: 0 2442e41f4b71Sopenharmony_ci } 2443e41f4b71Sopenharmony_ci let settings: camera.PhotoCaptureSetting = { 2444e41f4b71Sopenharmony_ci quality: camera.QualityLevel.QUALITY_LEVEL_LOW, 2445e41f4b71Sopenharmony_ci rotation: camera.ImageRotation.ROTATION_0, 2446e41f4b71Sopenharmony_ci location: captureLocation, 2447e41f4b71Sopenharmony_ci mirror: false 2448e41f4b71Sopenharmony_ci } 2449e41f4b71Sopenharmony_ci photoOutput.capture(settings).then(() => { 2450e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that photo capture request success.'); 2451e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 2452e41f4b71Sopenharmony_ci console.error(`Failed to photo output capture, error code: ${error.code}.`); 2453e41f4b71Sopenharmony_ci }); 2454e41f4b71Sopenharmony_ci} 2455e41f4b71Sopenharmony_ci``` 2456e41f4b71Sopenharmony_ci 2457e41f4b71Sopenharmony_ci### on('photoAvailable')<sup>11+</sup> 2458e41f4b71Sopenharmony_ci 2459e41f4b71Sopenharmony_cion(type: 'photoAvailable', callback: AsyncCallback\<Photo\>): void 2460e41f4b71Sopenharmony_ci 2461e41f4b71Sopenharmony_ci注册监听全质量图上报。使用callback异步回调。 2462e41f4b71Sopenharmony_ci 2463e41f4b71Sopenharmony_ci> **说明:** 2464e41f4b71Sopenharmony_ci> 2465e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 2466e41f4b71Sopenharmony_ci 2467e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2468e41f4b71Sopenharmony_ci 2469e41f4b71Sopenharmony_ci**参数:** 2470e41f4b71Sopenharmony_ci 2471e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2472e41f4b71Sopenharmony_ci| -------- | ---------- | --- | ------------------------------------ | 2473e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'photoAvailable',photoOutput创建成功后可监听。 | 2474e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[Photo](#photo11)\> | 是 | 回调函数,用于监听全质量图上报。 | 2475e41f4b71Sopenharmony_ci 2476e41f4b71Sopenharmony_ci**示例:** 2477e41f4b71Sopenharmony_ci 2478e41f4b71Sopenharmony_ci```ts 2479e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2480e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 2481e41f4b71Sopenharmony_ci 2482e41f4b71Sopenharmony_cifunction callback(err: BusinessError, photo: camera.Photo): void { 2483e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 2484e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 2485e41f4b71Sopenharmony_ci return; 2486e41f4b71Sopenharmony_ci } 2487e41f4b71Sopenharmony_ci let mainImage: image.Image = photo.main; 2488e41f4b71Sopenharmony_ci} 2489e41f4b71Sopenharmony_ci 2490e41f4b71Sopenharmony_cifunction registerPhotoOutputPhotoAvailable(photoOutput: camera.PhotoOutput): void { 2491e41f4b71Sopenharmony_ci photoOutput.on('photoAvailable', callback); 2492e41f4b71Sopenharmony_ci} 2493e41f4b71Sopenharmony_ci``` 2494e41f4b71Sopenharmony_ci 2495e41f4b71Sopenharmony_ci### off('photoAvailable')<sup>11+</sup> 2496e41f4b71Sopenharmony_ci 2497e41f4b71Sopenharmony_cioff(type: 'photoAvailable', callback?: AsyncCallback\<Photo\>): void 2498e41f4b71Sopenharmony_ci 2499e41f4b71Sopenharmony_ci注销监听全质量图上报。 2500e41f4b71Sopenharmony_ci 2501e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2502e41f4b71Sopenharmony_ci 2503e41f4b71Sopenharmony_ci**参数:** 2504e41f4b71Sopenharmony_ci 2505e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2506e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------ | 2507e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'photoAvailable',photoOutput创建成功后可监听。 | 2508e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[Photo](#photo11)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 2509e41f4b71Sopenharmony_ci 2510e41f4b71Sopenharmony_ci**示例:** 2511e41f4b71Sopenharmony_ci 2512e41f4b71Sopenharmony_ci```ts 2513e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2514e41f4b71Sopenharmony_ciimport { image } from '@kit.ImageKit'; 2515e41f4b71Sopenharmony_ci 2516e41f4b71Sopenharmony_cifunction callback(err: BusinessError, photo: camera.Photo): void { 2517e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 2518e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 2519e41f4b71Sopenharmony_ci return; 2520e41f4b71Sopenharmony_ci } 2521e41f4b71Sopenharmony_ci let mainImage: image.Image = photo.main; 2522e41f4b71Sopenharmony_ci} 2523e41f4b71Sopenharmony_ci 2524e41f4b71Sopenharmony_cifunction unRegisterPhotoOutputPhotoAvailable(photoOutput: camera.PhotoOutput): void { 2525e41f4b71Sopenharmony_ci photoOutput.off('photoAvailable', callback); 2526e41f4b71Sopenharmony_ci} 2527e41f4b71Sopenharmony_ci``` 2528e41f4b71Sopenharmony_ci 2529e41f4b71Sopenharmony_ci### on('captureStartWithInfo')<sup>11+</sup> 2530e41f4b71Sopenharmony_ci 2531e41f4b71Sopenharmony_cion(type: 'captureStartWithInfo', callback: AsyncCallback\<CaptureStartInfo\>): void 2532e41f4b71Sopenharmony_ci 2533e41f4b71Sopenharmony_ci监听拍照开始,通过注册回调函数获取[CaptureStartInfo](#capturestartinfo11)。使用callback异步回调。 2534e41f4b71Sopenharmony_ci 2535e41f4b71Sopenharmony_ci> **说明:** 2536e41f4b71Sopenharmony_ci> 2537e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 2538e41f4b71Sopenharmony_ci 2539e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2540e41f4b71Sopenharmony_ci 2541e41f4b71Sopenharmony_ci**参数:** 2542e41f4b71Sopenharmony_ci 2543e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2544e41f4b71Sopenharmony_ci| -------- | ---------- | --- | ------------------------------------ | 2545e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureStartWithInfo',photoOutput创建成功后可监听。 | 2546e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[CaptureStartInfo](#capturestartinfo11)\> | 是 | 使用callback的方式获取Capture ID。| 2547e41f4b71Sopenharmony_ci 2548e41f4b71Sopenharmony_ci**示例:** 2549e41f4b71Sopenharmony_ci 2550e41f4b71Sopenharmony_ci```ts 2551e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2552e41f4b71Sopenharmony_ci 2553e41f4b71Sopenharmony_cifunction callback(err: BusinessError, captureStartInfo: camera.CaptureStartInfo): void { 2554e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 2555e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 2556e41f4b71Sopenharmony_ci return; 2557e41f4b71Sopenharmony_ci } 2558e41f4b71Sopenharmony_ci console.info(`photo capture started, captureStartInfo : ${captureStartInfo}`); 2559e41f4b71Sopenharmony_ci} 2560e41f4b71Sopenharmony_ci 2561e41f4b71Sopenharmony_cifunction registerCaptureStartWithInfo(photoOutput: camera.PhotoOutput): void { 2562e41f4b71Sopenharmony_ci photoOutput.on('captureStartWithInfo', callback); 2563e41f4b71Sopenharmony_ci} 2564e41f4b71Sopenharmony_ci``` 2565e41f4b71Sopenharmony_ci 2566e41f4b71Sopenharmony_ci### off('captureStartWithInfo')<sup>11+</sup> 2567e41f4b71Sopenharmony_ci 2568e41f4b71Sopenharmony_cioff(type: 'captureStartWithInfo', callback?: AsyncCallback\<CaptureStartInfo\>): void 2569e41f4b71Sopenharmony_ci 2570e41f4b71Sopenharmony_ci注销监听拍照。 2571e41f4b71Sopenharmony_ci 2572e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2573e41f4b71Sopenharmony_ci 2574e41f4b71Sopenharmony_ci**参数:** 2575e41f4b71Sopenharmony_ci 2576e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2577e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------ | 2578e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureStartWithInfo',photoOutput创建成功后可监听。 | 2579e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[CaptureStartInfo](#capturestartinfo11)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 2580e41f4b71Sopenharmony_ci 2581e41f4b71Sopenharmony_ci**示例:** 2582e41f4b71Sopenharmony_ci 2583e41f4b71Sopenharmony_ci```ts 2584e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2585e41f4b71Sopenharmony_ci 2586e41f4b71Sopenharmony_cifunction unRegisterCaptureStartWithInfo(photoOutput: camera.PhotoOutput): void { 2587e41f4b71Sopenharmony_ci photoOutput.off('captureStartWithInfo'); 2588e41f4b71Sopenharmony_ci} 2589e41f4b71Sopenharmony_ci``` 2590e41f4b71Sopenharmony_ci 2591e41f4b71Sopenharmony_ci### isMovingPhotoSupported<sup>12+</sup> 2592e41f4b71Sopenharmony_ci 2593e41f4b71Sopenharmony_ciisMovingPhotoSupported(): boolean 2594e41f4b71Sopenharmony_ci 2595e41f4b71Sopenharmony_ci查询是否支持动态照片拍摄。 2596e41f4b71Sopenharmony_ci 2597e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2598e41f4b71Sopenharmony_ci 2599e41f4b71Sopenharmony_ci**返回值:** 2600e41f4b71Sopenharmony_ci 2601e41f4b71Sopenharmony_ci| 类型 | 说明 | 2602e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 2603e41f4b71Sopenharmony_ci| boolean | 返回是否支持动态照片拍照,true表示支持,false表示不支持。 | 2604e41f4b71Sopenharmony_ci 2605e41f4b71Sopenharmony_ci**错误码:** 2606e41f4b71Sopenharmony_ci 2607e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2608e41f4b71Sopenharmony_ci 2609e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2610e41f4b71Sopenharmony_ci| -------------- | --------------- | 2611e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2612e41f4b71Sopenharmony_ci 2613e41f4b71Sopenharmony_ci**示例:** 2614e41f4b71Sopenharmony_ci 2615e41f4b71Sopenharmony_ci```ts 2616e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2617e41f4b71Sopenharmony_ci 2618e41f4b71Sopenharmony_cifunction isMovingPhotoSupported(photoOutput: camera.PhotoOutput): boolean { 2619e41f4b71Sopenharmony_ci let isSupported: boolean = false; 2620e41f4b71Sopenharmony_ci try { 2621e41f4b71Sopenharmony_ci isSupported = photoOutput.isMovingPhotoSupported(); 2622e41f4b71Sopenharmony_ci } catch (error) { 2623e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 2624e41f4b71Sopenharmony_ci let err = error as BusinessError; 2625e41f4b71Sopenharmony_ci console.error(`The isMovingPhotoSupported call failed. error code: ${err.code}`); 2626e41f4b71Sopenharmony_ci } 2627e41f4b71Sopenharmony_ci return isSupported; 2628e41f4b71Sopenharmony_ci} 2629e41f4b71Sopenharmony_ci``` 2630e41f4b71Sopenharmony_ci 2631e41f4b71Sopenharmony_ci### enableMovingPhoto<sup>12+</sup> 2632e41f4b71Sopenharmony_ci 2633e41f4b71Sopenharmony_cienableMovingPhoto(enabled: boolean): void 2634e41f4b71Sopenharmony_ci 2635e41f4b71Sopenharmony_ci使能动态照片拍照。 2636e41f4b71Sopenharmony_ci 2637e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.MICROPHONE 2638e41f4b71Sopenharmony_ci 2639e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2640e41f4b71Sopenharmony_ci 2641e41f4b71Sopenharmony_ci**参数:** 2642e41f4b71Sopenharmony_ci 2643e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2644e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------ | 2645e41f4b71Sopenharmony_ci| enabled | boolean | 是 | true为开启动态照片,false为关闭动态照片。 | 2646e41f4b71Sopenharmony_ci 2647e41f4b71Sopenharmony_ci**错误码:** 2648e41f4b71Sopenharmony_ci 2649e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2650e41f4b71Sopenharmony_ci 2651e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2652e41f4b71Sopenharmony_ci| -------- |------------------------------------------------| 2653e41f4b71Sopenharmony_ci| 201 | permission denied. | 2654e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 2655e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2656e41f4b71Sopenharmony_ci 2657e41f4b71Sopenharmony_ci**示例:** 2658e41f4b71Sopenharmony_ci 2659e41f4b71Sopenharmony_ci```ts 2660e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2661e41f4b71Sopenharmony_ci 2662e41f4b71Sopenharmony_cifunction enableMovingPhoto(photoOutput: camera.PhotoOutput): void { 2663e41f4b71Sopenharmony_ci try { 2664e41f4b71Sopenharmony_ci photoOutput.enableMovingPhoto(true); 2665e41f4b71Sopenharmony_ci } catch (error) { 2666e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 2667e41f4b71Sopenharmony_ci let err = error as BusinessError; 2668e41f4b71Sopenharmony_ci console.error(`The enableMovingPhoto call failed. error code: ${err.code}`); 2669e41f4b71Sopenharmony_ci } 2670e41f4b71Sopenharmony_ci} 2671e41f4b71Sopenharmony_ci``` 2672e41f4b71Sopenharmony_ci 2673e41f4b71Sopenharmony_ci### on('photoAssetAvailable')<sup>12+</sup> 2674e41f4b71Sopenharmony_ci 2675e41f4b71Sopenharmony_cion(type: 'photoAssetAvailable', callback: AsyncCallback\<photoAccessHelper.PhotoAsset\>): void 2676e41f4b71Sopenharmony_ci 2677e41f4b71Sopenharmony_ci注册监听photoAsset上报。使用callback异步回调。 2678e41f4b71Sopenharmony_ci 2679e41f4b71Sopenharmony_ci> **说明:** 2680e41f4b71Sopenharmony_ci> 2681e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 2682e41f4b71Sopenharmony_ci 2683e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2684e41f4b71Sopenharmony_ci 2685e41f4b71Sopenharmony_ci**参数:** 2686e41f4b71Sopenharmony_ci 2687e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2688e41f4b71Sopenharmony_ci| -------- | ---------- | --- | ------------------------------------ | 2689e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'photoAssetAvailable',photoOutput创建成功后可监听。 | 2690e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[photoAccessHelper.PhotoAsset](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoasset)\> | 是 | 回调函数,用于监听photoAsset上报。 | 2691e41f4b71Sopenharmony_ci 2692e41f4b71Sopenharmony_ci**示例:** 2693e41f4b71Sopenharmony_ci 2694e41f4b71Sopenharmony_ci```ts 2695e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2696e41f4b71Sopenharmony_ciimport { photoAccessHelper } from '@kit.MediaLibraryKit'; 2697e41f4b71Sopenharmony_ci 2698e41f4b71Sopenharmony_cifunction photoAssetAvailableCallback(err: BusinessError, photoAsset: photoAccessHelper.PhotoAsset): void { 2699e41f4b71Sopenharmony_ci if (err) { 2700e41f4b71Sopenharmony_ci console.info(`photoAssetAvailable error: ${JSON.stringify(err)}.`); 2701e41f4b71Sopenharmony_ci return; 2702e41f4b71Sopenharmony_ci } 2703e41f4b71Sopenharmony_ci console.info('photoOutPutCallBack photoAssetAvailable'); 2704e41f4b71Sopenharmony_ci // 开发者可通过photoAsset获取图片相关信息 2705e41f4b71Sopenharmony_ci} 2706e41f4b71Sopenharmony_ci 2707e41f4b71Sopenharmony_cifunction onPhotoOutputPhotoAssetAvailable(photoOutput: camera.PhotoOutput): void { 2708e41f4b71Sopenharmony_ci photoOutput.on('photoAssetAvailable', photoAssetAvailableCallback); 2709e41f4b71Sopenharmony_ci} 2710e41f4b71Sopenharmony_ci``` 2711e41f4b71Sopenharmony_ci 2712e41f4b71Sopenharmony_ci### off('photoAssetAvailable')<sup>12+</sup> 2713e41f4b71Sopenharmony_ci 2714e41f4b71Sopenharmony_cioff(type: 'photoAssetAvailable', callback?: AsyncCallback\<photoAccessHelper.PhotoAsset\>): void 2715e41f4b71Sopenharmony_ci 2716e41f4b71Sopenharmony_ci解注册photoAsset上报。 2717e41f4b71Sopenharmony_ci 2718e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2719e41f4b71Sopenharmony_ci 2720e41f4b71Sopenharmony_ci**参数:** 2721e41f4b71Sopenharmony_ci 2722e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2723e41f4b71Sopenharmony_ci| -------- | ---------- |-----|----------------------------------------------------------------------------| 2724e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'photoAssetAvailable',photoOutput创建成功后可监听。 | 2725e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[photoAccessHelper.PhotoAsset](../apis-media-library-kit/js-apis-photoAccessHelper.md#photoasset)\> | 否 | 需要解监听的回调方法。如果callback不为空且与此对应的监听方法一致,不为匿名方法,则解注册该方法;如果callback为空,则解监听所有回调。 | 2726e41f4b71Sopenharmony_ci 2727e41f4b71Sopenharmony_ci**示例:** 2728e41f4b71Sopenharmony_ci 2729e41f4b71Sopenharmony_ci```ts 2730e41f4b71Sopenharmony_cifunction offPhotoOutputPhotoAssetAvailable(photoOutput: camera.PhotoOutput): void { 2731e41f4b71Sopenharmony_ci photoOutput.off('photoAssetAvailable'); 2732e41f4b71Sopenharmony_ci} 2733e41f4b71Sopenharmony_ci``` 2734e41f4b71Sopenharmony_ci 2735e41f4b71Sopenharmony_ci### isMirrorSupported 2736e41f4b71Sopenharmony_ci 2737e41f4b71Sopenharmony_ciisMirrorSupported(): boolean 2738e41f4b71Sopenharmony_ci 2739e41f4b71Sopenharmony_ci查询是否支持镜像拍照。 2740e41f4b71Sopenharmony_ci 2741e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2742e41f4b71Sopenharmony_ci 2743e41f4b71Sopenharmony_ci**返回值:** 2744e41f4b71Sopenharmony_ci 2745e41f4b71Sopenharmony_ci| 类型 | 说明 | 2746e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 2747e41f4b71Sopenharmony_ci| boolean | 返回是否支持镜像拍照,true表示支持,false表示不支持。 | 2748e41f4b71Sopenharmony_ci 2749e41f4b71Sopenharmony_ci**示例:** 2750e41f4b71Sopenharmony_ci 2751e41f4b71Sopenharmony_ci```ts 2752e41f4b71Sopenharmony_cifunction isMirrorSupported(photoOutput: camera.PhotoOutput): boolean { 2753e41f4b71Sopenharmony_ci let isSupported: boolean = photoOutput.isMirrorSupported(); 2754e41f4b71Sopenharmony_ci return isSupported; 2755e41f4b71Sopenharmony_ci} 2756e41f4b71Sopenharmony_ci``` 2757e41f4b71Sopenharmony_ci 2758e41f4b71Sopenharmony_ci### enableMirror<sup>13+</sup> 2759e41f4b71Sopenharmony_ci 2760e41f4b71Sopenharmony_cienableMirror(enabled: boolean): void 2761e41f4b71Sopenharmony_ci 2762e41f4b71Sopenharmony_ci是否启用镜像拍照。 2763e41f4b71Sopenharmony_ci 2764e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2765e41f4b71Sopenharmony_ci 2766e41f4b71Sopenharmony_ci**参数:** 2767e41f4b71Sopenharmony_ci 2768e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2769e41f4b71Sopenharmony_ci|----------| ---------------------- | ---- |---------------------------| 2770e41f4b71Sopenharmony_ci| enabled | boolean | 是 | true为开启镜像拍照,false为关闭镜像拍照。 | 2771e41f4b71Sopenharmony_ci 2772e41f4b71Sopenharmony_ci**错误码:** 2773e41f4b71Sopenharmony_ci 2774e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2775e41f4b71Sopenharmony_ci 2776e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2777e41f4b71Sopenharmony_ci| -------- |------------------------------------------------| 2778e41f4b71Sopenharmony_ci| 202 | Not System Application. | 2779e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 2780e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 2781e41f4b71Sopenharmony_ci 2782e41f4b71Sopenharmony_ci**示例:** 2783e41f4b71Sopenharmony_ci 2784e41f4b71Sopenharmony_ci```ts 2785e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2786e41f4b71Sopenharmony_ci 2787e41f4b71Sopenharmony_cifunction enableMirror(photoOutput: camera.PhotoOutput): void { 2788e41f4b71Sopenharmony_ci try { 2789e41f4b71Sopenharmony_ci photoOutput.enableMirror(true); 2790e41f4b71Sopenharmony_ci } catch (error) { 2791e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 2792e41f4b71Sopenharmony_ci let err = error as BusinessError; 2793e41f4b71Sopenharmony_ci console.error(`The enableMirror call failed. error code: ${err.code}`); 2794e41f4b71Sopenharmony_ci } 2795e41f4b71Sopenharmony_ci} 2796e41f4b71Sopenharmony_ci``` 2797e41f4b71Sopenharmony_ci 2798e41f4b71Sopenharmony_ci### getSupportedMovingPhotoVideoCodecTypes<sup>13+</sup> 2799e41f4b71Sopenharmony_ci 2800e41f4b71Sopenharmony_cigetSupportedMovingPhotoVideoCodecTypes(): Array\<VideoCodecType\> 2801e41f4b71Sopenharmony_ci 2802e41f4b71Sopenharmony_ci查询支持的动态照片短视频编码类型。 2803e41f4b71Sopenharmony_ci 2804e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2805e41f4b71Sopenharmony_ci 2806e41f4b71Sopenharmony_ci**返回值:** 2807e41f4b71Sopenharmony_ci 2808e41f4b71Sopenharmony_ci| 类型 | 说明 | 2809e41f4b71Sopenharmony_ci| -------------- |-------------------| 2810e41f4b71Sopenharmony_ci| Array\<[VideoCodecType](#videocodectype13)\> | 支持的动态照片短视频编码类型列表。 | 2811e41f4b71Sopenharmony_ci 2812e41f4b71Sopenharmony_ci**错误码:** 2813e41f4b71Sopenharmony_ci 2814e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2815e41f4b71Sopenharmony_ci 2816e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2817e41f4b71Sopenharmony_ci| --------------- | --------------- | 2818e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2819e41f4b71Sopenharmony_ci 2820e41f4b71Sopenharmony_ci**示例:** 2821e41f4b71Sopenharmony_ci 2822e41f4b71Sopenharmony_ci```ts 2823e41f4b71Sopenharmony_cifunction getSupportedMovingPhotoVideoCodecType(photoOutput: camera.PhotoOutput): Array<camera.VideoCodecType> { 2824e41f4b71Sopenharmony_ci let supportedVideoCodecTypesArray: Array<camera.VideoCodecType> = photoOutput.getSupportedMovingPhotoVideoCodecTypes(); 2825e41f4b71Sopenharmony_ci return supportedVideoCodecTypesArray; 2826e41f4b71Sopenharmony_ci} 2827e41f4b71Sopenharmony_ci``` 2828e41f4b71Sopenharmony_ci 2829e41f4b71Sopenharmony_ci### setMovingPhotoVideoCodecType<sup>13+</sup> 2830e41f4b71Sopenharmony_ci 2831e41f4b71Sopenharmony_cisetMovingPhotoVideoCodecType(codecType: VideoCodecType): void 2832e41f4b71Sopenharmony_ci 2833e41f4b71Sopenharmony_ci设置动态照片短视频编码类型。 2834e41f4b71Sopenharmony_ci 2835e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2836e41f4b71Sopenharmony_ci 2837e41f4b71Sopenharmony_ci**参数:** 2838e41f4b71Sopenharmony_ci 2839e41f4b71Sopenharmony_ci| 参数名 | 类型 | 说明 | 2840e41f4b71Sopenharmony_ci| ------------- |-------------------------------------| ------------ | 2841e41f4b71Sopenharmony_ci| codecType | [VideoCodecType](#videocodectype13) | 获取动态照片短视频编码类型 | 2842e41f4b71Sopenharmony_ci 2843e41f4b71Sopenharmony_ci**错误码:** 2844e41f4b71Sopenharmony_ci 2845e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 2846e41f4b71Sopenharmony_ci 2847e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 2848e41f4b71Sopenharmony_ci| --------------- | --------------- | 2849e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 2850e41f4b71Sopenharmony_ci 2851e41f4b71Sopenharmony_ci**示例:** 2852e41f4b71Sopenharmony_ci 2853e41f4b71Sopenharmony_ci```ts 2854e41f4b71Sopenharmony_cifunction setMovingPhotoVideoCodecTypes(photoOutput: camera.PhotoOutput, videoCodecType: camera.VideoCodecType): void { 2855e41f4b71Sopenharmony_ci photoOutput.setMovingPhotoVideoCodecType(videoCodecType); 2856e41f4b71Sopenharmony_ci} 2857e41f4b71Sopenharmony_ci``` 2858e41f4b71Sopenharmony_ci 2859e41f4b71Sopenharmony_ci### on('captureStart')<sup>(deprecated)</sup> 2860e41f4b71Sopenharmony_ci 2861e41f4b71Sopenharmony_cion(type: 'captureStart', callback: AsyncCallback\<number\>): void 2862e41f4b71Sopenharmony_ci 2863e41f4b71Sopenharmony_ci监听拍照开始,通过注册回调函数获取Capture ID。使用callback异步回调。 2864e41f4b71Sopenharmony_ci 2865e41f4b71Sopenharmony_ci> **说明:** 2866e41f4b71Sopenharmony_ci> 从 API version 10开始支持,从API version 11开始废弃。建议使用[on('captureStartWithInfo')](#oncapturestartwithinfo11)替代。 2867e41f4b71Sopenharmony_ci> 2868e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 2869e41f4b71Sopenharmony_ci 2870e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2871e41f4b71Sopenharmony_ci 2872e41f4b71Sopenharmony_ci**参数:** 2873e41f4b71Sopenharmony_ci 2874e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2875e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------ | 2876e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureStart',photoOutput创建成功后可监听。每次拍照,底层开始曝光时触发该事件并返回。 | 2877e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number\> | 是 | 使用callback的方式获取Capture ID。 | 2878e41f4b71Sopenharmony_ci 2879e41f4b71Sopenharmony_ci**示例:** 2880e41f4b71Sopenharmony_ci 2881e41f4b71Sopenharmony_ci```ts 2882e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2883e41f4b71Sopenharmony_ci 2884e41f4b71Sopenharmony_cifunction callback(err: BusinessError, captureId: number): void { 2885e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 2886e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 2887e41f4b71Sopenharmony_ci return; 2888e41f4b71Sopenharmony_ci } 2889e41f4b71Sopenharmony_ci console.info(`photo capture started, captureId : ${captureId}`); 2890e41f4b71Sopenharmony_ci} 2891e41f4b71Sopenharmony_ci 2892e41f4b71Sopenharmony_cifunction registerPhotoOutputCaptureStart(photoOutput: camera.PhotoOutput): void { 2893e41f4b71Sopenharmony_ci photoOutput.on('captureStart', callback); 2894e41f4b71Sopenharmony_ci} 2895e41f4b71Sopenharmony_ci``` 2896e41f4b71Sopenharmony_ci 2897e41f4b71Sopenharmony_ci### off('captureStart')<sup>(deprecated)</sup> 2898e41f4b71Sopenharmony_ci 2899e41f4b71Sopenharmony_cioff(type: 'captureStart', callback?: AsyncCallback\<number\>): void 2900e41f4b71Sopenharmony_ci 2901e41f4b71Sopenharmony_ci注销监听拍照开始。 2902e41f4b71Sopenharmony_ci 2903e41f4b71Sopenharmony_ci> **说明:** 2904e41f4b71Sopenharmony_ci> 从 API version 10开始支持,从API version 11开始废弃。建议使用[off('captureStartWithInfo')](#offcapturestartwithinfo11)替代。 2905e41f4b71Sopenharmony_ci> 2906e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 2907e41f4b71Sopenharmony_ci 2908e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2909e41f4b71Sopenharmony_ci 2910e41f4b71Sopenharmony_ci**参数:** 2911e41f4b71Sopenharmony_ci 2912e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2913e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------ | 2914e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureStart',photoOutput创建成功后可监听。 | 2915e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 2916e41f4b71Sopenharmony_ci 2917e41f4b71Sopenharmony_ci**示例:** 2918e41f4b71Sopenharmony_ci 2919e41f4b71Sopenharmony_ci```ts 2920e41f4b71Sopenharmony_cifunction unregisterPhotoOutputCaptureStart(photoOutput: camera.PhotoOutput): void { 2921e41f4b71Sopenharmony_ci photoOutput.off('captureStart'); 2922e41f4b71Sopenharmony_ci} 2923e41f4b71Sopenharmony_ci``` 2924e41f4b71Sopenharmony_ci 2925e41f4b71Sopenharmony_ci### on('frameShutter') 2926e41f4b71Sopenharmony_ci 2927e41f4b71Sopenharmony_cion(type: 'frameShutter', callback: AsyncCallback\<FrameShutterInfo\>): void 2928e41f4b71Sopenharmony_ci 2929e41f4b71Sopenharmony_ci监听拍照帧输出捕获,通过注册回调函数获取结果。使用callback异步回调。 2930e41f4b71Sopenharmony_ci 2931e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2932e41f4b71Sopenharmony_ci 2933e41f4b71Sopenharmony_ci**参数:** 2934e41f4b71Sopenharmony_ci 2935e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2936e41f4b71Sopenharmony_ci| -------- | ---------- | --- | ------------------------------------ | 2937e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 | 2938e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 是 | 回调函数,用于获取相关信息。该回调返回意味着可以再次下发拍照请求。 | 2939e41f4b71Sopenharmony_ci 2940e41f4b71Sopenharmony_ci**示例:** 2941e41f4b71Sopenharmony_ci 2942e41f4b71Sopenharmony_ci```ts 2943e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2944e41f4b71Sopenharmony_ci 2945e41f4b71Sopenharmony_cifunction callback(err: BusinessError, frameShutterInfo: camera.FrameShutterInfo): void { 2946e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 2947e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 2948e41f4b71Sopenharmony_ci return; 2949e41f4b71Sopenharmony_ci } 2950e41f4b71Sopenharmony_ci console.info(`CaptureId for frame : ${frameShutterInfo.captureId}`); 2951e41f4b71Sopenharmony_ci console.info(`Timestamp for frame : ${frameShutterInfo.timestamp}`); 2952e41f4b71Sopenharmony_ci} 2953e41f4b71Sopenharmony_ci 2954e41f4b71Sopenharmony_cifunction registerPhotoOutputFrameShutter(photoOutput: camera.PhotoOutput): void { 2955e41f4b71Sopenharmony_ci photoOutput.on('frameShutter', callback); 2956e41f4b71Sopenharmony_ci} 2957e41f4b71Sopenharmony_ci``` 2958e41f4b71Sopenharmony_ci 2959e41f4b71Sopenharmony_ci### off('frameShutter') 2960e41f4b71Sopenharmony_ci 2961e41f4b71Sopenharmony_cioff(type: 'frameShutter', callback?: AsyncCallback\<FrameShutterInfo\>): void 2962e41f4b71Sopenharmony_ci 2963e41f4b71Sopenharmony_ci注销监听拍照帧输出捕获。 2964e41f4b71Sopenharmony_ci 2965e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2966e41f4b71Sopenharmony_ci 2967e41f4b71Sopenharmony_ci**参数:** 2968e41f4b71Sopenharmony_ci 2969e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2970e41f4b71Sopenharmony_ci| -------- | ---------- | --- | ------------------------------------ | 2971e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameShutter',photoOutput创建成功后可监听。 | 2972e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FrameShutterInfo](#frameshutterinfo)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 2973e41f4b71Sopenharmony_ci 2974e41f4b71Sopenharmony_ci**示例:** 2975e41f4b71Sopenharmony_ci 2976e41f4b71Sopenharmony_ci```ts 2977e41f4b71Sopenharmony_cifunction unregisterPhotoOutputFrameShutter(photoOutput: camera.PhotoOutput): void { 2978e41f4b71Sopenharmony_ci photoOutput.off('frameShutter'); 2979e41f4b71Sopenharmony_ci} 2980e41f4b71Sopenharmony_ci``` 2981e41f4b71Sopenharmony_ci 2982e41f4b71Sopenharmony_ci### on('captureEnd') 2983e41f4b71Sopenharmony_ci 2984e41f4b71Sopenharmony_cion(type: 'captureEnd', callback: AsyncCallback\<CaptureEndInfo\>): void 2985e41f4b71Sopenharmony_ci 2986e41f4b71Sopenharmony_ci监听拍照结束,通过注册回调函数获取结果。使用callback异步回调。 2987e41f4b71Sopenharmony_ci 2988e41f4b71Sopenharmony_ci> **说明:** 2989e41f4b71Sopenharmony_ci> 2990e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 2991e41f4b71Sopenharmony_ci 2992e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 2993e41f4b71Sopenharmony_ci 2994e41f4b71Sopenharmony_ci**参数:** 2995e41f4b71Sopenharmony_ci 2996e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2997e41f4b71Sopenharmony_ci| -------- | --------------- | ---- | ---------------------------------------- | 2998e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 | 2999e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 是 | 回调函数,用于获取相关信息。 | 3000e41f4b71Sopenharmony_ci 3001e41f4b71Sopenharmony_ci**示例:** 3002e41f4b71Sopenharmony_ci 3003e41f4b71Sopenharmony_ci```ts 3004e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3005e41f4b71Sopenharmony_ci 3006e41f4b71Sopenharmony_cifunction callback(err: BusinessError, captureEndInfo: camera.CaptureEndInfo): void { 3007e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 3008e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 3009e41f4b71Sopenharmony_ci return; 3010e41f4b71Sopenharmony_ci } 3011e41f4b71Sopenharmony_ci console.info(`photo capture end, captureId : ${captureEndInfo.captureId}`); 3012e41f4b71Sopenharmony_ci console.info(`frameCount : ${captureEndInfo.frameCount}`); 3013e41f4b71Sopenharmony_ci} 3014e41f4b71Sopenharmony_ci 3015e41f4b71Sopenharmony_cifunction registerPhotoOutputCaptureEnd(photoOutput: camera.PhotoOutput): void { 3016e41f4b71Sopenharmony_ci photoOutput.on('captureEnd', callback); 3017e41f4b71Sopenharmony_ci} 3018e41f4b71Sopenharmony_ci``` 3019e41f4b71Sopenharmony_ci 3020e41f4b71Sopenharmony_ci### off('captureEnd') 3021e41f4b71Sopenharmony_ci 3022e41f4b71Sopenharmony_cioff(type: 'captureEnd', callback?: AsyncCallback\<CaptureEndInfo\>): void 3023e41f4b71Sopenharmony_ci 3024e41f4b71Sopenharmony_ci注销监听拍照结束。 3025e41f4b71Sopenharmony_ci 3026e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3027e41f4b71Sopenharmony_ci 3028e41f4b71Sopenharmony_ci**参数:** 3029e41f4b71Sopenharmony_ci 3030e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3031e41f4b71Sopenharmony_ci| -------- | --------------- | ---- | ---------------------------------------- | 3032e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureEnd',photoOutput创建成功后可监听。 | 3033e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[CaptureEndInfo](#captureendinfo)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3034e41f4b71Sopenharmony_ci 3035e41f4b71Sopenharmony_ci**示例:** 3036e41f4b71Sopenharmony_ci 3037e41f4b71Sopenharmony_ci```ts 3038e41f4b71Sopenharmony_cifunction unregisterPhotoOutputCaptureEnd(photoOutput: camera.PhotoOutput): void { 3039e41f4b71Sopenharmony_ci photoOutput.off('captureEnd'); 3040e41f4b71Sopenharmony_ci} 3041e41f4b71Sopenharmony_ci``` 3042e41f4b71Sopenharmony_ci 3043e41f4b71Sopenharmony_ci### on('frameShutterEnd')<sup>12+</sup> 3044e41f4b71Sopenharmony_ci 3045e41f4b71Sopenharmony_cion(type: 'frameShutterEnd', callback: AsyncCallback\<FrameShutterEndInfo\>): void 3046e41f4b71Sopenharmony_ci 3047e41f4b71Sopenharmony_ci监听拍照曝光结束捕获,通过注册回调函数获取结果。使用callback异步回调。 3048e41f4b71Sopenharmony_ci 3049e41f4b71Sopenharmony_ci> **说明:** 3050e41f4b71Sopenharmony_ci> 3051e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 3052e41f4b71Sopenharmony_ci 3053e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3054e41f4b71Sopenharmony_ci 3055e41f4b71Sopenharmony_ci**参数:** 3056e41f4b71Sopenharmony_ci 3057e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3058e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 3059e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameShutterEnd',photoOutput创建成功后可监听。 | 3060e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FrameShutterEndInfo](#frameshutterendinfo12)\> | 是 | 回调函数,用于获取相关信息。该回调返回表示拍照曝光结束。 | 3061e41f4b71Sopenharmony_ci 3062e41f4b71Sopenharmony_ci**示例:** 3063e41f4b71Sopenharmony_ci 3064e41f4b71Sopenharmony_ci```ts 3065e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3066e41f4b71Sopenharmony_ci 3067e41f4b71Sopenharmony_cifunction callback(err: BusinessError, frameShutterEndInfo: camera.FrameShutterEndInfo): void { 3068e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 3069e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 3070e41f4b71Sopenharmony_ci return; 3071e41f4b71Sopenharmony_ci } 3072e41f4b71Sopenharmony_ci console.info(`CaptureId for frame : ${frameShutterEndInfo.captureId}`); 3073e41f4b71Sopenharmony_ci} 3074e41f4b71Sopenharmony_ci 3075e41f4b71Sopenharmony_cifunction registerPhotoOutputFrameShutterEnd(photoOutput: camera.PhotoOutput): void { 3076e41f4b71Sopenharmony_ci photoOutput.on('frameShutterEnd', callback); 3077e41f4b71Sopenharmony_ci} 3078e41f4b71Sopenharmony_ci``` 3079e41f4b71Sopenharmony_ci 3080e41f4b71Sopenharmony_ci### off('frameShutterEnd')<sup>12+</sup> 3081e41f4b71Sopenharmony_ci 3082e41f4b71Sopenharmony_cioff(type: 'frameShutterEnd', callback?: AsyncCallback\<FrameShutterEndInfo\>): void 3083e41f4b71Sopenharmony_ci 3084e41f4b71Sopenharmony_ci注销监听拍照帧输出捕获。 3085e41f4b71Sopenharmony_ci 3086e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3087e41f4b71Sopenharmony_ci 3088e41f4b71Sopenharmony_ci**参数:** 3089e41f4b71Sopenharmony_ci 3090e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3091e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | 3092e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameShutterEnd',photoOutput创建成功后可监听。 | 3093e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FrameShutterEndInfo](#frameshutterendinfo12)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3094e41f4b71Sopenharmony_ci 3095e41f4b71Sopenharmony_ci**示例:** 3096e41f4b71Sopenharmony_ci 3097e41f4b71Sopenharmony_ci```ts 3098e41f4b71Sopenharmony_cifunction unregisterPhotoOutputFrameShutterEnd(photoOutput: camera.PhotoOutput): void { 3099e41f4b71Sopenharmony_ci photoOutput.off('frameShutterEnd'); 3100e41f4b71Sopenharmony_ci} 3101e41f4b71Sopenharmony_ci``` 3102e41f4b71Sopenharmony_ci 3103e41f4b71Sopenharmony_ci### on('captureReady')<sup>12+</sup> 3104e41f4b71Sopenharmony_ci 3105e41f4b71Sopenharmony_cion(type: 'captureReady', callback: AsyncCallback\<void\>): void 3106e41f4b71Sopenharmony_ci 3107e41f4b71Sopenharmony_ci监听可拍下一张,通过注册回调函数获取结果。使用callback异步回调。 3108e41f4b71Sopenharmony_ci 3109e41f4b71Sopenharmony_ci> **说明:** 3110e41f4b71Sopenharmony_ci> 3111e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 3112e41f4b71Sopenharmony_ci 3113e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3114e41f4b71Sopenharmony_ci 3115e41f4b71Sopenharmony_ci**参数:** 3116e41f4b71Sopenharmony_ci 3117e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3118e41f4b71Sopenharmony_ci| -------- | --------------------- | ---- | ------------------------------------------------------------ | 3119e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureReady',photoOutput创建成功后可监听。当下一张可拍时可触发该事件发生并返回相应信息。 | 3120e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取相关信息。 | 3121e41f4b71Sopenharmony_ci 3122e41f4b71Sopenharmony_ci**示例:** 3123e41f4b71Sopenharmony_ci 3124e41f4b71Sopenharmony_ci```ts 3125e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3126e41f4b71Sopenharmony_ci 3127e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 3128e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 3129e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 3130e41f4b71Sopenharmony_ci return; 3131e41f4b71Sopenharmony_ci } 3132e41f4b71Sopenharmony_ci console.info(`photo capture ready`); 3133e41f4b71Sopenharmony_ci} 3134e41f4b71Sopenharmony_ci 3135e41f4b71Sopenharmony_cifunction registerPhotoOutputCaptureReady(photoOutput: camera.PhotoOutput): void { 3136e41f4b71Sopenharmony_ci photoOutput.on('captureReady', callback); 3137e41f4b71Sopenharmony_ci} 3138e41f4b71Sopenharmony_ci``` 3139e41f4b71Sopenharmony_ci 3140e41f4b71Sopenharmony_ci### off('captureReady')<sup>12+</sup> 3141e41f4b71Sopenharmony_ci 3142e41f4b71Sopenharmony_cioff(type: 'captureReady', callback?: AsyncCallback\<void\>): void 3143e41f4b71Sopenharmony_ci 3144e41f4b71Sopenharmony_ci注销监听可拍下一张。 3145e41f4b71Sopenharmony_ci 3146e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3147e41f4b71Sopenharmony_ci 3148e41f4b71Sopenharmony_ci**参数:** 3149e41f4b71Sopenharmony_ci 3150e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3151e41f4b71Sopenharmony_ci| -------- | ---------------------------------------------------- | ---- | ------------------------------------------------------------ | 3152e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'captureReady',photoOutput创建成功后可监听。 | 3153e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[CaptureReadyInfo](#captureendinfo)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3154e41f4b71Sopenharmony_ci 3155e41f4b71Sopenharmony_ci**示例:** 3156e41f4b71Sopenharmony_ci 3157e41f4b71Sopenharmony_ci```ts 3158e41f4b71Sopenharmony_cifunction unregisterPhotoOutputCaptureReady(photoOutput: camera.PhotoOutput): void { 3159e41f4b71Sopenharmony_ci photoOutput.off('captureReady'); 3160e41f4b71Sopenharmony_ci} 3161e41f4b71Sopenharmony_ci``` 3162e41f4b71Sopenharmony_ci 3163e41f4b71Sopenharmony_ci### on('estimatedCaptureDuration')<sup>12+</sup> 3164e41f4b71Sopenharmony_ci 3165e41f4b71Sopenharmony_cion(type: 'estimatedCaptureDuration', callback: AsyncCallback\<number\>): void 3166e41f4b71Sopenharmony_ci 3167e41f4b71Sopenharmony_ci监听预估的拍照时间,通过注册回调函数获取结果。使用callback异步回调。 3168e41f4b71Sopenharmony_ci 3169e41f4b71Sopenharmony_ci> **说明:** 3170e41f4b71Sopenharmony_ci> 3171e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 3172e41f4b71Sopenharmony_ci 3173e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3174e41f4b71Sopenharmony_ci 3175e41f4b71Sopenharmony_ci**参数:** 3176e41f4b71Sopenharmony_ci 3177e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3178e41f4b71Sopenharmony_ci| -------- | ---------------------- | ---- | ------------------------------------------------------------ | 3179e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'estimatedCaptureDuration',photoOutput创建成功后可监听。拍照完全结束可触发该事件发生并返回相应信息。 | 3180e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number> | 是 | 回调函数,用于获取预估的单次拍照底层出sensor采集帧时间,如果上报-1,代表没有预估时间。 | 3181e41f4b71Sopenharmony_ci 3182e41f4b71Sopenharmony_ci**示例:** 3183e41f4b71Sopenharmony_ci 3184e41f4b71Sopenharmony_ci```ts 3185e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3186e41f4b71Sopenharmony_ci 3187e41f4b71Sopenharmony_cifunction callback(err: BusinessError, duration: number): void { 3188e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 3189e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 3190e41f4b71Sopenharmony_ci return; 3191e41f4b71Sopenharmony_ci } 3192e41f4b71Sopenharmony_ci console.info(`photo estimated capture duration : ${duration}`); 3193e41f4b71Sopenharmony_ci} 3194e41f4b71Sopenharmony_ci 3195e41f4b71Sopenharmony_cifunction registerPhotoOutputEstimatedCaptureDuration(photoOutput: camera.PhotoOutput): void { 3196e41f4b71Sopenharmony_ci photoOutput.on('estimatedCaptureDuration', callback); 3197e41f4b71Sopenharmony_ci} 3198e41f4b71Sopenharmony_ci``` 3199e41f4b71Sopenharmony_ci 3200e41f4b71Sopenharmony_ci### off('estimatedCaptureDuration')<sup>12+</sup> 3201e41f4b71Sopenharmony_ci 3202e41f4b71Sopenharmony_cioff(type: 'estimatedCaptureDuration', callback?: AsyncCallback\<number\>): void 3203e41f4b71Sopenharmony_ci 3204e41f4b71Sopenharmony_ci注销监听预估的拍照时间。 3205e41f4b71Sopenharmony_ci 3206e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3207e41f4b71Sopenharmony_ci 3208e41f4b71Sopenharmony_ci**参数:** 3209e41f4b71Sopenharmony_ci 3210e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3211e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------------------------------------------ | 3212e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'estimatedCaptureDuration',photoOutput创建成功后可监听。 | 3213e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3214e41f4b71Sopenharmony_ci 3215e41f4b71Sopenharmony_ci**示例:** 3216e41f4b71Sopenharmony_ci 3217e41f4b71Sopenharmony_ci```ts 3218e41f4b71Sopenharmony_cifunction unregisterPhotoOutputEstimatedCaptureDuration(photoOutput: camera.PhotoOutput): void { 3219e41f4b71Sopenharmony_ci photoOutput.off('estimatedCaptureDuration'); 3220e41f4b71Sopenharmony_ci} 3221e41f4b71Sopenharmony_ci``` 3222e41f4b71Sopenharmony_ci 3223e41f4b71Sopenharmony_ci### on('error') 3224e41f4b71Sopenharmony_ci 3225e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 3226e41f4b71Sopenharmony_ci 3227e41f4b71Sopenharmony_ci监听拍照输出发生错误,通过注册回调函数获取结果。使用callback异步回调。 3228e41f4b71Sopenharmony_ci 3229e41f4b71Sopenharmony_ci> **说明:** 3230e41f4b71Sopenharmony_ci> 3231e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 3232e41f4b71Sopenharmony_ci 3233e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3234e41f4b71Sopenharmony_ci 3235e41f4b71Sopenharmony_ci**参数:** 3236e41f4b71Sopenharmony_ci 3237e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3238e41f4b71Sopenharmony_ci| -------- | ------------- | ---- | ----------------------------------- | 3239e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',photoOutput创建成功后可监听。拍照接口调用时出现错误触发该事件并返回错误信息。 | 3240e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 3241e41f4b71Sopenharmony_ci 3242e41f4b71Sopenharmony_ci**示例:** 3243e41f4b71Sopenharmony_ci 3244e41f4b71Sopenharmony_ci```ts 3245e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3246e41f4b71Sopenharmony_ci 3247e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 3248e41f4b71Sopenharmony_ci console.error(`Photo output error code: ${err.code}`); 3249e41f4b71Sopenharmony_ci} 3250e41f4b71Sopenharmony_ci 3251e41f4b71Sopenharmony_cifunction registerPhotoOutputError(photoOutput: camera.PhotoOutput): void { 3252e41f4b71Sopenharmony_ci photoOutput.on('error', callback); 3253e41f4b71Sopenharmony_ci} 3254e41f4b71Sopenharmony_ci``` 3255e41f4b71Sopenharmony_ci 3256e41f4b71Sopenharmony_ci### off('error') 3257e41f4b71Sopenharmony_ci 3258e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 3259e41f4b71Sopenharmony_ci 3260e41f4b71Sopenharmony_ci注销监听拍照输出发生错误。 3261e41f4b71Sopenharmony_ci 3262e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3263e41f4b71Sopenharmony_ci 3264e41f4b71Sopenharmony_ci**参数:** 3265e41f4b71Sopenharmony_ci 3266e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3267e41f4b71Sopenharmony_ci| -------- | ------------- | ---- | ----------------------------------- | 3268e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',photoOutput创建成功后可监听。 | 3269e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3270e41f4b71Sopenharmony_ci 3271e41f4b71Sopenharmony_ci**示例:** 3272e41f4b71Sopenharmony_ci 3273e41f4b71Sopenharmony_ci```ts 3274e41f4b71Sopenharmony_cifunction unregisterPhotoOutputError(photoOutput: camera.PhotoOutput): void { 3275e41f4b71Sopenharmony_ci photoOutput.off('error'); 3276e41f4b71Sopenharmony_ci} 3277e41f4b71Sopenharmony_ci``` 3278e41f4b71Sopenharmony_ci 3279e41f4b71Sopenharmony_ci### getActiveProfile<sup>12+</sup> 3280e41f4b71Sopenharmony_ci 3281e41f4b71Sopenharmony_cigetActiveProfile(): Profile 3282e41f4b71Sopenharmony_ci 3283e41f4b71Sopenharmony_ci获取当前生效的配置信息。 3284e41f4b71Sopenharmony_ci 3285e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3286e41f4b71Sopenharmony_ci 3287e41f4b71Sopenharmony_ci**返回值:** 3288e41f4b71Sopenharmony_ci 3289e41f4b71Sopenharmony_ci| 类型 | 说明 | 3290e41f4b71Sopenharmony_ci| ------------- |-----------| 3291e41f4b71Sopenharmony_ci| [Profile](#profile) | 当前生效的配置信息 | 3292e41f4b71Sopenharmony_ci 3293e41f4b71Sopenharmony_ci**错误码:** 3294e41f4b71Sopenharmony_ci 3295e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3296e41f4b71Sopenharmony_ci 3297e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3298e41f4b71Sopenharmony_ci|---------|------------------------------| 3299e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3300e41f4b71Sopenharmony_ci 3301e41f4b71Sopenharmony_ci**示例:** 3302e41f4b71Sopenharmony_ci 3303e41f4b71Sopenharmony_ci```ts 3304e41f4b71Sopenharmony_cifunction testGetActiveProfile(photoOutput: camera.PhotoOutput): camera.Profile | undefined { 3305e41f4b71Sopenharmony_ci let activeProfile: camera.Profile | undefined = undefined; 3306e41f4b71Sopenharmony_ci try { 3307e41f4b71Sopenharmony_ci activeProfile = photoOutput.getActiveProfile(); 3308e41f4b71Sopenharmony_ci } catch (error) { 3309e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 3310e41f4b71Sopenharmony_ci let err = error as BusinessError; 3311e41f4b71Sopenharmony_ci console.error(`The photoOutput.getActiveProfile call failed. error code: ${err.code}`); 3312e41f4b71Sopenharmony_ci } 3313e41f4b71Sopenharmony_ci return activeProfile; 3314e41f4b71Sopenharmony_ci} 3315e41f4b71Sopenharmony_ci``` 3316e41f4b71Sopenharmony_ci### getPhotoRotation<sup>12+</sup> 3317e41f4b71Sopenharmony_ci 3318e41f4b71Sopenharmony_cigetPhotoRotation(deviceDegree: number): ImageRotation 3319e41f4b71Sopenharmony_ci 3320e41f4b71Sopenharmony_ci获取拍照旋转角度。 3321e41f4b71Sopenharmony_ci 3322e41f4b71Sopenharmony_ci- 设备自然方向:设备默认使用方向,手机为竖屏(充电口向下)。 3323e41f4b71Sopenharmony_ci- 相机镜头角度:值等于相机图像顺时针旋转到设备自然方向的角度,手机后置相机传感器是竖屏安装的,所以需要顺时针旋转90度到设备自然方向。 3324e41f4b71Sopenharmony_ci- 屏幕显示方向:需要屏幕显示的图片左上角为第一个像素点为坐标原点。锁屏时与自然方向一致。 3325e41f4b71Sopenharmony_ci 3326e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3327e41f4b71Sopenharmony_ci 3328e41f4b71Sopenharmony_ci**参数:** 3329e41f4b71Sopenharmony_ci 3330e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3331e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 3332e41f4b71Sopenharmony_ci| deviceDegree | number | 是 | 设备旋转角度 | 3333e41f4b71Sopenharmony_ci 3334e41f4b71Sopenharmony_ci**返回值:** 3335e41f4b71Sopenharmony_ci 3336e41f4b71Sopenharmony_ci| 类型 | 说明 | 3337e41f4b71Sopenharmony_ci| ------------- |-----------| 3338e41f4b71Sopenharmony_ci| [ImageRotation](#imagerotation) | 获取拍照旋转角度。 | 3339e41f4b71Sopenharmony_ci 3340e41f4b71Sopenharmony_ci**错误码:** 3341e41f4b71Sopenharmony_ci 3342e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3343e41f4b71Sopenharmony_ci 3344e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3345e41f4b71Sopenharmony_ci|---------|------------------------------| 3346e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 3347e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3348e41f4b71Sopenharmony_ci 3349e41f4b71Sopenharmony_ci**示例:** 3350e41f4b71Sopenharmony_ci 3351e41f4b71Sopenharmony_ci```ts 3352e41f4b71Sopenharmony_cifunction testGetPhotoRotation(photoOutput: camera.PreviewOutput, deviceDegree : number): camera.ImageRotation { 3353e41f4b71Sopenharmony_ci let photoRotation: camera.ImageRotation; 3354e41f4b71Sopenharmony_ci try { 3355e41f4b71Sopenharmony_ci photoRotation = photoOutput.getPhotoRotation(deviceDegree); 3356e41f4b71Sopenharmony_ci console.log(`Photo rotation is: ${photoRotation}`); 3357e41f4b71Sopenharmony_ci } catch (error) { 3358e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 3359e41f4b71Sopenharmony_ci let err = error as BusinessError; 3360e41f4b71Sopenharmony_ci console.error(`The photoOutput.getPhotoRotation call failed. error code: ${err.code}`); 3361e41f4b71Sopenharmony_ci } 3362e41f4b71Sopenharmony_ci return; 3363e41f4b71Sopenharmony_ci} 3364e41f4b71Sopenharmony_ci``` 3365e41f4b71Sopenharmony_ci 3366e41f4b71Sopenharmony_ci## FrameShutterInfo 3367e41f4b71Sopenharmony_ci 3368e41f4b71Sopenharmony_ci拍照帧输出信息。 3369e41f4b71Sopenharmony_ci 3370e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3371e41f4b71Sopenharmony_ci 3372e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 3373e41f4b71Sopenharmony_ci| --------- | ------ | ---- | ---- | ---------- | 3374e41f4b71Sopenharmony_ci| captureId | number | 否 | 否 | 拍照的ID。 | 3375e41f4b71Sopenharmony_ci| timestamp | number | 否 | 否 | 快门时间戳。 | 3376e41f4b71Sopenharmony_ci 3377e41f4b71Sopenharmony_ci## FrameShutterEndInfo<sup>12+</sup> 3378e41f4b71Sopenharmony_ci 3379e41f4b71Sopenharmony_ci拍照曝光结束信息。 3380e41f4b71Sopenharmony_ci 3381e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3382e41f4b71Sopenharmony_ci 3383e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 3384e41f4b71Sopenharmony_ci| --------- | ------ | ---- | ---- | ---------- | 3385e41f4b71Sopenharmony_ci| captureId | number | 否 | 否 | 拍照的ID。 | 3386e41f4b71Sopenharmony_ci 3387e41f4b71Sopenharmony_ci## CaptureStartInfo<sup>11+</sup> 3388e41f4b71Sopenharmony_ci 3389e41f4b71Sopenharmony_ci拍照开始信息。 3390e41f4b71Sopenharmony_ci 3391e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3392e41f4b71Sopenharmony_ci 3393e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 3394e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | ---- | --------- | 3395e41f4b71Sopenharmony_ci| captureId | number | 否 | 否 | 拍照的ID。 | 3396e41f4b71Sopenharmony_ci| time | number | 否 | 否 | 预估的单次拍照底层出sensor采集帧时间,如果上报-1,代表没有预估时间。 | 3397e41f4b71Sopenharmony_ci 3398e41f4b71Sopenharmony_ci## CaptureEndInfo 3399e41f4b71Sopenharmony_ci 3400e41f4b71Sopenharmony_ci拍照停止信息。 3401e41f4b71Sopenharmony_ci 3402e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3403e41f4b71Sopenharmony_ci 3404e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 3405e41f4b71Sopenharmony_ci| ---------- | ------ | ---- | ---- | ---------| 3406e41f4b71Sopenharmony_ci| captureId | number | 否 | 否 | 拍照的ID。 | 3407e41f4b71Sopenharmony_ci| frameCount | number | 否 | 否 | 帧数。 | 3408e41f4b71Sopenharmony_ci 3409e41f4b71Sopenharmony_ci## VideoOutput 3410e41f4b71Sopenharmony_ci 3411e41f4b71Sopenharmony_ci录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput)。 3412e41f4b71Sopenharmony_ci 3413e41f4b71Sopenharmony_ci### start 3414e41f4b71Sopenharmony_ci 3415e41f4b71Sopenharmony_cistart(callback: AsyncCallback\<void\>): void 3416e41f4b71Sopenharmony_ci 3417e41f4b71Sopenharmony_ci启动录制,通过注册回调函数获取结果。使用callback异步回调。 3418e41f4b71Sopenharmony_ci 3419e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3420e41f4b71Sopenharmony_ci 3421e41f4b71Sopenharmony_ci**参数:** 3422e41f4b71Sopenharmony_ci 3423e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3424e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 3425e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 3426e41f4b71Sopenharmony_ci 3427e41f4b71Sopenharmony_ci**错误码:** 3428e41f4b71Sopenharmony_ci 3429e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3430e41f4b71Sopenharmony_ci 3431e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3432e41f4b71Sopenharmony_ci| --------------- | --------------- | 3433e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 3434e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3435e41f4b71Sopenharmony_ci 3436e41f4b71Sopenharmony_ci**示例:** 3437e41f4b71Sopenharmony_ci 3438e41f4b71Sopenharmony_ci```ts 3439e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3440e41f4b71Sopenharmony_ci 3441e41f4b71Sopenharmony_cifunction startVideoOutput(videoOutput: camera.VideoOutput): void { 3442e41f4b71Sopenharmony_ci videoOutput.start((err: BusinessError) => { 3443e41f4b71Sopenharmony_ci if (err) { 3444e41f4b71Sopenharmony_ci console.error(`Failed to start the video output, error code: ${err.code}.`); 3445e41f4b71Sopenharmony_ci return; 3446e41f4b71Sopenharmony_ci } 3447e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the video output start success.'); 3448e41f4b71Sopenharmony_ci }); 3449e41f4b71Sopenharmony_ci} 3450e41f4b71Sopenharmony_ci``` 3451e41f4b71Sopenharmony_ci 3452e41f4b71Sopenharmony_ci### start 3453e41f4b71Sopenharmony_ci 3454e41f4b71Sopenharmony_cistart(): Promise\<void\> 3455e41f4b71Sopenharmony_ci 3456e41f4b71Sopenharmony_ci启动录制,通过Promise获取结果。 3457e41f4b71Sopenharmony_ci 3458e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3459e41f4b71Sopenharmony_ci 3460e41f4b71Sopenharmony_ci**返回值:** 3461e41f4b71Sopenharmony_ci 3462e41f4b71Sopenharmony_ci| 类型 | 说明 | 3463e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 3464e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 3465e41f4b71Sopenharmony_ci 3466e41f4b71Sopenharmony_ci**错误码:** 3467e41f4b71Sopenharmony_ci 3468e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3469e41f4b71Sopenharmony_ci 3470e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3471e41f4b71Sopenharmony_ci| --------------- | --------------- | 3472e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 3473e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3474e41f4b71Sopenharmony_ci 3475e41f4b71Sopenharmony_ci**示例:** 3476e41f4b71Sopenharmony_ci 3477e41f4b71Sopenharmony_ci```ts 3478e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3479e41f4b71Sopenharmony_ci 3480e41f4b71Sopenharmony_cifunction startVideoOutput(videoOutput: camera.VideoOutput): void { 3481e41f4b71Sopenharmony_ci videoOutput.start().then(() => { 3482e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that start method execution success.'); 3483e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 3484e41f4b71Sopenharmony_ci console.error(`Failed to video output start, error code: ${error.code}.`); 3485e41f4b71Sopenharmony_ci }); 3486e41f4b71Sopenharmony_ci} 3487e41f4b71Sopenharmony_ci``` 3488e41f4b71Sopenharmony_ci 3489e41f4b71Sopenharmony_ci### stop 3490e41f4b71Sopenharmony_ci 3491e41f4b71Sopenharmony_cistop(callback: AsyncCallback\<void\>): void 3492e41f4b71Sopenharmony_ci 3493e41f4b71Sopenharmony_ci结束录制,通过注册回调函数获取结果。使用callback异步回调。 3494e41f4b71Sopenharmony_ci 3495e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3496e41f4b71Sopenharmony_ci 3497e41f4b71Sopenharmony_ci**参数:** 3498e41f4b71Sopenharmony_ci 3499e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3500e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------ | 3501e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。 | 3502e41f4b71Sopenharmony_ci 3503e41f4b71Sopenharmony_ci**示例:** 3504e41f4b71Sopenharmony_ci 3505e41f4b71Sopenharmony_ci```ts 3506e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3507e41f4b71Sopenharmony_ci 3508e41f4b71Sopenharmony_cifunction stopVideoOutput(videoOutput: camera.VideoOutput): void { 3509e41f4b71Sopenharmony_ci videoOutput.stop((err: BusinessError) => { 3510e41f4b71Sopenharmony_ci if (err) { 3511e41f4b71Sopenharmony_ci console.error(`Failed to stop the video output, error code: ${err.code}.`); 3512e41f4b71Sopenharmony_ci return; 3513e41f4b71Sopenharmony_ci } 3514e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the video output stop success.'); 3515e41f4b71Sopenharmony_ci }); 3516e41f4b71Sopenharmony_ci} 3517e41f4b71Sopenharmony_ci``` 3518e41f4b71Sopenharmony_ci 3519e41f4b71Sopenharmony_ci### stop 3520e41f4b71Sopenharmony_ci 3521e41f4b71Sopenharmony_cistop(): Promise\<void\> 3522e41f4b71Sopenharmony_ci 3523e41f4b71Sopenharmony_ci结束录制,通过Promise获取结果。 3524e41f4b71Sopenharmony_ci 3525e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3526e41f4b71Sopenharmony_ci 3527e41f4b71Sopenharmony_ci**返回值:** 3528e41f4b71Sopenharmony_ci 3529e41f4b71Sopenharmony_ci| 类型 | 说明 | 3530e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 3531e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 3532e41f4b71Sopenharmony_ci 3533e41f4b71Sopenharmony_ci**示例:** 3534e41f4b71Sopenharmony_ci 3535e41f4b71Sopenharmony_ci```ts 3536e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3537e41f4b71Sopenharmony_ci 3538e41f4b71Sopenharmony_cifunction stopVideoOutput(videoOutput: camera.VideoOutput): void { 3539e41f4b71Sopenharmony_ci videoOutput.stop().then(() => { 3540e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that stop method execution success.'); 3541e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 3542e41f4b71Sopenharmony_ci console.error(`Failed to video output stop, error code: ${error.code}.`); 3543e41f4b71Sopenharmony_ci }); 3544e41f4b71Sopenharmony_ci} 3545e41f4b71Sopenharmony_ci``` 3546e41f4b71Sopenharmony_ci 3547e41f4b71Sopenharmony_ci### on('frameStart') 3548e41f4b71Sopenharmony_ci 3549e41f4b71Sopenharmony_cion(type: 'frameStart', callback: AsyncCallback\<void\>): void 3550e41f4b71Sopenharmony_ci 3551e41f4b71Sopenharmony_ci监听录像开始,通过注册回调函数获取结果。使用callback异步回调。 3552e41f4b71Sopenharmony_ci 3553e41f4b71Sopenharmony_ci> **说明:** 3554e41f4b71Sopenharmony_ci> 3555e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 3556e41f4b71Sopenharmony_ci 3557e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3558e41f4b71Sopenharmony_ci 3559e41f4b71Sopenharmony_ci**参数:** 3560e41f4b71Sopenharmony_ci 3561e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3562e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------------------- | 3563e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。底层第一次曝光时触发该事件并返回。 | 3564e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。 只要有该事件返回就证明录像开始。 | 3565e41f4b71Sopenharmony_ci 3566e41f4b71Sopenharmony_ci**示例:** 3567e41f4b71Sopenharmony_ci 3568e41f4b71Sopenharmony_ci```ts 3569e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3570e41f4b71Sopenharmony_ci 3571e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 3572e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 3573e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 3574e41f4b71Sopenharmony_ci return; 3575e41f4b71Sopenharmony_ci } 3576e41f4b71Sopenharmony_ci console.info('Video frame started'); 3577e41f4b71Sopenharmony_ci} 3578e41f4b71Sopenharmony_ci 3579e41f4b71Sopenharmony_cifunction registerVideoOutputFrameStart(videoOutput: camera.VideoOutput): void { 3580e41f4b71Sopenharmony_ci videoOutput.on('frameStart', callback); 3581e41f4b71Sopenharmony_ci} 3582e41f4b71Sopenharmony_ci``` 3583e41f4b71Sopenharmony_ci 3584e41f4b71Sopenharmony_ci### off('frameStart') 3585e41f4b71Sopenharmony_ci 3586e41f4b71Sopenharmony_cioff(type: 'frameStart', callback?: AsyncCallback\<void\>): void 3587e41f4b71Sopenharmony_ci 3588e41f4b71Sopenharmony_ci注销监听录像开始。 3589e41f4b71Sopenharmony_ci 3590e41f4b71Sopenharmony_ci> **说明:** 3591e41f4b71Sopenharmony_ci> 3592e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 3593e41f4b71Sopenharmony_ci 3594e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3595e41f4b71Sopenharmony_ci 3596e41f4b71Sopenharmony_ci**参数:** 3597e41f4b71Sopenharmony_ci 3598e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3599e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ----------------------------------------- | 3600e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameStart',videoOutput创建成功后可监听。 | 3601e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3602e41f4b71Sopenharmony_ci 3603e41f4b71Sopenharmony_ci**示例:** 3604e41f4b71Sopenharmony_ci 3605e41f4b71Sopenharmony_ci```ts 3606e41f4b71Sopenharmony_cifunction unregisterVideoOutputFrameStart(videoOutput: camera.VideoOutput): void { 3607e41f4b71Sopenharmony_ci videoOutput.off('frameStart'); 3608e41f4b71Sopenharmony_ci} 3609e41f4b71Sopenharmony_ci 3610e41f4b71Sopenharmony_ci``` 3611e41f4b71Sopenharmony_ci 3612e41f4b71Sopenharmony_ci### on('frameEnd') 3613e41f4b71Sopenharmony_ci 3614e41f4b71Sopenharmony_cion(type: 'frameEnd', callback: AsyncCallback\<void\>): void 3615e41f4b71Sopenharmony_ci 3616e41f4b71Sopenharmony_ci监听录像结束,通过注册回调函数获取结果。使用callback异步回调。 3617e41f4b71Sopenharmony_ci 3618e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3619e41f4b71Sopenharmony_ci 3620e41f4b71Sopenharmony_ci**参数:** 3621e41f4b71Sopenharmony_ci 3622e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3623e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------ | 3624e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。录像完全结束最后一帧时触发该事件并返回。 | 3625e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。 只要有该事件返回就证明录像结束。 | 3626e41f4b71Sopenharmony_ci 3627e41f4b71Sopenharmony_ci**示例:** 3628e41f4b71Sopenharmony_ci 3629e41f4b71Sopenharmony_ci```ts 3630e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3631e41f4b71Sopenharmony_ci 3632e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 3633e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 3634e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 3635e41f4b71Sopenharmony_ci return; 3636e41f4b71Sopenharmony_ci } 3637e41f4b71Sopenharmony_ci console.info('Video frame ended'); 3638e41f4b71Sopenharmony_ci} 3639e41f4b71Sopenharmony_ci 3640e41f4b71Sopenharmony_cifunction registerVideoOutputFrameEnd(videoOutput: camera.VideoOutput): void { 3641e41f4b71Sopenharmony_ci videoOutput.on('frameEnd', callback); 3642e41f4b71Sopenharmony_ci} 3643e41f4b71Sopenharmony_ci``` 3644e41f4b71Sopenharmony_ci 3645e41f4b71Sopenharmony_ci### off('frameEnd') 3646e41f4b71Sopenharmony_ci 3647e41f4b71Sopenharmony_cioff(type: 'frameEnd', callback?: AsyncCallback\<void\>): void 3648e41f4b71Sopenharmony_ci 3649e41f4b71Sopenharmony_ci注销监听录像结束。 3650e41f4b71Sopenharmony_ci 3651e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3652e41f4b71Sopenharmony_ci 3653e41f4b71Sopenharmony_ci**参数:** 3654e41f4b71Sopenharmony_ci 3655e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3656e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------------------------------ | 3657e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'frameEnd',videoOutput创建成功后可监听。 | 3658e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3659e41f4b71Sopenharmony_ci 3660e41f4b71Sopenharmony_ci**示例:** 3661e41f4b71Sopenharmony_ci 3662e41f4b71Sopenharmony_ci```ts 3663e41f4b71Sopenharmony_cifunction unregisterVideoOutputFrameEnd(videoOutput: camera.VideoOutput): void { 3664e41f4b71Sopenharmony_ci videoOutput.off('frameEnd'); 3665e41f4b71Sopenharmony_ci} 3666e41f4b71Sopenharmony_ci``` 3667e41f4b71Sopenharmony_ci 3668e41f4b71Sopenharmony_ci### on('error') 3669e41f4b71Sopenharmony_ci 3670e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 3671e41f4b71Sopenharmony_ci 3672e41f4b71Sopenharmony_ci监听录像输出发生错误,通过注册回调函数获取结果。使用callback异步回调。 3673e41f4b71Sopenharmony_ci 3674e41f4b71Sopenharmony_ci> **说明:** 3675e41f4b71Sopenharmony_ci> 3676e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 3677e41f4b71Sopenharmony_ci 3678e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3679e41f4b71Sopenharmony_ci 3680e41f4b71Sopenharmony_ci**参数:** 3681e41f4b71Sopenharmony_ci 3682e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3683e41f4b71Sopenharmony_ci| -------- | ----------- | ---- | -------------------------------------- | 3684e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',videoOutput创建成功后可监听。录像接口调用出现错误时触发该事件并返回对应错误码,比如调用[start](#start-1),[CameraOutput.release](#release-1)接口时出现错误返回对应错误信息。 | 3685e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 3686e41f4b71Sopenharmony_ci 3687e41f4b71Sopenharmony_ci**示例:** 3688e41f4b71Sopenharmony_ci 3689e41f4b71Sopenharmony_ci```ts 3690e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3691e41f4b71Sopenharmony_ci 3692e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 3693e41f4b71Sopenharmony_ci console.error(`Video output error code: ${err.code}`); 3694e41f4b71Sopenharmony_ci} 3695e41f4b71Sopenharmony_ci 3696e41f4b71Sopenharmony_cifunction registerVideoOutputError(videoOutput: camera.VideoOutput): void { 3697e41f4b71Sopenharmony_ci videoOutput.on('error', callback); 3698e41f4b71Sopenharmony_ci} 3699e41f4b71Sopenharmony_ci``` 3700e41f4b71Sopenharmony_ci 3701e41f4b71Sopenharmony_ci### off('error') 3702e41f4b71Sopenharmony_ci 3703e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 3704e41f4b71Sopenharmony_ci 3705e41f4b71Sopenharmony_ci注销监听录像输出发生错误。 3706e41f4b71Sopenharmony_ci 3707e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3708e41f4b71Sopenharmony_ci 3709e41f4b71Sopenharmony_ci**参数:** 3710e41f4b71Sopenharmony_ci 3711e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3712e41f4b71Sopenharmony_ci| -------- | ------------- | ---- | ----------------------------------- | 3713e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',photoOutput创建成功后可监听。 | 3714e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 3715e41f4b71Sopenharmony_ci 3716e41f4b71Sopenharmony_ci**示例:** 3717e41f4b71Sopenharmony_ci 3718e41f4b71Sopenharmony_ci```ts 3719e41f4b71Sopenharmony_cifunction unregisterVideoOutputError(videoOutput: camera.VideoOutput): void { 3720e41f4b71Sopenharmony_ci videoOutput.off('error'); 3721e41f4b71Sopenharmony_ci} 3722e41f4b71Sopenharmony_ci``` 3723e41f4b71Sopenharmony_ci 3724e41f4b71Sopenharmony_ci### getSupportedFrameRates<sup>12+</sup> 3725e41f4b71Sopenharmony_ci 3726e41f4b71Sopenharmony_cigetSupportedFrameRates(): Array\<FrameRateRange\> 3727e41f4b71Sopenharmony_ci 3728e41f4b71Sopenharmony_ci查询支持的帧率范围。 3729e41f4b71Sopenharmony_ci 3730e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3731e41f4b71Sopenharmony_ci 3732e41f4b71Sopenharmony_ci**返回值:** 3733e41f4b71Sopenharmony_ci 3734e41f4b71Sopenharmony_ci| 类型 | 说明 | 3735e41f4b71Sopenharmony_ci| ------------- | ------------ | 3736e41f4b71Sopenharmony_ci| Array<[FrameRateRange](#frameraterange)> | 支持的帧率范围列表 | 3737e41f4b71Sopenharmony_ci 3738e41f4b71Sopenharmony_ci**示例:** 3739e41f4b71Sopenharmony_ci 3740e41f4b71Sopenharmony_ci```ts 3741e41f4b71Sopenharmony_cifunction getSupportedFrameRates(videoOutput: camera.VideoOutput): Array<camera.FrameRateRange> { 3742e41f4b71Sopenharmony_ci let supportedFrameRatesArray: Array<camera.FrameRateRange> = videoOutput.getSupportedFrameRates(); 3743e41f4b71Sopenharmony_ci return supportedFrameRatesArray; 3744e41f4b71Sopenharmony_ci} 3745e41f4b71Sopenharmony_ci``` 3746e41f4b71Sopenharmony_ci 3747e41f4b71Sopenharmony_ci### setFrameRate<sup>12+</sup> 3748e41f4b71Sopenharmony_ci 3749e41f4b71Sopenharmony_cisetFrameRate(minFps: number, maxFps: number): void 3750e41f4b71Sopenharmony_ci 3751e41f4b71Sopenharmony_ci设置录像流帧率范围,设置的范围必须在支持的帧率范围内。 3752e41f4b71Sopenharmony_ci 3753e41f4b71Sopenharmony_ci进行设置前,可通过[getSupportedFrameRates](#getsupportedframerates12-1)查询支持的帧率范围。 3754e41f4b71Sopenharmony_ci 3755e41f4b71Sopenharmony_ci> **说明:** 3756e41f4b71Sopenharmony_ci> 仅在[PhotoSession](#photosession11)或[VideoSession](#videosession11)模式下支持。 3757e41f4b71Sopenharmony_ci 3758e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3759e41f4b71Sopenharmony_ci 3760e41f4b71Sopenharmony_ci**参数:** 3761e41f4b71Sopenharmony_ci 3762e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3763e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 3764e41f4b71Sopenharmony_ci| minFps | number | 是 | 最小帧率。 | 3765e41f4b71Sopenharmony_ci| maxFps | number | 是 | 最大帧率。当传入的最小值大于最大值时,传参异常,接口不生效。 | 3766e41f4b71Sopenharmony_ci 3767e41f4b71Sopenharmony_ci**错误码:** 3768e41f4b71Sopenharmony_ci 3769e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3770e41f4b71Sopenharmony_ci 3771e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3772e41f4b71Sopenharmony_ci| --------------- | --------------- | 3773e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 3774e41f4b71Sopenharmony_ci| 7400110 | Unresolved conflicts with current configurations. | 3775e41f4b71Sopenharmony_ci 3776e41f4b71Sopenharmony_ci**示例:** 3777e41f4b71Sopenharmony_ci 3778e41f4b71Sopenharmony_ci```ts 3779e41f4b71Sopenharmony_cifunction setFrameRateRange(videoOutput: camera.VideoOutput, frameRateRange: Array<number>): void { 3780e41f4b71Sopenharmony_ci videoOutput.setFrameRate(frameRateRange[0], frameRateRange[1]); 3781e41f4b71Sopenharmony_ci} 3782e41f4b71Sopenharmony_ci``` 3783e41f4b71Sopenharmony_ci 3784e41f4b71Sopenharmony_ci### getActiveFrameRate<sup>12+</sup> 3785e41f4b71Sopenharmony_ci 3786e41f4b71Sopenharmony_cigetActiveFrameRate(): FrameRateRange 3787e41f4b71Sopenharmony_ci 3788e41f4b71Sopenharmony_ci获取已设置的帧率范围。 3789e41f4b71Sopenharmony_ci 3790e41f4b71Sopenharmony_ci使用[setFrameRate](#setframerate12-1)对录像流设置过帧率后可查询。 3791e41f4b71Sopenharmony_ci 3792e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3793e41f4b71Sopenharmony_ci 3794e41f4b71Sopenharmony_ci**返回值:** 3795e41f4b71Sopenharmony_ci 3796e41f4b71Sopenharmony_ci| 类型 | 说明 | 3797e41f4b71Sopenharmony_ci| ------------- | ------------ | 3798e41f4b71Sopenharmony_ci| [FrameRateRange](#frameraterange) | 帧率范围 | 3799e41f4b71Sopenharmony_ci 3800e41f4b71Sopenharmony_ci**示例:** 3801e41f4b71Sopenharmony_ci 3802e41f4b71Sopenharmony_ci```ts 3803e41f4b71Sopenharmony_cifunction getActiveFrameRate(videoOutput: camera.VideoOutput): camera.FrameRateRange { 3804e41f4b71Sopenharmony_ci let activeFrameRate: camera.FrameRateRange = videoOutput.getActiveFrameRate(); 3805e41f4b71Sopenharmony_ci return activeFrameRate; 3806e41f4b71Sopenharmony_ci} 3807e41f4b71Sopenharmony_ci``` 3808e41f4b71Sopenharmony_ci 3809e41f4b71Sopenharmony_ci### getActiveProfile<sup>12+</sup> 3810e41f4b71Sopenharmony_ci 3811e41f4b71Sopenharmony_cigetActiveProfile(): VideoProfile 3812e41f4b71Sopenharmony_ci 3813e41f4b71Sopenharmony_ci获取当前生效的配置信息。 3814e41f4b71Sopenharmony_ci 3815e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3816e41f4b71Sopenharmony_ci 3817e41f4b71Sopenharmony_ci**返回值:** 3818e41f4b71Sopenharmony_ci 3819e41f4b71Sopenharmony_ci| 类型 | 说明 | 3820e41f4b71Sopenharmony_ci| ------------- |-----------| 3821e41f4b71Sopenharmony_ci| [VideoProfile](#videoprofile) | 当前生效的配置信息 | 3822e41f4b71Sopenharmony_ci 3823e41f4b71Sopenharmony_ci**错误码:** 3824e41f4b71Sopenharmony_ci 3825e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3826e41f4b71Sopenharmony_ci 3827e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3828e41f4b71Sopenharmony_ci|---------|------------------------------| 3829e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3830e41f4b71Sopenharmony_ci 3831e41f4b71Sopenharmony_ci**示例:** 3832e41f4b71Sopenharmony_ci 3833e41f4b71Sopenharmony_ci```ts 3834e41f4b71Sopenharmony_cifunction testGetActiveProfile(videoOutput: camera.VideoOutput): camera.Profile | undefined { 3835e41f4b71Sopenharmony_ci let activeProfile: camera.VideoProfile | undefined = undefined; 3836e41f4b71Sopenharmony_ci try { 3837e41f4b71Sopenharmony_ci activeProfile = videoOutput.getActiveProfile(); 3838e41f4b71Sopenharmony_ci } catch (error) { 3839e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 3840e41f4b71Sopenharmony_ci let err = error as BusinessError; 3841e41f4b71Sopenharmony_ci console.error(`The videoOutput.getActiveProfile call failed. error code: ${err.code}`); 3842e41f4b71Sopenharmony_ci } 3843e41f4b71Sopenharmony_ci return activeProfile; 3844e41f4b71Sopenharmony_ci} 3845e41f4b71Sopenharmony_ci``` 3846e41f4b71Sopenharmony_ci 3847e41f4b71Sopenharmony_ci### getVideoRotation<sup>12+</sup> 3848e41f4b71Sopenharmony_ci 3849e41f4b71Sopenharmony_cigetVideoRotation(deviceDegree: number): ImageRotation 3850e41f4b71Sopenharmony_ci 3851e41f4b71Sopenharmony_ci获取录像旋转角度。 3852e41f4b71Sopenharmony_ci 3853e41f4b71Sopenharmony_ci- 设备自然方向:设备默认使用方向,手机为竖屏(充电口向下)。 3854e41f4b71Sopenharmony_ci- 相机镜头角度:值等于相机图像顺时针旋转到设备自然方向的角度,手机后置相机传感器是竖屏安装的,所以需要顺时针旋转90度到设备自然方向。 3855e41f4b71Sopenharmony_ci- 屏幕显示方向:需要屏幕显示的图片左上角为第一个像素点为坐标原点。锁屏时与自然方向一致。 3856e41f4b71Sopenharmony_ci 3857e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3858e41f4b71Sopenharmony_ci 3859e41f4b71Sopenharmony_ci**参数:** 3860e41f4b71Sopenharmony_ci 3861e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3862e41f4b71Sopenharmony_ci| -------- | --------------| ---- | ------------------------ | 3863e41f4b71Sopenharmony_ci| deviceDegree | number | 是 | 设备旋转角度 | 3864e41f4b71Sopenharmony_ci 3865e41f4b71Sopenharmony_ci**返回值:** 3866e41f4b71Sopenharmony_ci 3867e41f4b71Sopenharmony_ci| 类型 | 说明 | 3868e41f4b71Sopenharmony_ci| ------------- |-----------| 3869e41f4b71Sopenharmony_ci| [ImageRotation](#imagerotation) | 获取录像旋转角度。 | 3870e41f4b71Sopenharmony_ci 3871e41f4b71Sopenharmony_ci**错误码:** 3872e41f4b71Sopenharmony_ci 3873e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3874e41f4b71Sopenharmony_ci 3875e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3876e41f4b71Sopenharmony_ci|---------|------------------------------| 3877e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 3878e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3879e41f4b71Sopenharmony_ci 3880e41f4b71Sopenharmony_ci**示例:** 3881e41f4b71Sopenharmony_ci 3882e41f4b71Sopenharmony_ci```ts 3883e41f4b71Sopenharmony_cifunction testGetVideoRotation(videoOutput: camera.PreviewOutput, deviceDegree : number): camera.ImageRotation { 3884e41f4b71Sopenharmony_ci let videoRotation: camera.ImageRotation; 3885e41f4b71Sopenharmony_ci try { 3886e41f4b71Sopenharmony_ci videoRotation = videoOutput.getVideoRotation(deviceDegree); 3887e41f4b71Sopenharmony_ci console.log(`Video rotation is: ${videoRotation}`); 3888e41f4b71Sopenharmony_ci } catch (error) { 3889e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 3890e41f4b71Sopenharmony_ci let err = error as BusinessError; 3891e41f4b71Sopenharmony_ci console.error(`The videoOutput.getVideoRotation call failed. error code: ${err.code}`); 3892e41f4b71Sopenharmony_ci } 3893e41f4b71Sopenharmony_ci return; 3894e41f4b71Sopenharmony_ci} 3895e41f4b71Sopenharmony_ci``` 3896e41f4b71Sopenharmony_ci 3897e41f4b71Sopenharmony_ci## MetadataOutput 3898e41f4b71Sopenharmony_ci 3899e41f4b71Sopenharmony_cimetadata流。继承[CameraOutput](#cameraoutput)。 3900e41f4b71Sopenharmony_ci 3901e41f4b71Sopenharmony_ci### start 3902e41f4b71Sopenharmony_ci 3903e41f4b71Sopenharmony_cistart(callback: AsyncCallback\<void\>): void 3904e41f4b71Sopenharmony_ci 3905e41f4b71Sopenharmony_ci开始输出metadata,通过注册回调函数获取结果。使用callback异步回调。 3906e41f4b71Sopenharmony_ci 3907e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3908e41f4b71Sopenharmony_ci 3909e41f4b71Sopenharmony_ci**参数:** 3910e41f4b71Sopenharmony_ci 3911e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3912e41f4b71Sopenharmony_ci| -------- | -------------------------- | ---- | ------------------- | 3913e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 3914e41f4b71Sopenharmony_ci 3915e41f4b71Sopenharmony_ci**错误码:** 3916e41f4b71Sopenharmony_ci 3917e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3918e41f4b71Sopenharmony_ci 3919e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3920e41f4b71Sopenharmony_ci| --------------- | --------------- | 3921e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 3922e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3923e41f4b71Sopenharmony_ci 3924e41f4b71Sopenharmony_ci**示例:** 3925e41f4b71Sopenharmony_ci 3926e41f4b71Sopenharmony_ci```ts 3927e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3928e41f4b71Sopenharmony_ci 3929e41f4b71Sopenharmony_cifunction startMetadataOutput(metadataOutput: camera.MetadataOutput): void { 3930e41f4b71Sopenharmony_ci metadataOutput.start((err: BusinessError) => { 3931e41f4b71Sopenharmony_ci if (err) { 3932e41f4b71Sopenharmony_ci console.error(`Failed to start metadata output, error code: ${err.code}.`); 3933e41f4b71Sopenharmony_ci return; 3934e41f4b71Sopenharmony_ci } 3935e41f4b71Sopenharmony_ci console.info('Callback returned with metadata output started.'); 3936e41f4b71Sopenharmony_ci }); 3937e41f4b71Sopenharmony_ci} 3938e41f4b71Sopenharmony_ci``` 3939e41f4b71Sopenharmony_ci 3940e41f4b71Sopenharmony_ci### start 3941e41f4b71Sopenharmony_ci 3942e41f4b71Sopenharmony_cistart(): Promise\<void\> 3943e41f4b71Sopenharmony_ci 3944e41f4b71Sopenharmony_ci开始输出metadata,通过Promise获取结果。 3945e41f4b71Sopenharmony_ci 3946e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3947e41f4b71Sopenharmony_ci 3948e41f4b71Sopenharmony_ci**返回值:** 3949e41f4b71Sopenharmony_ci 3950e41f4b71Sopenharmony_ci| 类型 | 说明 | 3951e41f4b71Sopenharmony_ci| ---------------------- | ------------------------ | 3952e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 3953e41f4b71Sopenharmony_ci 3954e41f4b71Sopenharmony_ci**错误码:** 3955e41f4b71Sopenharmony_ci 3956e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 3957e41f4b71Sopenharmony_ci 3958e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 3959e41f4b71Sopenharmony_ci| --------------- | --------------- | 3960e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 3961e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 3962e41f4b71Sopenharmony_ci 3963e41f4b71Sopenharmony_ci**示例:** 3964e41f4b71Sopenharmony_ci 3965e41f4b71Sopenharmony_ci```ts 3966e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3967e41f4b71Sopenharmony_ci 3968e41f4b71Sopenharmony_cifunction startMetadataOutput(metadataOutput: camera.MetadataOutput): void { 3969e41f4b71Sopenharmony_ci metadataOutput.start().then(() => { 3970e41f4b71Sopenharmony_ci console.info('Callback returned with metadata output started.'); 3971e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 3972e41f4b71Sopenharmony_ci console.error(`Failed to metadata output stop, error code: ${error.code}`); 3973e41f4b71Sopenharmony_ci }); 3974e41f4b71Sopenharmony_ci} 3975e41f4b71Sopenharmony_ci``` 3976e41f4b71Sopenharmony_ci 3977e41f4b71Sopenharmony_ci### stop 3978e41f4b71Sopenharmony_ci 3979e41f4b71Sopenharmony_cistop(callback: AsyncCallback\<void\>): void 3980e41f4b71Sopenharmony_ci 3981e41f4b71Sopenharmony_ci停止输出metadata,通过注册回调函数获取结果。使用callback异步回调。 3982e41f4b71Sopenharmony_ci 3983e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 3984e41f4b71Sopenharmony_ci 3985e41f4b71Sopenharmony_ci**参数:** 3986e41f4b71Sopenharmony_ci 3987e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 3988e41f4b71Sopenharmony_ci| -------- | -------------------------- | ---- | ------------------- | 3989e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。 | 3990e41f4b71Sopenharmony_ci 3991e41f4b71Sopenharmony_ci**示例:** 3992e41f4b71Sopenharmony_ci 3993e41f4b71Sopenharmony_ci```ts 3994e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 3995e41f4b71Sopenharmony_ci 3996e41f4b71Sopenharmony_cifunction stopMetadataOutput(metadataOutput: camera.MetadataOutput): void { 3997e41f4b71Sopenharmony_ci metadataOutput.stop((err: BusinessError) => { 3998e41f4b71Sopenharmony_ci if (err) { 3999e41f4b71Sopenharmony_ci console.error(`Failed to stop the metadata output, error code: ${err.code}.`); 4000e41f4b71Sopenharmony_ci return; 4001e41f4b71Sopenharmony_ci } 4002e41f4b71Sopenharmony_ci console.info('Callback returned with metadata output stopped.'); 4003e41f4b71Sopenharmony_ci }) 4004e41f4b71Sopenharmony_ci} 4005e41f4b71Sopenharmony_ci``` 4006e41f4b71Sopenharmony_ci 4007e41f4b71Sopenharmony_ci### stop 4008e41f4b71Sopenharmony_ci 4009e41f4b71Sopenharmony_cistop(): Promise\<void\> 4010e41f4b71Sopenharmony_ci 4011e41f4b71Sopenharmony_ci停止输出metadata,通过Promise获取结果。 4012e41f4b71Sopenharmony_ci 4013e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4014e41f4b71Sopenharmony_ci 4015e41f4b71Sopenharmony_ci**返回值:** 4016e41f4b71Sopenharmony_ci 4017e41f4b71Sopenharmony_ci| 类型 | 说明 | 4018e41f4b71Sopenharmony_ci| ---------------------- | --------------------------- | 4019e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 4020e41f4b71Sopenharmony_ci 4021e41f4b71Sopenharmony_ci**示例:** 4022e41f4b71Sopenharmony_ci 4023e41f4b71Sopenharmony_ci```ts 4024e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4025e41f4b71Sopenharmony_ci 4026e41f4b71Sopenharmony_cifunction stopMetadataOutput(metadataOutput: camera.MetadataOutput): void { 4027e41f4b71Sopenharmony_ci metadataOutput.stop().then(() => { 4028e41f4b71Sopenharmony_ci console.info('Callback returned with metadata output stopped.'); 4029e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4030e41f4b71Sopenharmony_ci console.error(`Failed to metadata output stop, error code: ${error.code}`); 4031e41f4b71Sopenharmony_ci }); 4032e41f4b71Sopenharmony_ci} 4033e41f4b71Sopenharmony_ci``` 4034e41f4b71Sopenharmony_ci 4035e41f4b71Sopenharmony_ci### on('metadataObjectsAvailable') 4036e41f4b71Sopenharmony_ci 4037e41f4b71Sopenharmony_cion(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObject\>\>): void 4038e41f4b71Sopenharmony_ci 4039e41f4b71Sopenharmony_ci监听检测到的metadata对象,通过注册回调函数获取结果。使用callback异步回调。 4040e41f4b71Sopenharmony_ci 4041e41f4b71Sopenharmony_ci> **说明:** 4042e41f4b71Sopenharmony_ci> 4043e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 4044e41f4b71Sopenharmony_ci 4045e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4046e41f4b71Sopenharmony_ci 4047e41f4b71Sopenharmony_ci**参数:** 4048e41f4b71Sopenharmony_ci 4049e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4050e41f4b71Sopenharmony_ci| -------- | -------------- | ---- | ------------------------------------ | 4051e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据。 | 4052e41f4b71Sopenharmony_ci| callback | AsyncCallback\<Array\<[MetadataObject](#metadataobject)\>\> | 是 | 回调函数,用于获取metadata数据。 | 4053e41f4b71Sopenharmony_ci 4054e41f4b71Sopenharmony_ci**示例:** 4055e41f4b71Sopenharmony_ci 4056e41f4b71Sopenharmony_ci```ts 4057e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4058e41f4b71Sopenharmony_ci 4059e41f4b71Sopenharmony_cifunction callback(err: BusinessError, metadataObjectArr: Array<camera.MetadataObject>): void { 4060e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 4061e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 4062e41f4b71Sopenharmony_ci return; 4063e41f4b71Sopenharmony_ci } 4064e41f4b71Sopenharmony_ci console.info('metadata output metadataObjectsAvailable'); 4065e41f4b71Sopenharmony_ci} 4066e41f4b71Sopenharmony_ci 4067e41f4b71Sopenharmony_cifunction registerMetadataObjectsAvailable(metadataOutput: camera.MetadataOutput): void { 4068e41f4b71Sopenharmony_ci metadataOutput.on('metadataObjectsAvailable', callback); 4069e41f4b71Sopenharmony_ci} 4070e41f4b71Sopenharmony_ci``` 4071e41f4b71Sopenharmony_ci 4072e41f4b71Sopenharmony_ci### off('metadataObjectsAvailable') 4073e41f4b71Sopenharmony_ci 4074e41f4b71Sopenharmony_cioff(type: 'metadataObjectsAvailable', callback?: AsyncCallback\<Array\<MetadataObject\>\>): void 4075e41f4b71Sopenharmony_ci 4076e41f4b71Sopenharmony_ci注销监听检测到的metadata对象。 4077e41f4b71Sopenharmony_ci 4078e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4079e41f4b71Sopenharmony_ci 4080e41f4b71Sopenharmony_ci**参数:** 4081e41f4b71Sopenharmony_ci 4082e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4083e41f4b71Sopenharmony_ci| -------- | -------------- | ---- | ------------------------------------ | 4084e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。 | 4085e41f4b71Sopenharmony_ci| callback | AsyncCallback\<Array\<[MetadataObject](#metadataobject)\>\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 4086e41f4b71Sopenharmony_ci 4087e41f4b71Sopenharmony_ci**示例:** 4088e41f4b71Sopenharmony_ci 4089e41f4b71Sopenharmony_ci```ts 4090e41f4b71Sopenharmony_cifunction unregisterMetadataObjectsAvailable(metadataOutput: camera.MetadataOutput): void { 4091e41f4b71Sopenharmony_ci metadataOutput.off('metadataObjectsAvailable'); 4092e41f4b71Sopenharmony_ci} 4093e41f4b71Sopenharmony_ci``` 4094e41f4b71Sopenharmony_ci 4095e41f4b71Sopenharmony_ci### on('error') 4096e41f4b71Sopenharmony_ci 4097e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 4098e41f4b71Sopenharmony_ci 4099e41f4b71Sopenharmony_ci监听metadata流的错误,通过注册回调函数获取结果。使用callback异步回调。 4100e41f4b71Sopenharmony_ci 4101e41f4b71Sopenharmony_ci> **说明:** 4102e41f4b71Sopenharmony_ci> 4103e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 4104e41f4b71Sopenharmony_ci 4105e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4106e41f4b71Sopenharmony_ci 4107e41f4b71Sopenharmony_ci**参数:** 4108e41f4b71Sopenharmony_ci 4109e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4110e41f4b71Sopenharmony_ci| -------- | ------------- | ---- | --------------------------------------- | 4111e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用[start](#start-3),[CameraOutput.release](#release-1)接口时发生错误返回对应错误信息。 | 4112e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4113e41f4b71Sopenharmony_ci 4114e41f4b71Sopenharmony_ci**示例:** 4115e41f4b71Sopenharmony_ci 4116e41f4b71Sopenharmony_ci```ts 4117e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4118e41f4b71Sopenharmony_ci 4119e41f4b71Sopenharmony_cifunction callback(metadataOutputError: BusinessError): void { 4120e41f4b71Sopenharmony_ci console.error(`Metadata output error code: ${metadataOutputError.code}`); 4121e41f4b71Sopenharmony_ci} 4122e41f4b71Sopenharmony_ci 4123e41f4b71Sopenharmony_cifunction registerMetadataOutputError(metadataOutput: camera.MetadataOutput): void { 4124e41f4b71Sopenharmony_ci metadataOutput.on('error', callback); 4125e41f4b71Sopenharmony_ci} 4126e41f4b71Sopenharmony_ci``` 4127e41f4b71Sopenharmony_ci 4128e41f4b71Sopenharmony_ci### off('error') 4129e41f4b71Sopenharmony_ci 4130e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 4131e41f4b71Sopenharmony_ci 4132e41f4b71Sopenharmony_ci注销监听metadata流的错误。 4133e41f4b71Sopenharmony_ci 4134e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4135e41f4b71Sopenharmony_ci 4136e41f4b71Sopenharmony_ci**参数:** 4137e41f4b71Sopenharmony_ci 4138e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4139e41f4b71Sopenharmony_ci| -------- | ------------- | ---- | --------------------------------------- | 4140e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',metadataOutput创建成功后可监听。 | 4141e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 4142e41f4b71Sopenharmony_ci 4143e41f4b71Sopenharmony_ci**示例:** 4144e41f4b71Sopenharmony_ci 4145e41f4b71Sopenharmony_ci```ts 4146e41f4b71Sopenharmony_cifunction unregisterMetadataOutputError(metadataOutput: camera.MetadataOutput): void { 4147e41f4b71Sopenharmony_ci metadataOutput.off('error'); 4148e41f4b71Sopenharmony_ci} 4149e41f4b71Sopenharmony_ci``` 4150e41f4b71Sopenharmony_ci 4151e41f4b71Sopenharmony_ci## MetadataObjectType 4152e41f4b71Sopenharmony_ci 4153e41f4b71Sopenharmony_ci枚举,metadata流。 4154e41f4b71Sopenharmony_ci 4155e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4156e41f4b71Sopenharmony_ci 4157e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4158e41f4b71Sopenharmony_ci| ------------------------- | ---- | ----------------- | 4159e41f4b71Sopenharmony_ci| FACE_DETECTION | 0 | metadata对象类型,用于人脸检测。<br> 检测点应在0-1坐标系内,该坐标系左上角为(0,0),右下角为(1,1)。<br> 此坐标系以设备充电口在右侧时的横向设备方向为基准。<br>例如应用的预览界面布局以设备充电口在下侧时的竖向方向为基准,<br>布局宽高为(w,h), 返回点为(x,y),则转换后的坐标点为(1-y,x)。 | 4160e41f4b71Sopenharmony_ci 4161e41f4b71Sopenharmony_ci## Rect 4162e41f4b71Sopenharmony_ci 4163e41f4b71Sopenharmony_ci矩形定义。 4164e41f4b71Sopenharmony_ci 4165e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4166e41f4b71Sopenharmony_ci 4167e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 4168e41f4b71Sopenharmony_ci| -------- | ------ | ------ |-----| --------------------- | 4169e41f4b71Sopenharmony_ci| topLeftX | number | 否 | 否 | 矩形区域左上角x坐标。 | 4170e41f4b71Sopenharmony_ci| topLeftY | number | 否 | 否 | 矩形区域左上角y坐标。 | 4171e41f4b71Sopenharmony_ci| width | number | 否 | 否 | 矩形宽,相对值,范围[0, 1]。 | 4172e41f4b71Sopenharmony_ci| height | number | 否 | 否 | 矩形高,相对值,范围[0, 1]。 | 4173e41f4b71Sopenharmony_ci 4174e41f4b71Sopenharmony_ci## MetadataObject 4175e41f4b71Sopenharmony_ci 4176e41f4b71Sopenharmony_ci相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取。 4177e41f4b71Sopenharmony_ci 4178e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4179e41f4b71Sopenharmony_ci 4180e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 |说明 | 4181e41f4b71Sopenharmony_ci| ----------- | ------------------------------------------- | ---- | ---- | ----------------- | 4182e41f4b71Sopenharmony_ci| type | [MetadataObjectType](#metadataobjecttype) | 是 | 否 | metadata 类型。 | 4183e41f4b71Sopenharmony_ci| timestamp | number | 是 | 否 | 当前时间戳(毫秒)。| 4184e41f4b71Sopenharmony_ci| boundingBox | [Rect](#rect) | 是 | 否 | metadata 区域框。 | 4185e41f4b71Sopenharmony_ci 4186e41f4b71Sopenharmony_ci## FlashMode 4187e41f4b71Sopenharmony_ci 4188e41f4b71Sopenharmony_ci枚举,闪光灯模式。 4189e41f4b71Sopenharmony_ci 4190e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4191e41f4b71Sopenharmony_ci 4192e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4193e41f4b71Sopenharmony_ci| ---------------------- | ---- | ---------- | 4194e41f4b71Sopenharmony_ci| FLASH_MODE_CLOSE | 0 | 闪光灯关闭。 | 4195e41f4b71Sopenharmony_ci| FLASH_MODE_OPEN | 1 | 闪光灯打开。 | 4196e41f4b71Sopenharmony_ci| FLASH_MODE_AUTO | 2 | 自动闪光灯。 | 4197e41f4b71Sopenharmony_ci| FLASH_MODE_ALWAYS_OPEN | 3 | 闪光灯常亮。 | 4198e41f4b71Sopenharmony_ci 4199e41f4b71Sopenharmony_ci## ExposureMode 4200e41f4b71Sopenharmony_ci 4201e41f4b71Sopenharmony_ci枚举,曝光模式。 4202e41f4b71Sopenharmony_ci 4203e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4204e41f4b71Sopenharmony_ci 4205e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4206e41f4b71Sopenharmony_ci| ----------------------------- | ---- | ----------- | 4207e41f4b71Sopenharmony_ci| EXPOSURE_MODE_LOCKED | 0 | 锁定曝光模式。不支持曝光区域中心点设置。 | 4208e41f4b71Sopenharmony_ci| EXPOSURE_MODE_AUTO | 1 | 自动曝光模式。支持曝光区域中心点设置,可以使用[AutoExposure.setMeteringPoint](#setmeteringpoint11)设置曝光区域中心点。 | 4209e41f4b71Sopenharmony_ci| EXPOSURE_MODE_CONTINUOUS_AUTO | 2 | 连续自动曝光。不支持曝光区域中心点设置。 | 4210e41f4b71Sopenharmony_ci 4211e41f4b71Sopenharmony_ci## FocusMode 4212e41f4b71Sopenharmony_ci 4213e41f4b71Sopenharmony_ci枚举,焦距模式。 4214e41f4b71Sopenharmony_ci 4215e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4216e41f4b71Sopenharmony_ci 4217e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4218e41f4b71Sopenharmony_ci| -------------------------- | ---- | ------------ | 4219e41f4b71Sopenharmony_ci| FOCUS_MODE_MANUAL | 0 | 手动对焦。通过手动修改相机焦距来改变对焦位置,不支持对焦点设置。 | 4220e41f4b71Sopenharmony_ci| FOCUS_MODE_CONTINUOUS_AUTO | 1 | 连续自动对焦。不支持对焦点设置。 | 4221e41f4b71Sopenharmony_ci| FOCUS_MODE_AUTO | 2 | 自动对焦。支持对焦点设置,可以使用[Focus.setFocusPoint](#setfocuspoint11)设置对焦点,根据对焦点执行一次自动对焦。 | 4222e41f4b71Sopenharmony_ci| FOCUS_MODE_LOCKED | 3 | 对焦锁定。不支持对焦点设置。 | 4223e41f4b71Sopenharmony_ci 4224e41f4b71Sopenharmony_ci## FocusState 4225e41f4b71Sopenharmony_ci 4226e41f4b71Sopenharmony_ci枚举,焦距状态。 4227e41f4b71Sopenharmony_ci 4228e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4229e41f4b71Sopenharmony_ci 4230e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4231e41f4b71Sopenharmony_ci| --------------------- | ---- | --------- | 4232e41f4b71Sopenharmony_ci| FOCUS_STATE_SCAN | 0 | 触发对焦。 | 4233e41f4b71Sopenharmony_ci| FOCUS_STATE_FOCUSED | 1 | 对焦成功。 | 4234e41f4b71Sopenharmony_ci| FOCUS_STATE_UNFOCUSED | 2 | 未完成对焦。 | 4235e41f4b71Sopenharmony_ci 4236e41f4b71Sopenharmony_ci## VideoStabilizationMode 4237e41f4b71Sopenharmony_ci 4238e41f4b71Sopenharmony_ci枚举,视频防抖模式。 4239e41f4b71Sopenharmony_ci 4240e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4241e41f4b71Sopenharmony_ci 4242e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 4243e41f4b71Sopenharmony_ci| --------- | ---- | ------------ | 4244e41f4b71Sopenharmony_ci| OFF | 0 | 关闭视频防抖功能。 | 4245e41f4b71Sopenharmony_ci| LOW | 1 | 使用基础防抖算法。 | 4246e41f4b71Sopenharmony_ci| MIDDLE | 2 | 使用防抖效果一般的防抖算法,防抖效果优于LOW类型。 | 4247e41f4b71Sopenharmony_ci| HIGH | 3 | 使用防抖效果最好的防抖算法,防抖效果优于MIDDLE类型。 | 4248e41f4b71Sopenharmony_ci| AUTO | 4 | 自动进行选择。 | 4249e41f4b71Sopenharmony_ci 4250e41f4b71Sopenharmony_ci## Session<sup>11+</sup> 4251e41f4b71Sopenharmony_ci 4252e41f4b71Sopenharmony_ci会话类,保存一次相机运行所需要的所有资源[CameraInput](#camerainput)、[CameraOutput](#cameraoutput),并向相机设备申请完成相机功能(录像,拍照)。 4253e41f4b71Sopenharmony_ci 4254e41f4b71Sopenharmony_ci### beginConfig<sup>11+</sup> 4255e41f4b71Sopenharmony_ci 4256e41f4b71Sopenharmony_cibeginConfig(): void 4257e41f4b71Sopenharmony_ci 4258e41f4b71Sopenharmony_ci开始配置会话。 4259e41f4b71Sopenharmony_ci 4260e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4261e41f4b71Sopenharmony_ci 4262e41f4b71Sopenharmony_ci**错误码:** 4263e41f4b71Sopenharmony_ci 4264e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4265e41f4b71Sopenharmony_ci 4266e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4267e41f4b71Sopenharmony_ci| --------------- | --------------- | 4268e41f4b71Sopenharmony_ci| 7400105 | Session config locked. | 4269e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4270e41f4b71Sopenharmony_ci 4271e41f4b71Sopenharmony_ci**示例:** 4272e41f4b71Sopenharmony_ci 4273e41f4b71Sopenharmony_ci```ts 4274e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4275e41f4b71Sopenharmony_ci 4276e41f4b71Sopenharmony_cifunction beginConfig(session: camera.Session): void { 4277e41f4b71Sopenharmony_ci try { 4278e41f4b71Sopenharmony_ci session.beginConfig(); 4279e41f4b71Sopenharmony_ci } catch (error) { 4280e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4281e41f4b71Sopenharmony_ci let err = error as BusinessError; 4282e41f4b71Sopenharmony_ci console.error(`The beginConfig call failed. error code: ${err.code}`); 4283e41f4b71Sopenharmony_ci } 4284e41f4b71Sopenharmony_ci} 4285e41f4b71Sopenharmony_ci``` 4286e41f4b71Sopenharmony_ci 4287e41f4b71Sopenharmony_ci### commitConfig<sup>11+</sup> 4288e41f4b71Sopenharmony_ci 4289e41f4b71Sopenharmony_cicommitConfig(callback: AsyncCallback\<void\>): void 4290e41f4b71Sopenharmony_ci 4291e41f4b71Sopenharmony_ci提交配置信息,通过注册回调函数获取结果。使用callback异步回调。 4292e41f4b71Sopenharmony_ci 4293e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4294e41f4b71Sopenharmony_ci 4295e41f4b71Sopenharmony_ci**参数:** 4296e41f4b71Sopenharmony_ci 4297e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4298e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 4299e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4300e41f4b71Sopenharmony_ci 4301e41f4b71Sopenharmony_ci**错误码:** 4302e41f4b71Sopenharmony_ci 4303e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4304e41f4b71Sopenharmony_ci 4305e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4306e41f4b71Sopenharmony_ci| --------------- | --------------- | 4307e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4308e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4309e41f4b71Sopenharmony_ci 4310e41f4b71Sopenharmony_ci**示例:** 4311e41f4b71Sopenharmony_ci 4312e41f4b71Sopenharmony_ci```ts 4313e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4314e41f4b71Sopenharmony_ci 4315e41f4b71Sopenharmony_cifunction commitConfig(session: camera.Session): void { 4316e41f4b71Sopenharmony_ci session.commitConfig((err: BusinessError) => { 4317e41f4b71Sopenharmony_ci if (err) { 4318e41f4b71Sopenharmony_ci console.error(`The commitConfig call failed. error code: ${err.code}`); 4319e41f4b71Sopenharmony_ci return; 4320e41f4b71Sopenharmony_ci } 4321e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the commit config success.'); 4322e41f4b71Sopenharmony_ci }); 4323e41f4b71Sopenharmony_ci} 4324e41f4b71Sopenharmony_ci``` 4325e41f4b71Sopenharmony_ci 4326e41f4b71Sopenharmony_ci### commitConfig<sup>11+</sup> 4327e41f4b71Sopenharmony_ci 4328e41f4b71Sopenharmony_cicommitConfig(): Promise\<void\> 4329e41f4b71Sopenharmony_ci 4330e41f4b71Sopenharmony_ci提交配置信息,通过Promise获取结果。 4331e41f4b71Sopenharmony_ci 4332e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4333e41f4b71Sopenharmony_ci 4334e41f4b71Sopenharmony_ci**返回值:** 4335e41f4b71Sopenharmony_ci 4336e41f4b71Sopenharmony_ci| 类型 | 说明 | 4337e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 4338e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 4339e41f4b71Sopenharmony_ci 4340e41f4b71Sopenharmony_ci**错误码:** 4341e41f4b71Sopenharmony_ci 4342e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4343e41f4b71Sopenharmony_ci 4344e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4345e41f4b71Sopenharmony_ci| --------------- | --------------- | 4346e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4347e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4348e41f4b71Sopenharmony_ci 4349e41f4b71Sopenharmony_ci**示例:** 4350e41f4b71Sopenharmony_ci 4351e41f4b71Sopenharmony_ci```ts 4352e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4353e41f4b71Sopenharmony_ci 4354e41f4b71Sopenharmony_cifunction commitConfig(session: camera.Session): void { 4355e41f4b71Sopenharmony_ci session.commitConfig().then(() => { 4356e41f4b71Sopenharmony_ci console.info('Promise returned to indicate the commit config success.'); 4357e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4358e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4359e41f4b71Sopenharmony_ci console.error(`The commitConfig call failed. error code: ${error.code}`); 4360e41f4b71Sopenharmony_ci }); 4361e41f4b71Sopenharmony_ci} 4362e41f4b71Sopenharmony_ci``` 4363e41f4b71Sopenharmony_ci 4364e41f4b71Sopenharmony_ci### canAddInput<sup>11+</sup> 4365e41f4b71Sopenharmony_ci 4366e41f4b71Sopenharmony_cicanAddInput(cameraInput: CameraInput): boolean 4367e41f4b71Sopenharmony_ci 4368e41f4b71Sopenharmony_ci判断当前cameraInput是否可以添加到session中。当前函数需要在[beginConfig](#beginconfig11)和[commitConfig](#commitconfig11-1)之间生效。 4369e41f4b71Sopenharmony_ci 4370e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4371e41f4b71Sopenharmony_ci 4372e41f4b71Sopenharmony_ci**参数:** 4373e41f4b71Sopenharmony_ci 4374e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4375e41f4b71Sopenharmony_ci| ----------- | --------------------------- | ---- | ------------------------ | 4376e41f4b71Sopenharmony_ci| cameraInput | [CameraInput](#camerainput) | 是 | 需要添加的CameraInput实例。传参异常(如超出范围、传入null、未定义等),实际接口不会生效。 | 4377e41f4b71Sopenharmony_ci 4378e41f4b71Sopenharmony_ci**返回值:** 4379e41f4b71Sopenharmony_ci 4380e41f4b71Sopenharmony_ci| 类型 | 说明 | 4381e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 4382e41f4b71Sopenharmony_ci| boolean | 返回true表示支持添加当前cameraInput,返回false表示不支持添加。 | 4383e41f4b71Sopenharmony_ci 4384e41f4b71Sopenharmony_ci**示例:** 4385e41f4b71Sopenharmony_ci 4386e41f4b71Sopenharmony_ci```ts 4387e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4388e41f4b71Sopenharmony_ci 4389e41f4b71Sopenharmony_cifunction canAddInput(session: camera.Session, cameraInput: camera.CameraInput): void { 4390e41f4b71Sopenharmony_ci let canAdd: boolean = session.canAddInput(cameraInput); 4391e41f4b71Sopenharmony_ci console.info(`The input canAddInput: ${canAdd}`); 4392e41f4b71Sopenharmony_ci} 4393e41f4b71Sopenharmony_ci``` 4394e41f4b71Sopenharmony_ci 4395e41f4b71Sopenharmony_ci### addInput<sup>11+</sup> 4396e41f4b71Sopenharmony_ci 4397e41f4b71Sopenharmony_ciaddInput(cameraInput: CameraInput): void 4398e41f4b71Sopenharmony_ci 4399e41f4b71Sopenharmony_ci把[CameraInput](#camerainput)加入到会话。 4400e41f4b71Sopenharmony_ci 4401e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4402e41f4b71Sopenharmony_ci 4403e41f4b71Sopenharmony_ci**参数:** 4404e41f4b71Sopenharmony_ci 4405e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4406e41f4b71Sopenharmony_ci| ----------- | --------------------------- | ---- | ------------------------ | 4407e41f4b71Sopenharmony_ci| cameraInput | [CameraInput](#camerainput) | 是 | 需要添加的CameraInput实例。 | 4408e41f4b71Sopenharmony_ci 4409e41f4b71Sopenharmony_ci**错误码:** 4410e41f4b71Sopenharmony_ci 4411e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4412e41f4b71Sopenharmony_ci 4413e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4414e41f4b71Sopenharmony_ci| --------------- | --------------- | 4415e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 4416e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4417e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4418e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4419e41f4b71Sopenharmony_ci 4420e41f4b71Sopenharmony_ci**示例:** 4421e41f4b71Sopenharmony_ci 4422e41f4b71Sopenharmony_ci```ts 4423e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4424e41f4b71Sopenharmony_ci 4425e41f4b71Sopenharmony_cifunction addInput(session: camera.Session, cameraInput: camera.CameraInput): void { 4426e41f4b71Sopenharmony_ci try { 4427e41f4b71Sopenharmony_ci session.addInput(cameraInput); 4428e41f4b71Sopenharmony_ci } catch (error) { 4429e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4430e41f4b71Sopenharmony_ci let err = error as BusinessError; 4431e41f4b71Sopenharmony_ci console.error(`The addInput call failed. error code: ${err.code}`); 4432e41f4b71Sopenharmony_ci } 4433e41f4b71Sopenharmony_ci} 4434e41f4b71Sopenharmony_ci``` 4435e41f4b71Sopenharmony_ci 4436e41f4b71Sopenharmony_ci### removeInput<sup>11+</sup> 4437e41f4b71Sopenharmony_ci 4438e41f4b71Sopenharmony_ciremoveInput(cameraInput: CameraInput): void 4439e41f4b71Sopenharmony_ci 4440e41f4b71Sopenharmony_ci移除[CameraInput](#camerainput)。当前函数需要在[beginConfig](#beginconfig11)和[commitConfig](#commitconfig11-1)之间生效。 4441e41f4b71Sopenharmony_ci 4442e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4443e41f4b71Sopenharmony_ci 4444e41f4b71Sopenharmony_ci**参数:** 4445e41f4b71Sopenharmony_ci 4446e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4447e41f4b71Sopenharmony_ci| ----------- | --------------------------- | ---- | ------------------------ | 4448e41f4b71Sopenharmony_ci| cameraInput | [CameraInput](#camerainput) | 是 | 需要移除的CameraInput实例。 | 4449e41f4b71Sopenharmony_ci 4450e41f4b71Sopenharmony_ci**错误码:** 4451e41f4b71Sopenharmony_ci 4452e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4453e41f4b71Sopenharmony_ci 4454e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4455e41f4b71Sopenharmony_ci| --------------- | --------------- | 4456e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 4457e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4458e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4459e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4460e41f4b71Sopenharmony_ci 4461e41f4b71Sopenharmony_ci**示例:** 4462e41f4b71Sopenharmony_ci 4463e41f4b71Sopenharmony_ci```ts 4464e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4465e41f4b71Sopenharmony_ci 4466e41f4b71Sopenharmony_cifunction removeInput(session: camera.Session, cameraInput: camera.CameraInput): void { 4467e41f4b71Sopenharmony_ci try { 4468e41f4b71Sopenharmony_ci session.removeInput(cameraInput); 4469e41f4b71Sopenharmony_ci } catch (error) { 4470e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4471e41f4b71Sopenharmony_ci let err = error as BusinessError; 4472e41f4b71Sopenharmony_ci console.error(`The removeInput call failed. error code: ${err.code}`); 4473e41f4b71Sopenharmony_ci } 4474e41f4b71Sopenharmony_ci} 4475e41f4b71Sopenharmony_ci``` 4476e41f4b71Sopenharmony_ci 4477e41f4b71Sopenharmony_ci### canAddOutput<sup>11+</sup> 4478e41f4b71Sopenharmony_ci 4479e41f4b71Sopenharmony_cicanAddOutput(cameraOutput: CameraOutput): boolean 4480e41f4b71Sopenharmony_ci 4481e41f4b71Sopenharmony_ci判断当前cameraOutput是否可以添加到session中。当前函数需要在[addInput](#addinput11)和[commitConfig](#commitconfig11-1)之间生效。 4482e41f4b71Sopenharmony_ci 4483e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4484e41f4b71Sopenharmony_ci 4485e41f4b71Sopenharmony_ci**参数:** 4486e41f4b71Sopenharmony_ci 4487e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4488e41f4b71Sopenharmony_ci| ----------- | --------------------------- | ---- | ------------------------ | 4489e41f4b71Sopenharmony_ci| cameraOutput | [CameraOutput](#cameraoutput) | 是 | 需要添加的CameraOutput实例。传参异常(如超出范围、传入null、未定义等),实际接口不会生效。 | 4490e41f4b71Sopenharmony_ci 4491e41f4b71Sopenharmony_ci**返回值:** 4492e41f4b71Sopenharmony_ci 4493e41f4b71Sopenharmony_ci| 类型 | 说明 | 4494e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 4495e41f4b71Sopenharmony_ci| boolean | 是否可以添加当前cameraOutput到session中。 | 4496e41f4b71Sopenharmony_ci 4497e41f4b71Sopenharmony_ci**示例:** 4498e41f4b71Sopenharmony_ci 4499e41f4b71Sopenharmony_ci```ts 4500e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4501e41f4b71Sopenharmony_ci 4502e41f4b71Sopenharmony_cifunction canAddOutput(session: camera.Session, cameraOutput: camera.CameraOutput): void { 4503e41f4b71Sopenharmony_ci let canAdd: boolean = session.canAddOutput(cameraOutput); 4504e41f4b71Sopenharmony_ci console.info(`This addOutput can add: ${canAdd}`); 4505e41f4b71Sopenharmony_ci} 4506e41f4b71Sopenharmony_ci``` 4507e41f4b71Sopenharmony_ci 4508e41f4b71Sopenharmony_ci### addOutput<sup>11+</sup> 4509e41f4b71Sopenharmony_ci 4510e41f4b71Sopenharmony_ciaddOutput(cameraOutput: CameraOutput): void 4511e41f4b71Sopenharmony_ci 4512e41f4b71Sopenharmony_ci把[CameraOutput](#cameraoutput)加入到会话。 4513e41f4b71Sopenharmony_ci 4514e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4515e41f4b71Sopenharmony_ci 4516e41f4b71Sopenharmony_ci**参数:** 4517e41f4b71Sopenharmony_ci 4518e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4519e41f4b71Sopenharmony_ci| ------------- | ------------------------------- | ---- | ------------------------ | 4520e41f4b71Sopenharmony_ci| cameraOutput | [CameraOutput](#cameraoutput) | 是 | 需要添加的CameraOutput实例。 | 4521e41f4b71Sopenharmony_ci 4522e41f4b71Sopenharmony_ci**错误码:** 4523e41f4b71Sopenharmony_ci 4524e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4525e41f4b71Sopenharmony_ci 4526e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4527e41f4b71Sopenharmony_ci| --------------- | --------------- | 4528e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 4529e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4530e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4531e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4532e41f4b71Sopenharmony_ci 4533e41f4b71Sopenharmony_ci**示例:** 4534e41f4b71Sopenharmony_ci 4535e41f4b71Sopenharmony_ci```ts 4536e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4537e41f4b71Sopenharmony_ci 4538e41f4b71Sopenharmony_cifunction addOutput(session: camera.Session, cameraOutput: camera.CameraOutput): void { 4539e41f4b71Sopenharmony_ci try { 4540e41f4b71Sopenharmony_ci session.addOutput(cameraOutput); 4541e41f4b71Sopenharmony_ci } catch (error) { 4542e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4543e41f4b71Sopenharmony_ci let err = error as BusinessError; 4544e41f4b71Sopenharmony_ci console.error(`The addOutput call failed. error code: ${err.code}`); 4545e41f4b71Sopenharmony_ci } 4546e41f4b71Sopenharmony_ci} 4547e41f4b71Sopenharmony_ci``` 4548e41f4b71Sopenharmony_ci 4549e41f4b71Sopenharmony_ci### removeOutput<sup>11+</sup> 4550e41f4b71Sopenharmony_ci 4551e41f4b71Sopenharmony_ciremoveOutput(cameraOutput: CameraOutput): void 4552e41f4b71Sopenharmony_ci 4553e41f4b71Sopenharmony_ci从会话中移除[CameraOutput](#cameraoutput)。 4554e41f4b71Sopenharmony_ci 4555e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4556e41f4b71Sopenharmony_ci 4557e41f4b71Sopenharmony_ci**参数:** 4558e41f4b71Sopenharmony_ci 4559e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4560e41f4b71Sopenharmony_ci| ------------- | ------------------------------- | ---- | ------------------------ | 4561e41f4b71Sopenharmony_ci| cameraOutput | [CameraOutput](#cameraoutput) | 是 | 需要移除的CameraOutput实例。 | 4562e41f4b71Sopenharmony_ci 4563e41f4b71Sopenharmony_ci**错误码:** 4564e41f4b71Sopenharmony_ci 4565e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4566e41f4b71Sopenharmony_ci 4567e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4568e41f4b71Sopenharmony_ci| --------------- | --------------- | 4569e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 4570e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4571e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4572e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4573e41f4b71Sopenharmony_ci 4574e41f4b71Sopenharmony_ci**示例:** 4575e41f4b71Sopenharmony_ci 4576e41f4b71Sopenharmony_ci```ts 4577e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4578e41f4b71Sopenharmony_ci 4579e41f4b71Sopenharmony_cifunction removeOutput(session: camera.Session, previewOutput: camera.PreviewOutput): void { 4580e41f4b71Sopenharmony_ci try { 4581e41f4b71Sopenharmony_ci session.removeOutput(previewOutput); 4582e41f4b71Sopenharmony_ci } catch (error) { 4583e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4584e41f4b71Sopenharmony_ci let err = error as BusinessError; 4585e41f4b71Sopenharmony_ci console.error(`The removeOutput call failed. error code: ${err.code}`); 4586e41f4b71Sopenharmony_ci } 4587e41f4b71Sopenharmony_ci} 4588e41f4b71Sopenharmony_ci``` 4589e41f4b71Sopenharmony_ci 4590e41f4b71Sopenharmony_ci### start<sup>11+</sup> 4591e41f4b71Sopenharmony_ci 4592e41f4b71Sopenharmony_cistart(callback: AsyncCallback\<void\>): void 4593e41f4b71Sopenharmony_ci 4594e41f4b71Sopenharmony_ci开始会话工作,通过注册回调函数获取结果。使用callback异步回调。 4595e41f4b71Sopenharmony_ci 4596e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4597e41f4b71Sopenharmony_ci 4598e41f4b71Sopenharmony_ci**参数:** 4599e41f4b71Sopenharmony_ci 4600e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4601e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 4602e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4603e41f4b71Sopenharmony_ci 4604e41f4b71Sopenharmony_ci**错误码:** 4605e41f4b71Sopenharmony_ci 4606e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4607e41f4b71Sopenharmony_ci 4608e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4609e41f4b71Sopenharmony_ci| --------------- | --------------- | 4610e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4611e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4612e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4613e41f4b71Sopenharmony_ci 4614e41f4b71Sopenharmony_ci**示例:** 4615e41f4b71Sopenharmony_ci 4616e41f4b71Sopenharmony_ci```ts 4617e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4618e41f4b71Sopenharmony_ci 4619e41f4b71Sopenharmony_cifunction startCaptureSession(session: camera.Session): void { 4620e41f4b71Sopenharmony_ci session.start((err: BusinessError) => { 4621e41f4b71Sopenharmony_ci if (err) { 4622e41f4b71Sopenharmony_ci console.error(`Failed to start the session, error code: ${err.code}.`); 4623e41f4b71Sopenharmony_ci return; 4624e41f4b71Sopenharmony_ci } 4625e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the session start success.'); 4626e41f4b71Sopenharmony_ci }); 4627e41f4b71Sopenharmony_ci} 4628e41f4b71Sopenharmony_ci``` 4629e41f4b71Sopenharmony_ci 4630e41f4b71Sopenharmony_ci### start<sup>11+</sup> 4631e41f4b71Sopenharmony_ci 4632e41f4b71Sopenharmony_cistart(): Promise\<void\> 4633e41f4b71Sopenharmony_ci 4634e41f4b71Sopenharmony_ci开始会话工作,通过Promise获取结果。 4635e41f4b71Sopenharmony_ci 4636e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4637e41f4b71Sopenharmony_ci 4638e41f4b71Sopenharmony_ci**返回值:** 4639e41f4b71Sopenharmony_ci 4640e41f4b71Sopenharmony_ci| 类型 | 说明 | 4641e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 4642e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 4643e41f4b71Sopenharmony_ci 4644e41f4b71Sopenharmony_ci**错误码:** 4645e41f4b71Sopenharmony_ci 4646e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4647e41f4b71Sopenharmony_ci 4648e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4649e41f4b71Sopenharmony_ci| --------------- | --------------- | 4650e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 4651e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4652e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4653e41f4b71Sopenharmony_ci 4654e41f4b71Sopenharmony_ci**示例:** 4655e41f4b71Sopenharmony_ci 4656e41f4b71Sopenharmony_ci```ts 4657e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4658e41f4b71Sopenharmony_ci 4659e41f4b71Sopenharmony_cifunction startCaptureSession(session: camera.Session): void { 4660e41f4b71Sopenharmony_ci session.start().then(() => { 4661e41f4b71Sopenharmony_ci console.info('Promise returned to indicate the session start success.'); 4662e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4663e41f4b71Sopenharmony_ci console.error(`Failed to start the session, error code: ${error.code}.`); 4664e41f4b71Sopenharmony_ci }); 4665e41f4b71Sopenharmony_ci} 4666e41f4b71Sopenharmony_ci``` 4667e41f4b71Sopenharmony_ci 4668e41f4b71Sopenharmony_ci### stop<sup>11+</sup> 4669e41f4b71Sopenharmony_ci 4670e41f4b71Sopenharmony_cistop(callback: AsyncCallback\<void\>): void 4671e41f4b71Sopenharmony_ci 4672e41f4b71Sopenharmony_ci停止会话工作,通过注册回调函数获取结果。使用callback异步回调。 4673e41f4b71Sopenharmony_ci 4674e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4675e41f4b71Sopenharmony_ci 4676e41f4b71Sopenharmony_ci**参数:** 4677e41f4b71Sopenharmony_ci 4678e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4679e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------- | 4680e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4681e41f4b71Sopenharmony_ci 4682e41f4b71Sopenharmony_ci**错误码:** 4683e41f4b71Sopenharmony_ci 4684e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4685e41f4b71Sopenharmony_ci 4686e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4687e41f4b71Sopenharmony_ci| --------------- | --------------- | 4688e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4689e41f4b71Sopenharmony_ci 4690e41f4b71Sopenharmony_ci**示例:** 4691e41f4b71Sopenharmony_ci 4692e41f4b71Sopenharmony_ci```ts 4693e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4694e41f4b71Sopenharmony_ci 4695e41f4b71Sopenharmony_cifunction stopCaptureSession(session: camera.Session): void { 4696e41f4b71Sopenharmony_ci session.stop((err: BusinessError) => { 4697e41f4b71Sopenharmony_ci if (err) { 4698e41f4b71Sopenharmony_ci console.error(`Failed to stop the session, error code: ${err.code}.`); 4699e41f4b71Sopenharmony_ci return; 4700e41f4b71Sopenharmony_ci } 4701e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the session stop success.'); 4702e41f4b71Sopenharmony_ci }); 4703e41f4b71Sopenharmony_ci} 4704e41f4b71Sopenharmony_ci``` 4705e41f4b71Sopenharmony_ci 4706e41f4b71Sopenharmony_ci### stop<sup>11+</sup> 4707e41f4b71Sopenharmony_ci 4708e41f4b71Sopenharmony_cistop(): Promise\<void\> 4709e41f4b71Sopenharmony_ci 4710e41f4b71Sopenharmony_ci停止会话工作,通过Promise获取结果。 4711e41f4b71Sopenharmony_ci 4712e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4713e41f4b71Sopenharmony_ci 4714e41f4b71Sopenharmony_ci**返回值:** 4715e41f4b71Sopenharmony_ci 4716e41f4b71Sopenharmony_ci| 类型 | 说明 | 4717e41f4b71Sopenharmony_ci| -------------- |-------------------| 4718e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 4719e41f4b71Sopenharmony_ci 4720e41f4b71Sopenharmony_ci**错误码:** 4721e41f4b71Sopenharmony_ci 4722e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4723e41f4b71Sopenharmony_ci 4724e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4725e41f4b71Sopenharmony_ci| --------------- | --------------- | 4726e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4727e41f4b71Sopenharmony_ci 4728e41f4b71Sopenharmony_ci**示例:** 4729e41f4b71Sopenharmony_ci 4730e41f4b71Sopenharmony_ci```ts 4731e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4732e41f4b71Sopenharmony_ci 4733e41f4b71Sopenharmony_cifunction stopCaptureSession(session: camera.Session): void { 4734e41f4b71Sopenharmony_ci session.stop().then(() => { 4735e41f4b71Sopenharmony_ci console.info('Promise returned to indicate the session stop success.'); 4736e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4737e41f4b71Sopenharmony_ci console.error(`Failed to stop the session, error code: ${error.code}.`); 4738e41f4b71Sopenharmony_ci }); 4739e41f4b71Sopenharmony_ci} 4740e41f4b71Sopenharmony_ci``` 4741e41f4b71Sopenharmony_ci 4742e41f4b71Sopenharmony_ci### release<sup>11+</sup> 4743e41f4b71Sopenharmony_ci 4744e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void\>): void 4745e41f4b71Sopenharmony_ci 4746e41f4b71Sopenharmony_ci释放会话资源,通过注册回调函数获取结果。使用callback异步回调。 4747e41f4b71Sopenharmony_ci 4748e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4749e41f4b71Sopenharmony_ci 4750e41f4b71Sopenharmony_ci**参数:** 4751e41f4b71Sopenharmony_ci 4752e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4753e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 4754e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4755e41f4b71Sopenharmony_ci 4756e41f4b71Sopenharmony_ci**错误码:** 4757e41f4b71Sopenharmony_ci 4758e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4759e41f4b71Sopenharmony_ci 4760e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4761e41f4b71Sopenharmony_ci| --------------- | --------------- | 4762e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4763e41f4b71Sopenharmony_ci 4764e41f4b71Sopenharmony_ci**示例:** 4765e41f4b71Sopenharmony_ci 4766e41f4b71Sopenharmony_ci```ts 4767e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4768e41f4b71Sopenharmony_ci 4769e41f4b71Sopenharmony_cifunction releaseCaptureSession(session: camera.Session): void { 4770e41f4b71Sopenharmony_ci session.release((err: BusinessError) => { 4771e41f4b71Sopenharmony_ci if (err) { 4772e41f4b71Sopenharmony_ci console.error(`Failed to release the session instance, error code: ${err.code}.`); 4773e41f4b71Sopenharmony_ci return; 4774e41f4b71Sopenharmony_ci } 4775e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the session instance is released successfully.'); 4776e41f4b71Sopenharmony_ci }); 4777e41f4b71Sopenharmony_ci} 4778e41f4b71Sopenharmony_ci``` 4779e41f4b71Sopenharmony_ci 4780e41f4b71Sopenharmony_ci### release<sup>11+</sup> 4781e41f4b71Sopenharmony_ci 4782e41f4b71Sopenharmony_cirelease(): Promise\<void\> 4783e41f4b71Sopenharmony_ci 4784e41f4b71Sopenharmony_ci释放会话资源,通过Promise获取结果。 4785e41f4b71Sopenharmony_ci 4786e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4787e41f4b71Sopenharmony_ci 4788e41f4b71Sopenharmony_ci**返回值:** 4789e41f4b71Sopenharmony_ci 4790e41f4b71Sopenharmony_ci| 类型 | 说明 | 4791e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 4792e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 4793e41f4b71Sopenharmony_ci 4794e41f4b71Sopenharmony_ci**错误码:** 4795e41f4b71Sopenharmony_ci 4796e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4797e41f4b71Sopenharmony_ci 4798e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4799e41f4b71Sopenharmony_ci| --------------- | --------------- | 4800e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 4801e41f4b71Sopenharmony_ci 4802e41f4b71Sopenharmony_ci**示例:** 4803e41f4b71Sopenharmony_ci 4804e41f4b71Sopenharmony_ci```ts 4805e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4806e41f4b71Sopenharmony_ci 4807e41f4b71Sopenharmony_cifunction releaseCaptureSession(session: camera.Session): void { 4808e41f4b71Sopenharmony_ci session.release().then(() => { 4809e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the session instance is released successfully.'); 4810e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 4811e41f4b71Sopenharmony_ci console.error(`Failed to release the session instance, error code: ${error.code}.`); 4812e41f4b71Sopenharmony_ci }); 4813e41f4b71Sopenharmony_ci} 4814e41f4b71Sopenharmony_ci``` 4815e41f4b71Sopenharmony_ci 4816e41f4b71Sopenharmony_ci## Flash<sup>11+</sup> 4817e41f4b71Sopenharmony_ci 4818e41f4b71Sopenharmony_ciFlash extends [FlashQuery](#flashquery12) 4819e41f4b71Sopenharmony_ci 4820e41f4b71Sopenharmony_ci闪光灯类,对设备闪光灯操作。 4821e41f4b71Sopenharmony_ci 4822e41f4b71Sopenharmony_ci### setFlashMode<sup>11+</sup> 4823e41f4b71Sopenharmony_ci 4824e41f4b71Sopenharmony_cisetFlashMode(flashMode: FlashMode): void 4825e41f4b71Sopenharmony_ci 4826e41f4b71Sopenharmony_ci设置闪光灯模式。 4827e41f4b71Sopenharmony_ci 4828e41f4b71Sopenharmony_ci进行设置之前,需要先检查: 4829e41f4b71Sopenharmony_ci 4830e41f4b71Sopenharmony_ci1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash11)。 4831e41f4b71Sopenharmony_ci2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported11)。 4832e41f4b71Sopenharmony_ci 4833e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4834e41f4b71Sopenharmony_ci 4835e41f4b71Sopenharmony_ci**参数:** 4836e41f4b71Sopenharmony_ci 4837e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4838e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | --------------------- | 4839e41f4b71Sopenharmony_ci| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。传参为null或者undefined,作为0处理,闪光灯关闭。 | 4840e41f4b71Sopenharmony_ci 4841e41f4b71Sopenharmony_ci**错误码:** 4842e41f4b71Sopenharmony_ci 4843e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4844e41f4b71Sopenharmony_ci 4845e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4846e41f4b71Sopenharmony_ci| --------------- | --------------- | 4847e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4848e41f4b71Sopenharmony_ci 4849e41f4b71Sopenharmony_ci**示例:** 4850e41f4b71Sopenharmony_ci 4851e41f4b71Sopenharmony_ci```ts 4852e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4853e41f4b71Sopenharmony_ci 4854e41f4b71Sopenharmony_cifunction setFlashMode(photoSession: camera.PhotoSession): void { 4855e41f4b71Sopenharmony_ci try { 4856e41f4b71Sopenharmony_ci photoSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO); 4857e41f4b71Sopenharmony_ci } catch (error) { 4858e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4859e41f4b71Sopenharmony_ci let err = error as BusinessError; 4860e41f4b71Sopenharmony_ci console.error(`The setFlashMode call failed. error code: ${err.code}`); 4861e41f4b71Sopenharmony_ci } 4862e41f4b71Sopenharmony_ci} 4863e41f4b71Sopenharmony_ci``` 4864e41f4b71Sopenharmony_ci 4865e41f4b71Sopenharmony_ci### getFlashMode<sup>11+</sup> 4866e41f4b71Sopenharmony_ci 4867e41f4b71Sopenharmony_cigetFlashMode(): FlashMode 4868e41f4b71Sopenharmony_ci 4869e41f4b71Sopenharmony_ci获取当前设备的闪光灯模式。 4870e41f4b71Sopenharmony_ci 4871e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4872e41f4b71Sopenharmony_ci 4873e41f4b71Sopenharmony_ci**返回值:** 4874e41f4b71Sopenharmony_ci 4875e41f4b71Sopenharmony_ci| 类型 | 说明 | 4876e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 4877e41f4b71Sopenharmony_ci| [FlashMode](#flashmode) | 获取当前设备的闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4878e41f4b71Sopenharmony_ci 4879e41f4b71Sopenharmony_ci**错误码:** 4880e41f4b71Sopenharmony_ci 4881e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4882e41f4b71Sopenharmony_ci 4883e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4884e41f4b71Sopenharmony_ci| --------------- | --------------- | 4885e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 4886e41f4b71Sopenharmony_ci 4887e41f4b71Sopenharmony_ci**示例:** 4888e41f4b71Sopenharmony_ci 4889e41f4b71Sopenharmony_ci```ts 4890e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4891e41f4b71Sopenharmony_ci 4892e41f4b71Sopenharmony_cifunction getFlashMode(photoSession: camera.PhotoSession): camera.FlashMode | undefined { 4893e41f4b71Sopenharmony_ci let flashMode: camera.FlashMode | undefined = undefined; 4894e41f4b71Sopenharmony_ci try { 4895e41f4b71Sopenharmony_ci flashMode = photoSession.getFlashMode(); 4896e41f4b71Sopenharmony_ci } catch (error) { 4897e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4898e41f4b71Sopenharmony_ci let err = error as BusinessError; 4899e41f4b71Sopenharmony_ci console.error(`The getFlashMode call failed.error code: ${err.code}`); 4900e41f4b71Sopenharmony_ci } 4901e41f4b71Sopenharmony_ci return flashMode; 4902e41f4b71Sopenharmony_ci} 4903e41f4b71Sopenharmony_ci``` 4904e41f4b71Sopenharmony_ci 4905e41f4b71Sopenharmony_ci## FlashQuery<sup>12+</sup> 4906e41f4b71Sopenharmony_ci 4907e41f4b71Sopenharmony_ci提供了查询设备的闪光灯状态和模式的能力。 4908e41f4b71Sopenharmony_ci 4909e41f4b71Sopenharmony_ci### hasFlash<sup>11+</sup> 4910e41f4b71Sopenharmony_ci 4911e41f4b71Sopenharmony_cihasFlash(): boolean 4912e41f4b71Sopenharmony_ci 4913e41f4b71Sopenharmony_ci检测是否有闪光灯,通过注册回调函数获取结果。 4914e41f4b71Sopenharmony_ci 4915e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4916e41f4b71Sopenharmony_ci 4917e41f4b71Sopenharmony_ci**返回值:** 4918e41f4b71Sopenharmony_ci 4919e41f4b71Sopenharmony_ci| 类型 | 说明 | 4920e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 4921e41f4b71Sopenharmony_ci| boolean | 返回true表示设备支持闪光灯,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4922e41f4b71Sopenharmony_ci 4923e41f4b71Sopenharmony_ci**错误码:** 4924e41f4b71Sopenharmony_ci 4925e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4926e41f4b71Sopenharmony_ci 4927e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4928e41f4b71Sopenharmony_ci| --------------- | --------------- | 4929e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 4930e41f4b71Sopenharmony_ci 4931e41f4b71Sopenharmony_ci**示例:** 4932e41f4b71Sopenharmony_ci 4933e41f4b71Sopenharmony_ci```ts 4934e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4935e41f4b71Sopenharmony_ci 4936e41f4b71Sopenharmony_cifunction hasFlash(photoSession: camera.PhotoSession): boolean { 4937e41f4b71Sopenharmony_ci let status: boolean = false; 4938e41f4b71Sopenharmony_ci try { 4939e41f4b71Sopenharmony_ci status = photoSession.hasFlash(); 4940e41f4b71Sopenharmony_ci } catch (error) { 4941e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4942e41f4b71Sopenharmony_ci let err = error as BusinessError; 4943e41f4b71Sopenharmony_ci console.error(`The hasFlash call failed. error code: ${err.code}`); 4944e41f4b71Sopenharmony_ci } 4945e41f4b71Sopenharmony_ci return status; 4946e41f4b71Sopenharmony_ci} 4947e41f4b71Sopenharmony_ci``` 4948e41f4b71Sopenharmony_ci 4949e41f4b71Sopenharmony_ci### isFlashModeSupported<sup>11+</sup> 4950e41f4b71Sopenharmony_ci 4951e41f4b71Sopenharmony_ciisFlashModeSupported(flashMode: FlashMode): boolean 4952e41f4b71Sopenharmony_ci 4953e41f4b71Sopenharmony_ci检测闪光灯模式是否支持。 4954e41f4b71Sopenharmony_ci 4955e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 4956e41f4b71Sopenharmony_ci 4957e41f4b71Sopenharmony_ci**参数:** 4958e41f4b71Sopenharmony_ci 4959e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 4960e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | --------------------------------- | 4961e41f4b71Sopenharmony_ci| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。传参为null或者undefined,作为0处理,闪光灯关闭。 | 4962e41f4b71Sopenharmony_ci 4963e41f4b71Sopenharmony_ci**返回值:** 4964e41f4b71Sopenharmony_ci 4965e41f4b71Sopenharmony_ci| 类型 | 说明 | 4966e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 4967e41f4b71Sopenharmony_ci| boolean | 返回true表示支持该闪光灯模式,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 4968e41f4b71Sopenharmony_ci 4969e41f4b71Sopenharmony_ci**错误码:** 4970e41f4b71Sopenharmony_ci 4971e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 4972e41f4b71Sopenharmony_ci 4973e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 4974e41f4b71Sopenharmony_ci| --------------- | --------------- | 4975e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 4976e41f4b71Sopenharmony_ci 4977e41f4b71Sopenharmony_ci**示例:** 4978e41f4b71Sopenharmony_ci 4979e41f4b71Sopenharmony_ci```ts 4980e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 4981e41f4b71Sopenharmony_ci 4982e41f4b71Sopenharmony_cifunction isFlashModeSupported(photoSession: camera.PhotoSession): boolean { 4983e41f4b71Sopenharmony_ci let status: boolean = false; 4984e41f4b71Sopenharmony_ci try { 4985e41f4b71Sopenharmony_ci status = photoSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO); 4986e41f4b71Sopenharmony_ci } catch (error) { 4987e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 4988e41f4b71Sopenharmony_ci let err = error as BusinessError; 4989e41f4b71Sopenharmony_ci console.error(`The isFlashModeSupported call failed. error code: ${err.code}`); 4990e41f4b71Sopenharmony_ci } 4991e41f4b71Sopenharmony_ci return status; 4992e41f4b71Sopenharmony_ci} 4993e41f4b71Sopenharmony_ci``` 4994e41f4b71Sopenharmony_ci 4995e41f4b71Sopenharmony_ci## AutoExposure<sup>11+</sup> 4996e41f4b71Sopenharmony_ci 4997e41f4b71Sopenharmony_ciAutoExposure extends [AutoExposureQuery](#autoexposurequery12) 4998e41f4b71Sopenharmony_ci 4999e41f4b71Sopenharmony_ci自动曝光类,对设备自动曝光(AE)操作。 5000e41f4b71Sopenharmony_ci 5001e41f4b71Sopenharmony_ci### getExposureMode<sup>11+</sup> 5002e41f4b71Sopenharmony_ci 5003e41f4b71Sopenharmony_cigetExposureMode(): ExposureMode 5004e41f4b71Sopenharmony_ci 5005e41f4b71Sopenharmony_ci获取当前曝光模式。 5006e41f4b71Sopenharmony_ci 5007e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5008e41f4b71Sopenharmony_ci 5009e41f4b71Sopenharmony_ci**返回值:** 5010e41f4b71Sopenharmony_ci 5011e41f4b71Sopenharmony_ci| 类型 | 说明 | 5012e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5013e41f4b71Sopenharmony_ci| [ExposureMode](#exposuremode) | 获取当前曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5014e41f4b71Sopenharmony_ci 5015e41f4b71Sopenharmony_ci**错误码:** 5016e41f4b71Sopenharmony_ci 5017e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5018e41f4b71Sopenharmony_ci 5019e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5020e41f4b71Sopenharmony_ci| --------------- | --------------- | 5021e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5022e41f4b71Sopenharmony_ci 5023e41f4b71Sopenharmony_ci**示例:** 5024e41f4b71Sopenharmony_ci 5025e41f4b71Sopenharmony_ci```ts 5026e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5027e41f4b71Sopenharmony_ci 5028e41f4b71Sopenharmony_cifunction getExposureMode(photoSession: camera.PhotoSession): camera.ExposureMode | undefined { 5029e41f4b71Sopenharmony_ci let exposureMode: camera.ExposureMode | undefined = undefined; 5030e41f4b71Sopenharmony_ci try { 5031e41f4b71Sopenharmony_ci exposureMode = photoSession.getExposureMode(); 5032e41f4b71Sopenharmony_ci } catch (error) { 5033e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5034e41f4b71Sopenharmony_ci let err = error as BusinessError; 5035e41f4b71Sopenharmony_ci console.error(`The getExposureMode call failed. error code: ${err.code}`); 5036e41f4b71Sopenharmony_ci } 5037e41f4b71Sopenharmony_ci return exposureMode; 5038e41f4b71Sopenharmony_ci} 5039e41f4b71Sopenharmony_ci``` 5040e41f4b71Sopenharmony_ci 5041e41f4b71Sopenharmony_ci### setExposureMode<sup>11+</sup> 5042e41f4b71Sopenharmony_ci 5043e41f4b71Sopenharmony_cisetExposureMode(aeMode: ExposureMode): void 5044e41f4b71Sopenharmony_ci 5045e41f4b71Sopenharmony_ci设置曝光模式。进行设置之前,需要先检查设备是否支持指定的曝光模式,可使用方法[isExposureModeSupported](#isexposuremodesupported11)。 5046e41f4b71Sopenharmony_ci 5047e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5048e41f4b71Sopenharmony_ci 5049e41f4b71Sopenharmony_ci**参数:** 5050e41f4b71Sopenharmony_ci 5051e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5052e41f4b71Sopenharmony_ci| -------- | -------------------------------| ---- | ----------------------- | 5053e41f4b71Sopenharmony_ci| aeMode | [ExposureMode](#exposuremode) | 是 | 曝光模式。传参为null或者undefined,作为0处理,曝光锁定。 | 5054e41f4b71Sopenharmony_ci 5055e41f4b71Sopenharmony_ci**错误码:** 5056e41f4b71Sopenharmony_ci 5057e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5058e41f4b71Sopenharmony_ci 5059e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5060e41f4b71Sopenharmony_ci| --------------- | --------------- | 5061e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5062e41f4b71Sopenharmony_ci 5063e41f4b71Sopenharmony_ci**示例:** 5064e41f4b71Sopenharmony_ci 5065e41f4b71Sopenharmony_ci```ts 5066e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5067e41f4b71Sopenharmony_ci 5068e41f4b71Sopenharmony_cifunction setExposureMode(photoSession: camera.PhotoSession): void { 5069e41f4b71Sopenharmony_ci try { 5070e41f4b71Sopenharmony_ci photoSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED); 5071e41f4b71Sopenharmony_ci } catch (error) { 5072e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5073e41f4b71Sopenharmony_ci let err = error as BusinessError; 5074e41f4b71Sopenharmony_ci console.error(`The setExposureMode call failed. error code: ${err.code}`); 5075e41f4b71Sopenharmony_ci } 5076e41f4b71Sopenharmony_ci} 5077e41f4b71Sopenharmony_ci``` 5078e41f4b71Sopenharmony_ci 5079e41f4b71Sopenharmony_ci### getMeteringPoint<sup>11+</sup> 5080e41f4b71Sopenharmony_ci 5081e41f4b71Sopenharmony_cigetMeteringPoint(): Point 5082e41f4b71Sopenharmony_ci 5083e41f4b71Sopenharmony_ci查询曝光区域中心点。 5084e41f4b71Sopenharmony_ci 5085e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5086e41f4b71Sopenharmony_ci 5087e41f4b71Sopenharmony_ci**返回值:** 5088e41f4b71Sopenharmony_ci 5089e41f4b71Sopenharmony_ci| 类型 | 说明 | 5090e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5091e41f4b71Sopenharmony_ci| [Point](#point) | 获取当前曝光点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5092e41f4b71Sopenharmony_ci 5093e41f4b71Sopenharmony_ci**错误码:** 5094e41f4b71Sopenharmony_ci 5095e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5096e41f4b71Sopenharmony_ci 5097e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5098e41f4b71Sopenharmony_ci| --------------- | --------------- | 5099e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5100e41f4b71Sopenharmony_ci 5101e41f4b71Sopenharmony_ci**示例:** 5102e41f4b71Sopenharmony_ci 5103e41f4b71Sopenharmony_ci```ts 5104e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5105e41f4b71Sopenharmony_ci 5106e41f4b71Sopenharmony_cifunction getMeteringPoint(photoSession: camera.PhotoSession): camera.Point | undefined { 5107e41f4b71Sopenharmony_ci let exposurePoint: camera.Point | undefined = undefined; 5108e41f4b71Sopenharmony_ci try { 5109e41f4b71Sopenharmony_ci exposurePoint = photoSession.getMeteringPoint(); 5110e41f4b71Sopenharmony_ci } catch (error) { 5111e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5112e41f4b71Sopenharmony_ci let err = error as BusinessError; 5113e41f4b71Sopenharmony_ci console.error(`The getMeteringPoint call failed. error code: ${err.code}`); 5114e41f4b71Sopenharmony_ci } 5115e41f4b71Sopenharmony_ci return exposurePoint; 5116e41f4b71Sopenharmony_ci} 5117e41f4b71Sopenharmony_ci``` 5118e41f4b71Sopenharmony_ci 5119e41f4b71Sopenharmony_ci### setMeteringPoint<sup>11+</sup> 5120e41f4b71Sopenharmony_ci 5121e41f4b71Sopenharmony_cisetMeteringPoint(point: Point): void 5122e41f4b71Sopenharmony_ci 5123e41f4b71Sopenharmony_ci设置曝光区域中心点,曝光点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。<br>此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以<br>设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y},<br>则转换后的坐标点为{y/h,1-x/w}。 5124e41f4b71Sopenharmony_ci 5125e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5126e41f4b71Sopenharmony_ci 5127e41f4b71Sopenharmony_ci**参数:** 5128e41f4b71Sopenharmony_ci 5129e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5130e41f4b71Sopenharmony_ci| ------------- | -------------------------------| ---- | ------------------- | 5131e41f4b71Sopenharmony_ci| point | [Point](#point) | 是 | 曝光点,x、y设置范围应在[0,1]之内,超过范围,如果小于0设置0,大于1设置1。 | 5132e41f4b71Sopenharmony_ci 5133e41f4b71Sopenharmony_ci**错误码:** 5134e41f4b71Sopenharmony_ci 5135e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5136e41f4b71Sopenharmony_ci 5137e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5138e41f4b71Sopenharmony_ci| --------------- | --------------- | 5139e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5140e41f4b71Sopenharmony_ci 5141e41f4b71Sopenharmony_ci**示例:** 5142e41f4b71Sopenharmony_ci 5143e41f4b71Sopenharmony_ci```ts 5144e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5145e41f4b71Sopenharmony_ci 5146e41f4b71Sopenharmony_cifunction setMeteringPoint(photoSession: camera.PhotoSession): void { 5147e41f4b71Sopenharmony_ci const point: camera.Point = {x: 1, y: 1}; 5148e41f4b71Sopenharmony_ci try { 5149e41f4b71Sopenharmony_ci photoSession.setMeteringPoint(point); 5150e41f4b71Sopenharmony_ci } catch (error) { 5151e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5152e41f4b71Sopenharmony_ci let err = error as BusinessError; 5153e41f4b71Sopenharmony_ci console.error(`The setMeteringPoint call failed. error code: ${err.code}`); 5154e41f4b71Sopenharmony_ci } 5155e41f4b71Sopenharmony_ci} 5156e41f4b71Sopenharmony_ci``` 5157e41f4b71Sopenharmony_ci 5158e41f4b71Sopenharmony_ci### setExposureBias<sup>11+</sup> 5159e41f4b71Sopenharmony_ci 5160e41f4b71Sopenharmony_cisetExposureBias(exposureBias: number): void 5161e41f4b71Sopenharmony_ci 5162e41f4b71Sopenharmony_ci设置曝光补偿,曝光补偿值(EV)。 5163e41f4b71Sopenharmony_ci 5164e41f4b71Sopenharmony_ci进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrange11)查询支持的范围。 5165e41f4b71Sopenharmony_ci 5166e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5167e41f4b71Sopenharmony_ci 5168e41f4b71Sopenharmony_ci**参数:** 5169e41f4b71Sopenharmony_ci 5170e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5171e41f4b71Sopenharmony_ci| -------- | -------------------------------| ---- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 5172e41f4b71Sopenharmony_ci| exposureBias | number | 是 | 曝光补偿,[getExposureBiasRange](#getexposurebiasrange11)查询支持的范围,如果设置超过支持范围的值,自动匹配到就近临界点。<br>曝光补偿存在步长,如步长为0.5。则设置1.2时,获取到实际生效曝光补偿为1.0。<br>接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5173e41f4b71Sopenharmony_ci 5174e41f4b71Sopenharmony_ci**错误码:** 5175e41f4b71Sopenharmony_ci 5176e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5177e41f4b71Sopenharmony_ci 5178e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5179e41f4b71Sopenharmony_ci| --------------- | --------------- | 5180e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 5181e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5182e41f4b71Sopenharmony_ci 5183e41f4b71Sopenharmony_ci**示例:** 5184e41f4b71Sopenharmony_ci 5185e41f4b71Sopenharmony_ci```ts 5186e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5187e41f4b71Sopenharmony_ci 5188e41f4b71Sopenharmony_cifunction setExposureBias(photoSession: camera.PhotoSession, biasRangeArray: Array<number>): void { 5189e41f4b71Sopenharmony_ci if (biasRangeArray && biasRangeArray.length > 0) { 5190e41f4b71Sopenharmony_ci let exposureBias = biasRangeArray[0]; 5191e41f4b71Sopenharmony_ci try { 5192e41f4b71Sopenharmony_ci photoSession.setExposureBias(exposureBias); 5193e41f4b71Sopenharmony_ci } catch (error) { 5194e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5195e41f4b71Sopenharmony_ci let err = error as BusinessError; 5196e41f4b71Sopenharmony_ci console.error(`The setExposureBias call failed. error code: ${err.code}`); 5197e41f4b71Sopenharmony_ci } 5198e41f4b71Sopenharmony_ci } 5199e41f4b71Sopenharmony_ci} 5200e41f4b71Sopenharmony_ci``` 5201e41f4b71Sopenharmony_ci 5202e41f4b71Sopenharmony_ci### getExposureValue<sup>11+</sup> 5203e41f4b71Sopenharmony_ci 5204e41f4b71Sopenharmony_cigetExposureValue(): number 5205e41f4b71Sopenharmony_ci 5206e41f4b71Sopenharmony_ci查询当前曝光值。 5207e41f4b71Sopenharmony_ci 5208e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5209e41f4b71Sopenharmony_ci 5210e41f4b71Sopenharmony_ci**返回值:** 5211e41f4b71Sopenharmony_ci 5212e41f4b71Sopenharmony_ci| 类型 | 说明 | 5213e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5214e41f4b71Sopenharmony_ci| number | 获取曝光值。曝光补偿存在步长,如步长为0.5。则设置1.2时,获取到实际生效曝光补偿为1.0。<br>接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5215e41f4b71Sopenharmony_ci 5216e41f4b71Sopenharmony_ci**错误码:** 5217e41f4b71Sopenharmony_ci 5218e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5219e41f4b71Sopenharmony_ci 5220e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5221e41f4b71Sopenharmony_ci| --------------- | --------------- | 5222e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5223e41f4b71Sopenharmony_ci 5224e41f4b71Sopenharmony_ci**示例:** 5225e41f4b71Sopenharmony_ci 5226e41f4b71Sopenharmony_ci```ts 5227e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5228e41f4b71Sopenharmony_ci 5229e41f4b71Sopenharmony_cifunction getExposureValue(photoSession: camera.PhotoSession): number { 5230e41f4b71Sopenharmony_ci const invalidValue: number = -1; 5231e41f4b71Sopenharmony_ci let exposureValue: number = invalidValue; 5232e41f4b71Sopenharmony_ci try { 5233e41f4b71Sopenharmony_ci exposureValue = photoSession.getExposureValue(); 5234e41f4b71Sopenharmony_ci } catch (error) { 5235e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5236e41f4b71Sopenharmony_ci let err = error as BusinessError; 5237e41f4b71Sopenharmony_ci console.error(`The getExposureValue call failed. error code: ${err.code}`); 5238e41f4b71Sopenharmony_ci } 5239e41f4b71Sopenharmony_ci return exposureValue; 5240e41f4b71Sopenharmony_ci} 5241e41f4b71Sopenharmony_ci``` 5242e41f4b71Sopenharmony_ci 5243e41f4b71Sopenharmony_ci## AutoExposureQuery<sup>12+</sup> 5244e41f4b71Sopenharmony_ci 5245e41f4b71Sopenharmony_ci提供了针对设备的自动曝光特性提供了一系列查询功能。 5246e41f4b71Sopenharmony_ci 5247e41f4b71Sopenharmony_ci### isExposureModeSupported<sup>11+</sup> 5248e41f4b71Sopenharmony_ci 5249e41f4b71Sopenharmony_ciisExposureModeSupported(aeMode: ExposureMode): boolean 5250e41f4b71Sopenharmony_ci 5251e41f4b71Sopenharmony_ci检测曝光模式是否支持。 5252e41f4b71Sopenharmony_ci 5253e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5254e41f4b71Sopenharmony_ci 5255e41f4b71Sopenharmony_ci**参数:** 5256e41f4b71Sopenharmony_ci 5257e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5258e41f4b71Sopenharmony_ci| -------- | -------------------------------| ---- | ----------------------------- | 5259e41f4b71Sopenharmony_ci| aeMode | [ExposureMode](#exposuremode) | 是 | 曝光模式。传参为null或者undefined,作为0处理,曝光锁定。 | 5260e41f4b71Sopenharmony_ci 5261e41f4b71Sopenharmony_ci**返回值:** 5262e41f4b71Sopenharmony_ci 5263e41f4b71Sopenharmony_ci| 类型 | 说明 | 5264e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5265e41f4b71Sopenharmony_ci| boolean | 获取是否支持曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5266e41f4b71Sopenharmony_ci 5267e41f4b71Sopenharmony_ci**错误码:** 5268e41f4b71Sopenharmony_ci 5269e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5270e41f4b71Sopenharmony_ci 5271e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5272e41f4b71Sopenharmony_ci| --------------- | --------------- | 5273e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 5274e41f4b71Sopenharmony_ci 5275e41f4b71Sopenharmony_ci**示例:** 5276e41f4b71Sopenharmony_ci 5277e41f4b71Sopenharmony_ci```ts 5278e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5279e41f4b71Sopenharmony_ci 5280e41f4b71Sopenharmony_cifunction isExposureModeSupported(photoSession: camera.PhotoSession): boolean { 5281e41f4b71Sopenharmony_ci let isSupported: boolean = false; 5282e41f4b71Sopenharmony_ci try { 5283e41f4b71Sopenharmony_ci isSupported = photoSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED); 5284e41f4b71Sopenharmony_ci } catch (error) { 5285e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5286e41f4b71Sopenharmony_ci let err = error as BusinessError; 5287e41f4b71Sopenharmony_ci console.error(`The isExposureModeSupported call failed. error code: ${err.code}`); 5288e41f4b71Sopenharmony_ci } 5289e41f4b71Sopenharmony_ci return isSupported; 5290e41f4b71Sopenharmony_ci} 5291e41f4b71Sopenharmony_ci``` 5292e41f4b71Sopenharmony_ci 5293e41f4b71Sopenharmony_ci### getExposureBiasRange<sup>11+</sup> 5294e41f4b71Sopenharmony_ci 5295e41f4b71Sopenharmony_cigetExposureBiasRange(): Array\<number\> 5296e41f4b71Sopenharmony_ci 5297e41f4b71Sopenharmony_ci查询曝光补偿范围。 5298e41f4b71Sopenharmony_ci 5299e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5300e41f4b71Sopenharmony_ci 5301e41f4b71Sopenharmony_ci**返回值:** 5302e41f4b71Sopenharmony_ci 5303e41f4b71Sopenharmony_ci| 类型 | 说明 | 5304e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5305e41f4b71Sopenharmony_ci| Array\<number\> | 获取补偿范围的数组。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5306e41f4b71Sopenharmony_ci 5307e41f4b71Sopenharmony_ci**错误码:** 5308e41f4b71Sopenharmony_ci 5309e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5310e41f4b71Sopenharmony_ci 5311e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5312e41f4b71Sopenharmony_ci| --------------- | --------------- | 5313e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 5314e41f4b71Sopenharmony_ci 5315e41f4b71Sopenharmony_ci**示例:** 5316e41f4b71Sopenharmony_ci 5317e41f4b71Sopenharmony_ci```ts 5318e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5319e41f4b71Sopenharmony_ci 5320e41f4b71Sopenharmony_cifunction getExposureBiasRange(photoSession: camera.PhotoSession): Array<number> { 5321e41f4b71Sopenharmony_ci let biasRangeArray: Array<number> = []; 5322e41f4b71Sopenharmony_ci try { 5323e41f4b71Sopenharmony_ci biasRangeArray = photoSession.getExposureBiasRange(); 5324e41f4b71Sopenharmony_ci } catch (error) { 5325e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5326e41f4b71Sopenharmony_ci let err = error as BusinessError; 5327e41f4b71Sopenharmony_ci console.error(`The getExposureBiasRange call failed. error code: ${err.code}`); 5328e41f4b71Sopenharmony_ci } 5329e41f4b71Sopenharmony_ci return biasRangeArray; 5330e41f4b71Sopenharmony_ci} 5331e41f4b71Sopenharmony_ci``` 5332e41f4b71Sopenharmony_ci 5333e41f4b71Sopenharmony_ci## Focus<sup>11+</sup> 5334e41f4b71Sopenharmony_ci 5335e41f4b71Sopenharmony_ciFocus extends [FocusQuery](#focusquery12) 5336e41f4b71Sopenharmony_ci 5337e41f4b71Sopenharmony_ci对焦类,对设备对焦操作。 5338e41f4b71Sopenharmony_ci 5339e41f4b71Sopenharmony_ci### setFocusMode<sup>11+</sup> 5340e41f4b71Sopenharmony_ci 5341e41f4b71Sopenharmony_cisetFocusMode(afMode: FocusMode): void 5342e41f4b71Sopenharmony_ci 5343e41f4b71Sopenharmony_ci设置对焦模式。 5344e41f4b71Sopenharmony_ci 5345e41f4b71Sopenharmony_ci进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported11)。 5346e41f4b71Sopenharmony_ci 5347e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5348e41f4b71Sopenharmony_ci 5349e41f4b71Sopenharmony_ci**参数:** 5350e41f4b71Sopenharmony_ci 5351e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5352e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------- | 5353e41f4b71Sopenharmony_ci| afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。传参为null或者undefined,作为0处理,手动对焦模式。 | 5354e41f4b71Sopenharmony_ci 5355e41f4b71Sopenharmony_ci**错误码:** 5356e41f4b71Sopenharmony_ci 5357e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5358e41f4b71Sopenharmony_ci 5359e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5360e41f4b71Sopenharmony_ci| --------------- | --------------- | 5361e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5362e41f4b71Sopenharmony_ci 5363e41f4b71Sopenharmony_ci**示例:** 5364e41f4b71Sopenharmony_ci 5365e41f4b71Sopenharmony_ci```ts 5366e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5367e41f4b71Sopenharmony_ci 5368e41f4b71Sopenharmony_cifunction setFocusMode(photoSession: camera.PhotoSession): void { 5369e41f4b71Sopenharmony_ci try { 5370e41f4b71Sopenharmony_ci photoSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO); 5371e41f4b71Sopenharmony_ci } catch (error) { 5372e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5373e41f4b71Sopenharmony_ci let err = error as BusinessError; 5374e41f4b71Sopenharmony_ci console.error(`The setFocusMode call failed. error code: ${err.code}`); 5375e41f4b71Sopenharmony_ci } 5376e41f4b71Sopenharmony_ci} 5377e41f4b71Sopenharmony_ci``` 5378e41f4b71Sopenharmony_ci 5379e41f4b71Sopenharmony_ci### getFocusMode<sup>11+</sup> 5380e41f4b71Sopenharmony_ci 5381e41f4b71Sopenharmony_cigetFocusMode(): FocusMode 5382e41f4b71Sopenharmony_ci 5383e41f4b71Sopenharmony_ci获取当前的对焦模式。 5384e41f4b71Sopenharmony_ci 5385e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5386e41f4b71Sopenharmony_ci 5387e41f4b71Sopenharmony_ci**返回值:** 5388e41f4b71Sopenharmony_ci 5389e41f4b71Sopenharmony_ci| 类型 | 说明 | 5390e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5391e41f4b71Sopenharmony_ci| [FocusMode](#focusmode) | 获取当前设备的焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5392e41f4b71Sopenharmony_ci 5393e41f4b71Sopenharmony_ci**错误码:** 5394e41f4b71Sopenharmony_ci 5395e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5396e41f4b71Sopenharmony_ci 5397e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5398e41f4b71Sopenharmony_ci| --------------- | --------------- | 5399e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5400e41f4b71Sopenharmony_ci 5401e41f4b71Sopenharmony_ci**示例:** 5402e41f4b71Sopenharmony_ci 5403e41f4b71Sopenharmony_ci```ts 5404e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5405e41f4b71Sopenharmony_ci 5406e41f4b71Sopenharmony_cifunction getFocusMode(photoSession: camera.PhotoSession): camera.FocusMode | undefined { 5407e41f4b71Sopenharmony_ci let afMode: camera.FocusMode | undefined = undefined; 5408e41f4b71Sopenharmony_ci try { 5409e41f4b71Sopenharmony_ci afMode = photoSession.getFocusMode(); 5410e41f4b71Sopenharmony_ci } catch (error) { 5411e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5412e41f4b71Sopenharmony_ci let err = error as BusinessError; 5413e41f4b71Sopenharmony_ci console.error(`The getFocusMode call failed. error code: ${err.code}`); 5414e41f4b71Sopenharmony_ci } 5415e41f4b71Sopenharmony_ci return afMode; 5416e41f4b71Sopenharmony_ci} 5417e41f4b71Sopenharmony_ci``` 5418e41f4b71Sopenharmony_ci 5419e41f4b71Sopenharmony_ci### setFocusPoint<sup>11+</sup> 5420e41f4b71Sopenharmony_ci 5421e41f4b71Sopenharmony_cisetFocusPoint(point: Point): void 5422e41f4b71Sopenharmony_ci 5423e41f4b71Sopenharmony_ci设置焦点,焦点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。<br>此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以<br>设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y},<br>则转换后的坐标点为{y/h,1-x/w}。 5424e41f4b71Sopenharmony_ci 5425e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5426e41f4b71Sopenharmony_ci 5427e41f4b71Sopenharmony_ci**参数:** 5428e41f4b71Sopenharmony_ci 5429e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5430e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------- | 5431e41f4b71Sopenharmony_ci| point | [Point](#point) | 是 | 焦点。x、y设置范围应在[0,1]之内,超过范围,如果小于0设置0,大于1设置1。 | 5432e41f4b71Sopenharmony_ci 5433e41f4b71Sopenharmony_ci**错误码:** 5434e41f4b71Sopenharmony_ci 5435e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5436e41f4b71Sopenharmony_ci 5437e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5438e41f4b71Sopenharmony_ci| --------------- | --------------- | 5439e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5440e41f4b71Sopenharmony_ci 5441e41f4b71Sopenharmony_ci**示例:** 5442e41f4b71Sopenharmony_ci 5443e41f4b71Sopenharmony_ci```ts 5444e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5445e41f4b71Sopenharmony_ci 5446e41f4b71Sopenharmony_cifunction setFocusPoint(photoSession: camera.PhotoSession): void { 5447e41f4b71Sopenharmony_ci const focusPoint: camera.Point = {x: 1, y: 1}; 5448e41f4b71Sopenharmony_ci try { 5449e41f4b71Sopenharmony_ci photoSession.setFocusPoint(focusPoint); 5450e41f4b71Sopenharmony_ci } catch (error) { 5451e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5452e41f4b71Sopenharmony_ci let err = error as BusinessError; 5453e41f4b71Sopenharmony_ci console.error(`The setFocusPoint call failed. error code: ${err.code}`); 5454e41f4b71Sopenharmony_ci } 5455e41f4b71Sopenharmony_ci} 5456e41f4b71Sopenharmony_ci``` 5457e41f4b71Sopenharmony_ci 5458e41f4b71Sopenharmony_ci### getFocusPoint<sup>11+</sup> 5459e41f4b71Sopenharmony_ci 5460e41f4b71Sopenharmony_cigetFocusPoint(): Point 5461e41f4b71Sopenharmony_ci 5462e41f4b71Sopenharmony_ci查询焦点。 5463e41f4b71Sopenharmony_ci 5464e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5465e41f4b71Sopenharmony_ci 5466e41f4b71Sopenharmony_ci**返回值:** 5467e41f4b71Sopenharmony_ci 5468e41f4b71Sopenharmony_ci| 类型 | 说明 | 5469e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5470e41f4b71Sopenharmony_ci| [Point](#point) | 用于获取当前焦点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5471e41f4b71Sopenharmony_ci 5472e41f4b71Sopenharmony_ci**错误码:** 5473e41f4b71Sopenharmony_ci 5474e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5475e41f4b71Sopenharmony_ci 5476e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5477e41f4b71Sopenharmony_ci| --------------- | --------------- | 5478e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5479e41f4b71Sopenharmony_ci 5480e41f4b71Sopenharmony_ci**示例:** 5481e41f4b71Sopenharmony_ci 5482e41f4b71Sopenharmony_ci```ts 5483e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5484e41f4b71Sopenharmony_ci 5485e41f4b71Sopenharmony_cifunction getFocusPoint(photoSession: camera.PhotoSession): camera.Point | undefined { 5486e41f4b71Sopenharmony_ci let point: camera.Point | undefined = undefined; 5487e41f4b71Sopenharmony_ci try { 5488e41f4b71Sopenharmony_ci point = photoSession.getFocusPoint(); 5489e41f4b71Sopenharmony_ci } catch (error) { 5490e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5491e41f4b71Sopenharmony_ci let err = error as BusinessError; 5492e41f4b71Sopenharmony_ci console.error(`The getFocusPoint call failed. error code: ${err.code}`); 5493e41f4b71Sopenharmony_ci } 5494e41f4b71Sopenharmony_ci return point; 5495e41f4b71Sopenharmony_ci} 5496e41f4b71Sopenharmony_ci``` 5497e41f4b71Sopenharmony_ci 5498e41f4b71Sopenharmony_ci### getFocalLength<sup>11+</sup> 5499e41f4b71Sopenharmony_ci 5500e41f4b71Sopenharmony_cigetFocalLength(): number 5501e41f4b71Sopenharmony_ci 5502e41f4b71Sopenharmony_ci查询焦距值。 5503e41f4b71Sopenharmony_ci 5504e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5505e41f4b71Sopenharmony_ci 5506e41f4b71Sopenharmony_ci**返回值:** 5507e41f4b71Sopenharmony_ci 5508e41f4b71Sopenharmony_ci| 类型 | 说明 | 5509e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5510e41f4b71Sopenharmony_ci| number | 用于获取当前焦距,单位mm。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5511e41f4b71Sopenharmony_ci 5512e41f4b71Sopenharmony_ci**错误码:** 5513e41f4b71Sopenharmony_ci 5514e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5515e41f4b71Sopenharmony_ci 5516e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5517e41f4b71Sopenharmony_ci| --------------- | --------------- | 5518e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5519e41f4b71Sopenharmony_ci 5520e41f4b71Sopenharmony_ci**示例:** 5521e41f4b71Sopenharmony_ci 5522e41f4b71Sopenharmony_ci```ts 5523e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5524e41f4b71Sopenharmony_ci 5525e41f4b71Sopenharmony_cifunction getFocalLength(photoSession: camera.PhotoSession): number { 5526e41f4b71Sopenharmony_ci const invalidValue: number = -1; 5527e41f4b71Sopenharmony_ci let focalLength: number = invalidValue; 5528e41f4b71Sopenharmony_ci try { 5529e41f4b71Sopenharmony_ci focalLength = photoSession.getFocalLength(); 5530e41f4b71Sopenharmony_ci } catch (error) { 5531e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5532e41f4b71Sopenharmony_ci let err = error as BusinessError; 5533e41f4b71Sopenharmony_ci console.error(`The getFocalLength call failed. error code: ${err.code}`); 5534e41f4b71Sopenharmony_ci } 5535e41f4b71Sopenharmony_ci return focalLength; 5536e41f4b71Sopenharmony_ci} 5537e41f4b71Sopenharmony_ci``` 5538e41f4b71Sopenharmony_ci 5539e41f4b71Sopenharmony_ci## FocusQuery<sup>12+</sup> 5540e41f4b71Sopenharmony_ci 5541e41f4b71Sopenharmony_ci提供了查询是否支持当前对焦模式的方法。 5542e41f4b71Sopenharmony_ci 5543e41f4b71Sopenharmony_ci### isFocusModeSupported<sup>11+</sup> 5544e41f4b71Sopenharmony_ci 5545e41f4b71Sopenharmony_ciisFocusModeSupported(afMode: FocusMode): boolean 5546e41f4b71Sopenharmony_ci 5547e41f4b71Sopenharmony_ci检测对焦模式是否支持。 5548e41f4b71Sopenharmony_ci 5549e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5550e41f4b71Sopenharmony_ci 5551e41f4b71Sopenharmony_ci**参数:** 5552e41f4b71Sopenharmony_ci 5553e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5554e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------- | 5555e41f4b71Sopenharmony_ci| afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。传参为null或者undefined,作为0处理,手动对焦模式。 | 5556e41f4b71Sopenharmony_ci 5557e41f4b71Sopenharmony_ci**返回值:** 5558e41f4b71Sopenharmony_ci 5559e41f4b71Sopenharmony_ci| 类型 | 说明 | 5560e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5561e41f4b71Sopenharmony_ci| boolean | 返回true表示支持该焦距模式,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5562e41f4b71Sopenharmony_ci 5563e41f4b71Sopenharmony_ci**错误码:** 5564e41f4b71Sopenharmony_ci 5565e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5566e41f4b71Sopenharmony_ci 5567e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5568e41f4b71Sopenharmony_ci| --------------- | --------------- | 5569e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 5570e41f4b71Sopenharmony_ci 5571e41f4b71Sopenharmony_ci**示例:** 5572e41f4b71Sopenharmony_ci 5573e41f4b71Sopenharmony_ci```ts 5574e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5575e41f4b71Sopenharmony_ci 5576e41f4b71Sopenharmony_cifunction isFocusModeSupported(photoSession: camera.PhotoSession): boolean { 5577e41f4b71Sopenharmony_ci let status: boolean = false; 5578e41f4b71Sopenharmony_ci try { 5579e41f4b71Sopenharmony_ci status = photoSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO); 5580e41f4b71Sopenharmony_ci } catch (error) { 5581e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5582e41f4b71Sopenharmony_ci let err = error as BusinessError; 5583e41f4b71Sopenharmony_ci console.error(`The isFocusModeSupported call failed. error code: ${err.code}`); 5584e41f4b71Sopenharmony_ci } 5585e41f4b71Sopenharmony_ci return status; 5586e41f4b71Sopenharmony_ci} 5587e41f4b71Sopenharmony_ci``` 5588e41f4b71Sopenharmony_ci 5589e41f4b71Sopenharmony_ci## SmoothZoomMode<sup>11+</sup> 5590e41f4b71Sopenharmony_ci 5591e41f4b71Sopenharmony_ci平滑变焦模式。 5592e41f4b71Sopenharmony_ci 5593e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5594e41f4b71Sopenharmony_ci 5595e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 5596e41f4b71Sopenharmony_ci| ------------ | ---- | -------------- | 5597e41f4b71Sopenharmony_ci| NORMAL | 0 | 贝塞尔曲线模式。 | 5598e41f4b71Sopenharmony_ci 5599e41f4b71Sopenharmony_ci## SmoothZoomInfo<sup>11+</sup> 5600e41f4b71Sopenharmony_ci 5601e41f4b71Sopenharmony_ci平滑变焦参数信息。 5602e41f4b71Sopenharmony_ci 5603e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5604e41f4b71Sopenharmony_ci 5605e41f4b71Sopenharmony_ci| 名称 | 类型 | 只读 | 可选 | 说明 | 5606e41f4b71Sopenharmony_ci| -------- | ---------- | -------- | -------- | ---------- | 5607e41f4b71Sopenharmony_ci| duration | number | 否 | 否 | 平滑变焦总时长,单位ms。 | 5608e41f4b71Sopenharmony_ci 5609e41f4b71Sopenharmony_ci## Zoom<sup>11+</sup> 5610e41f4b71Sopenharmony_ci 5611e41f4b71Sopenharmony_ciZoom extends [ZoomQuery](#zoomquery12) 5612e41f4b71Sopenharmony_ci 5613e41f4b71Sopenharmony_ci变焦类,对设备变焦操作。 5614e41f4b71Sopenharmony_ci 5615e41f4b71Sopenharmony_ci### setZoomRatio<sup>11+</sup> 5616e41f4b71Sopenharmony_ci 5617e41f4b71Sopenharmony_cisetZoomRatio(zoomRatio: number): void 5618e41f4b71Sopenharmony_ci 5619e41f4b71Sopenharmony_ci设置变焦比,变焦精度最高为小数点后两位,如果设置超过支持的精度范围,则只保留精度范围内数值。 5620e41f4b71Sopenharmony_ci 5621e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5622e41f4b71Sopenharmony_ci 5623e41f4b71Sopenharmony_ci**参数:** 5624e41f4b71Sopenharmony_ci 5625e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5626e41f4b71Sopenharmony_ci| --------- | -------------------- | ---- |---------------------------------------------------------------------------------------------------------------------------------| 5627e41f4b71Sopenharmony_ci| zoomRatio | number | 是 | 可变焦距比,通过[getZoomRatioRange](#getzoomratiorange11)获取支持的变焦范围,如果设置超过支持范围的值,则只保留精度范围内数值。<br>设置可变焦距比到底层生效需要一定时间,获取正确设置的可变焦距比需要等待1~2帧的时间。 | 5628e41f4b71Sopenharmony_ci 5629e41f4b71Sopenharmony_ci**错误码:** 5630e41f4b71Sopenharmony_ci 5631e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5632e41f4b71Sopenharmony_ci 5633e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5634e41f4b71Sopenharmony_ci| --------------- | --------------- | 5635e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5636e41f4b71Sopenharmony_ci 5637e41f4b71Sopenharmony_ci**示例:** 5638e41f4b71Sopenharmony_ci 5639e41f4b71Sopenharmony_ci```ts 5640e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5641e41f4b71Sopenharmony_ci 5642e41f4b71Sopenharmony_cifunction setZoomRatio(photoSession: camera.PhotoSession, zoomRatioRange: Array<number>): void { 5643e41f4b71Sopenharmony_ci if (zoomRatioRange === undefined || zoomRatioRange.length <= 0) { 5644e41f4b71Sopenharmony_ci return; 5645e41f4b71Sopenharmony_ci } 5646e41f4b71Sopenharmony_ci let zoomRatio = zoomRatioRange[0]; 5647e41f4b71Sopenharmony_ci try { 5648e41f4b71Sopenharmony_ci photoSession.setZoomRatio(zoomRatio); 5649e41f4b71Sopenharmony_ci } catch (error) { 5650e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5651e41f4b71Sopenharmony_ci let err = error as BusinessError; 5652e41f4b71Sopenharmony_ci console.error(`The setZoomRatio call failed. error code: ${err.code}`); 5653e41f4b71Sopenharmony_ci } 5654e41f4b71Sopenharmony_ci} 5655e41f4b71Sopenharmony_ci``` 5656e41f4b71Sopenharmony_ci 5657e41f4b71Sopenharmony_ci### getZoomRatio<sup>11+</sup> 5658e41f4b71Sopenharmony_ci 5659e41f4b71Sopenharmony_cigetZoomRatio(): number 5660e41f4b71Sopenharmony_ci 5661e41f4b71Sopenharmony_ci获取当前的变焦比。 5662e41f4b71Sopenharmony_ci 5663e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5664e41f4b71Sopenharmony_ci 5665e41f4b71Sopenharmony_ci**返回值:** 5666e41f4b71Sopenharmony_ci 5667e41f4b71Sopenharmony_ci| 类型 | 说明 | 5668e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5669e41f4b71Sopenharmony_ci| number | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5670e41f4b71Sopenharmony_ci 5671e41f4b71Sopenharmony_ci**错误码:** 5672e41f4b71Sopenharmony_ci 5673e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5674e41f4b71Sopenharmony_ci 5675e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5676e41f4b71Sopenharmony_ci| --------------- | --------------- | 5677e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5678e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 5679e41f4b71Sopenharmony_ci 5680e41f4b71Sopenharmony_ci**示例:** 5681e41f4b71Sopenharmony_ci 5682e41f4b71Sopenharmony_ci```ts 5683e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5684e41f4b71Sopenharmony_ci 5685e41f4b71Sopenharmony_cifunction getZoomRatio(photoSession: camera.PhotoSession): number { 5686e41f4b71Sopenharmony_ci const invalidValue: number = -1; 5687e41f4b71Sopenharmony_ci let zoomRatio: number = invalidValue; 5688e41f4b71Sopenharmony_ci try { 5689e41f4b71Sopenharmony_ci zoomRatio = photoSession.getZoomRatio(); 5690e41f4b71Sopenharmony_ci } catch (error) { 5691e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5692e41f4b71Sopenharmony_ci let err = error as BusinessError; 5693e41f4b71Sopenharmony_ci console.error(`The getZoomRatio call failed. error code: ${err.code}`); 5694e41f4b71Sopenharmony_ci } 5695e41f4b71Sopenharmony_ci return zoomRatio; 5696e41f4b71Sopenharmony_ci} 5697e41f4b71Sopenharmony_ci``` 5698e41f4b71Sopenharmony_ci 5699e41f4b71Sopenharmony_ci### setSmoothZoom<sup>11+</sup> 5700e41f4b71Sopenharmony_ci 5701e41f4b71Sopenharmony_cisetSmoothZoom(targetRatio: number, mode?: SmoothZoomMode): void 5702e41f4b71Sopenharmony_ci 5703e41f4b71Sopenharmony_ci触发平滑变焦。 5704e41f4b71Sopenharmony_ci 5705e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5706e41f4b71Sopenharmony_ci 5707e41f4b71Sopenharmony_ci**参数:** 5708e41f4b71Sopenharmony_ci 5709e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5710e41f4b71Sopenharmony_ci| ------------ | -------------- | ---- | ----------------- | 5711e41f4b71Sopenharmony_ci| targetRatio | number | 是 | 目标值。 | 5712e41f4b71Sopenharmony_ci| mode | [SmoothZoomMode](#smoothzoommode11) | 否 | 模式。 | 5713e41f4b71Sopenharmony_ci 5714e41f4b71Sopenharmony_ci**错误码:** 5715e41f4b71Sopenharmony_ci 5716e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5717e41f4b71Sopenharmony_ci 5718e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5719e41f4b71Sopenharmony_ci| --------------- | --------------- | 5720e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5721e41f4b71Sopenharmony_ci 5722e41f4b71Sopenharmony_ci**示例:** 5723e41f4b71Sopenharmony_ci 5724e41f4b71Sopenharmony_ci```ts 5725e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5726e41f4b71Sopenharmony_ci 5727e41f4b71Sopenharmony_cifunction setSmoothZoom(sessionExtendsZoom: camera.Zoom, targetZoomRatio: number, mode: camera.SmoothZoomMode): void { 5728e41f4b71Sopenharmony_ci try { 5729e41f4b71Sopenharmony_ci sessionExtendsZoom.setSmoothZoom(targetZoomRatio, mode); 5730e41f4b71Sopenharmony_ci } catch (error) { 5731e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5732e41f4b71Sopenharmony_ci let err = error as BusinessError; 5733e41f4b71Sopenharmony_ci console.error(`The setSmoothZoom call failed. error code: ${err.code}`); 5734e41f4b71Sopenharmony_ci } 5735e41f4b71Sopenharmony_ci} 5736e41f4b71Sopenharmony_ci``` 5737e41f4b71Sopenharmony_ci 5738e41f4b71Sopenharmony_ci## ZoomQuery<sup>12+</sup> 5739e41f4b71Sopenharmony_ci 5740e41f4b71Sopenharmony_ci提供了与设备的缩放相关的查询功能,包括获取支持的缩放比例范围。 5741e41f4b71Sopenharmony_ci 5742e41f4b71Sopenharmony_ci### getZoomRatioRange<sup>11+</sup> 5743e41f4b71Sopenharmony_ci 5744e41f4b71Sopenharmony_cigetZoomRatioRange(): Array\<number\> 5745e41f4b71Sopenharmony_ci 5746e41f4b71Sopenharmony_ci获取支持的变焦范围。 5747e41f4b71Sopenharmony_ci 5748e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5749e41f4b71Sopenharmony_ci 5750e41f4b71Sopenharmony_ci**返回值:** 5751e41f4b71Sopenharmony_ci 5752e41f4b71Sopenharmony_ci| 类型 | 说明 | 5753e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5754e41f4b71Sopenharmony_ci| Array\<number\> | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5755e41f4b71Sopenharmony_ci 5756e41f4b71Sopenharmony_ci**错误码:** 5757e41f4b71Sopenharmony_ci 5758e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5759e41f4b71Sopenharmony_ci 5760e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5761e41f4b71Sopenharmony_ci| --------------- | --------------- | 5762e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 5763e41f4b71Sopenharmony_ci 5764e41f4b71Sopenharmony_ci**示例:** 5765e41f4b71Sopenharmony_ci 5766e41f4b71Sopenharmony_ci```ts 5767e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5768e41f4b71Sopenharmony_ci 5769e41f4b71Sopenharmony_cifunction getZoomRatioRange(photoSession: camera.PhotoSession): Array<number> { 5770e41f4b71Sopenharmony_ci let zoomRatioRange: Array<number> = []; 5771e41f4b71Sopenharmony_ci try { 5772e41f4b71Sopenharmony_ci zoomRatioRange = photoSession.getZoomRatioRange(); 5773e41f4b71Sopenharmony_ci } catch (error) { 5774e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5775e41f4b71Sopenharmony_ci let err = error as BusinessError; 5776e41f4b71Sopenharmony_ci console.error(`The getZoomRatioRange call failed. error code: ${err.code}`); 5777e41f4b71Sopenharmony_ci } 5778e41f4b71Sopenharmony_ci return zoomRatioRange; 5779e41f4b71Sopenharmony_ci} 5780e41f4b71Sopenharmony_ci``` 5781e41f4b71Sopenharmony_ci 5782e41f4b71Sopenharmony_ci## Stabilization<sup>11+</sup> 5783e41f4b71Sopenharmony_ci 5784e41f4b71Sopenharmony_ciStabilization extends [StabilizationQuery](#stabilizationquery12) 5785e41f4b71Sopenharmony_ci 5786e41f4b71Sopenharmony_ci提供设备在录像模式下设置视频防抖的操作。 5787e41f4b71Sopenharmony_ci 5788e41f4b71Sopenharmony_ci > **说明:** 5789e41f4b71Sopenharmony_ci > 5790e41f4b71Sopenharmony_ci > 需要会话中有录像流([VideoOutput](#videooutput))的前提下,才可以对视频进行防抖设置, 5791e41f4b71Sopenharmony_ci > 其中[VideoStabilizationMode](#videostabilizationmode)中的枚举HIGH需要在[Profile](#profile)的分辨率为1920*1080的场景下生效。 5792e41f4b71Sopenharmony_ci 5793e41f4b71Sopenharmony_ci### getActiveVideoStabilizationMode<sup>11+</sup> 5794e41f4b71Sopenharmony_ci 5795e41f4b71Sopenharmony_cigetActiveVideoStabilizationMode(): VideoStabilizationMode 5796e41f4b71Sopenharmony_ci 5797e41f4b71Sopenharmony_ci查询当前正在使用的视频防抖模式。 5798e41f4b71Sopenharmony_ci 5799e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5800e41f4b71Sopenharmony_ci 5801e41f4b71Sopenharmony_ci**返回值:** 5802e41f4b71Sopenharmony_ci 5803e41f4b71Sopenharmony_ci| 类型 | 说明 | 5804e41f4b71Sopenharmony_ci| ---------- |-------------| 5805e41f4b71Sopenharmony_ci| [VideoStabilizationMode](#videostabilizationmode) | 视频防抖是否正在使用。 | 5806e41f4b71Sopenharmony_ci 5807e41f4b71Sopenharmony_ci**错误码:** 5808e41f4b71Sopenharmony_ci 5809e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5810e41f4b71Sopenharmony_ci 5811e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5812e41f4b71Sopenharmony_ci| --------------- | --------------- | 5813e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5814e41f4b71Sopenharmony_ci 5815e41f4b71Sopenharmony_ci**示例:** 5816e41f4b71Sopenharmony_ci 5817e41f4b71Sopenharmony_ci```ts 5818e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5819e41f4b71Sopenharmony_ci 5820e41f4b71Sopenharmony_cifunction getActiveVideoStabilizationMode(videoSession: camera.VideoSession): camera.VideoStabilizationMode | undefined { 5821e41f4b71Sopenharmony_ci let vsMode: camera.VideoStabilizationMode | undefined = undefined; 5822e41f4b71Sopenharmony_ci try { 5823e41f4b71Sopenharmony_ci vsMode = videoSession.getActiveVideoStabilizationMode(); 5824e41f4b71Sopenharmony_ci } catch (error) { 5825e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5826e41f4b71Sopenharmony_ci let err = error as BusinessError; 5827e41f4b71Sopenharmony_ci console.error(`The getActiveVideoStabilizationMode call failed. error code: ${err.code}`); 5828e41f4b71Sopenharmony_ci } 5829e41f4b71Sopenharmony_ci return vsMode; 5830e41f4b71Sopenharmony_ci} 5831e41f4b71Sopenharmony_ci``` 5832e41f4b71Sopenharmony_ci 5833e41f4b71Sopenharmony_ci### setVideoStabilizationMode<sup>11+</sup> 5834e41f4b71Sopenharmony_ci 5835e41f4b71Sopenharmony_cisetVideoStabilizationMode(mode: VideoStabilizationMode): void 5836e41f4b71Sopenharmony_ci 5837e41f4b71Sopenharmony_ci设置视频防抖模式。需要先检查设备是否支持对应的防抖模式,可以通过[isVideoStabilizationModeSupported](#isvideostabilizationmodesupported11)方法判断所设置的模式是否支持。 5838e41f4b71Sopenharmony_ci 5839e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5840e41f4b71Sopenharmony_ci 5841e41f4b71Sopenharmony_ci**参数:** 5842e41f4b71Sopenharmony_ci 5843e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5844e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | --------------------- | 5845e41f4b71Sopenharmony_ci| mode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 需要设置的视频防抖模式。 | 5846e41f4b71Sopenharmony_ci 5847e41f4b71Sopenharmony_ci**错误码:** 5848e41f4b71Sopenharmony_ci 5849e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5850e41f4b71Sopenharmony_ci 5851e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5852e41f4b71Sopenharmony_ci| --------------- | --------------- | 5853e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 5854e41f4b71Sopenharmony_ci 5855e41f4b71Sopenharmony_ci**示例:** 5856e41f4b71Sopenharmony_ci 5857e41f4b71Sopenharmony_ci```ts 5858e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5859e41f4b71Sopenharmony_ci 5860e41f4b71Sopenharmony_cifunction setVideoStabilizationMode(videoSession: camera.VideoSession): void { 5861e41f4b71Sopenharmony_ci try { 5862e41f4b71Sopenharmony_ci videoSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF); 5863e41f4b71Sopenharmony_ci } catch (error) { 5864e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5865e41f4b71Sopenharmony_ci let err = error as BusinessError; 5866e41f4b71Sopenharmony_ci console.error(`The setVideoStabilizationMode call failed. error code: ${err.code}`); 5867e41f4b71Sopenharmony_ci } 5868e41f4b71Sopenharmony_ci} 5869e41f4b71Sopenharmony_ci``` 5870e41f4b71Sopenharmony_ci 5871e41f4b71Sopenharmony_ci## StabilizationQuery<sup>12+</sup> 5872e41f4b71Sopenharmony_ci 5873e41f4b71Sopenharmony_ci提供了查询设备在录像模式下是否支持对应的视频防抖模式的能力。 5874e41f4b71Sopenharmony_ci 5875e41f4b71Sopenharmony_ci### isVideoStabilizationModeSupported<sup>11+</sup> 5876e41f4b71Sopenharmony_ci 5877e41f4b71Sopenharmony_ciisVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean 5878e41f4b71Sopenharmony_ci 5879e41f4b71Sopenharmony_ci查询是否支持指定的视频防抖模式。 5880e41f4b71Sopenharmony_ci 5881e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5882e41f4b71Sopenharmony_ci 5883e41f4b71Sopenharmony_ci**参数:** 5884e41f4b71Sopenharmony_ci 5885e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5886e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | ------------------------------ | 5887e41f4b71Sopenharmony_ci| vsMode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 视频防抖模式。 | 5888e41f4b71Sopenharmony_ci 5889e41f4b71Sopenharmony_ci**返回值:** 5890e41f4b71Sopenharmony_ci 5891e41f4b71Sopenharmony_ci| 类型 | 说明 | 5892e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 5893e41f4b71Sopenharmony_ci| boolean | 返回视频防抖模式是否支持,true表示支持,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 5894e41f4b71Sopenharmony_ci 5895e41f4b71Sopenharmony_ci**错误码:** 5896e41f4b71Sopenharmony_ci 5897e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5898e41f4b71Sopenharmony_ci 5899e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5900e41f4b71Sopenharmony_ci| --------------- | --------------- | 5901e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 5902e41f4b71Sopenharmony_ci 5903e41f4b71Sopenharmony_ci**示例:** 5904e41f4b71Sopenharmony_ci 5905e41f4b71Sopenharmony_ci```ts 5906e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5907e41f4b71Sopenharmony_ci 5908e41f4b71Sopenharmony_cifunction isVideoStabilizationModeSupported(videoSession: camera.VideoSession): boolean { 5909e41f4b71Sopenharmony_ci let isSupported: boolean = false; 5910e41f4b71Sopenharmony_ci try { 5911e41f4b71Sopenharmony_ci isSupported = videoSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF); 5912e41f4b71Sopenharmony_ci } catch (error) { 5913e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5914e41f4b71Sopenharmony_ci let err = error as BusinessError; 5915e41f4b71Sopenharmony_ci console.error(`The isVideoStabilizationModeSupported call failed. error code: ${err.code}`); 5916e41f4b71Sopenharmony_ci } 5917e41f4b71Sopenharmony_ci return isSupported; 5918e41f4b71Sopenharmony_ci} 5919e41f4b71Sopenharmony_ci``` 5920e41f4b71Sopenharmony_ci 5921e41f4b71Sopenharmony_ci## CaptureSession<sup>(deprecated)</sup> 5922e41f4b71Sopenharmony_ci 5923e41f4b71Sopenharmony_ci拍照会话类,保存一次相机运行所需要的所有资源[CameraInput](#camerainput)、[CameraOutput](#cameraoutput),并向相机设备申请完成相机功能(录像,拍照)。 5924e41f4b71Sopenharmony_ci 5925e41f4b71Sopenharmony_ci> **说明:** 5926e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[PhotoSession](#photosession11)、[VideoSession](#videosession11)替代。 5927e41f4b71Sopenharmony_ci 5928e41f4b71Sopenharmony_ci### beginConfig<sup>(deprecated)</sup> 5929e41f4b71Sopenharmony_ci 5930e41f4b71Sopenharmony_cibeginConfig(): void 5931e41f4b71Sopenharmony_ci 5932e41f4b71Sopenharmony_ci开始配置会话。 5933e41f4b71Sopenharmony_ci 5934e41f4b71Sopenharmony_ci> **说明:** 5935e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.beginConfig](#beginconfig11)替代。 5936e41f4b71Sopenharmony_ci 5937e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5938e41f4b71Sopenharmony_ci 5939e41f4b71Sopenharmony_ci**错误码:** 5940e41f4b71Sopenharmony_ci 5941e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5942e41f4b71Sopenharmony_ci 5943e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5944e41f4b71Sopenharmony_ci| --------------- | --------------- | 5945e41f4b71Sopenharmony_ci| 7400105 | Session config locked. | 5946e41f4b71Sopenharmony_ci 5947e41f4b71Sopenharmony_ci**示例:** 5948e41f4b71Sopenharmony_ci 5949e41f4b71Sopenharmony_ci```ts 5950e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5951e41f4b71Sopenharmony_ci 5952e41f4b71Sopenharmony_cifunction beginConfig(captureSession: camera.CaptureSession): void { 5953e41f4b71Sopenharmony_ci try { 5954e41f4b71Sopenharmony_ci captureSession.beginConfig(); 5955e41f4b71Sopenharmony_ci } catch (error) { 5956e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 5957e41f4b71Sopenharmony_ci let err = error as BusinessError; 5958e41f4b71Sopenharmony_ci console.error(`The beginConfig call failed. error code: ${err.code}`); 5959e41f4b71Sopenharmony_ci } 5960e41f4b71Sopenharmony_ci} 5961e41f4b71Sopenharmony_ci``` 5962e41f4b71Sopenharmony_ci 5963e41f4b71Sopenharmony_ci### commitConfig<sup>(deprecated)</sup> 5964e41f4b71Sopenharmony_ci 5965e41f4b71Sopenharmony_cicommitConfig(callback: AsyncCallback\<void\>): void 5966e41f4b71Sopenharmony_ci 5967e41f4b71Sopenharmony_ci提交配置信息,通过注册回调函数获取结果。使用callback异步回调。 5968e41f4b71Sopenharmony_ci 5969e41f4b71Sopenharmony_ci> **说明:** 5970e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.commitConfig](#commitconfig11)替代。 5971e41f4b71Sopenharmony_ci 5972e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 5973e41f4b71Sopenharmony_ci 5974e41f4b71Sopenharmony_ci**参数:** 5975e41f4b71Sopenharmony_ci 5976e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 5977e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 5978e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | 5979e41f4b71Sopenharmony_ci 5980e41f4b71Sopenharmony_ci**错误码:** 5981e41f4b71Sopenharmony_ci 5982e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 5983e41f4b71Sopenharmony_ci 5984e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 5985e41f4b71Sopenharmony_ci| --------------- | --------------- | 5986e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 5987e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 5988e41f4b71Sopenharmony_ci 5989e41f4b71Sopenharmony_ci**示例:** 5990e41f4b71Sopenharmony_ci 5991e41f4b71Sopenharmony_ci```ts 5992e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 5993e41f4b71Sopenharmony_ci 5994e41f4b71Sopenharmony_cifunction commitConfig(captureSession: camera.CaptureSession): void { 5995e41f4b71Sopenharmony_ci captureSession.commitConfig((err: BusinessError) => { 5996e41f4b71Sopenharmony_ci if (err) { 5997e41f4b71Sopenharmony_ci console.error(`The commitConfig call failed. error code: ${err.code}`); 5998e41f4b71Sopenharmony_ci return; 5999e41f4b71Sopenharmony_ci } 6000e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the commit config success.'); 6001e41f4b71Sopenharmony_ci }); 6002e41f4b71Sopenharmony_ci} 6003e41f4b71Sopenharmony_ci``` 6004e41f4b71Sopenharmony_ci 6005e41f4b71Sopenharmony_ci### commitConfig<sup>(deprecated)</sup> 6006e41f4b71Sopenharmony_ci 6007e41f4b71Sopenharmony_cicommitConfig(): Promise\<void\> 6008e41f4b71Sopenharmony_ci 6009e41f4b71Sopenharmony_ci提交配置信息,通过Promise获取结果。 6010e41f4b71Sopenharmony_ci 6011e41f4b71Sopenharmony_ci> **说明:** 6012e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.commitConfig](#commitconfig11-1)替代。 6013e41f4b71Sopenharmony_ci 6014e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6015e41f4b71Sopenharmony_ci 6016e41f4b71Sopenharmony_ci**返回值:** 6017e41f4b71Sopenharmony_ci 6018e41f4b71Sopenharmony_ci| 类型 | 说明 | 6019e41f4b71Sopenharmony_ci| -------------- |-------------------| 6020e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 6021e41f4b71Sopenharmony_ci 6022e41f4b71Sopenharmony_ci**错误码:** 6023e41f4b71Sopenharmony_ci 6024e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6025e41f4b71Sopenharmony_ci 6026e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6027e41f4b71Sopenharmony_ci| --------------- | --------------- | 6028e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 6029e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 6030e41f4b71Sopenharmony_ci 6031e41f4b71Sopenharmony_ci**示例:** 6032e41f4b71Sopenharmony_ci 6033e41f4b71Sopenharmony_ci```ts 6034e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6035e41f4b71Sopenharmony_ci 6036e41f4b71Sopenharmony_cifunction commitConfig(captureSession: camera.CaptureSession): void { 6037e41f4b71Sopenharmony_ci captureSession.commitConfig().then(() => { 6038e41f4b71Sopenharmony_ci console.info('Promise returned to indicate the commit config success.'); 6039e41f4b71Sopenharmony_ci }).catch((error: BusinessError) => { 6040e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6041e41f4b71Sopenharmony_ci console.error(`The commitConfig call failed. error code: ${error.code}`); 6042e41f4b71Sopenharmony_ci }); 6043e41f4b71Sopenharmony_ci} 6044e41f4b71Sopenharmony_ci``` 6045e41f4b71Sopenharmony_ci 6046e41f4b71Sopenharmony_ci### addInput<sup>(deprecated)</sup> 6047e41f4b71Sopenharmony_ci 6048e41f4b71Sopenharmony_ciaddInput(cameraInput: CameraInput): void 6049e41f4b71Sopenharmony_ci 6050e41f4b71Sopenharmony_ci把[CameraInput](#camerainput)加入到会话。 6051e41f4b71Sopenharmony_ci 6052e41f4b71Sopenharmony_ci> **说明:** 6053e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.addInput](#addinput11)替代。 6054e41f4b71Sopenharmony_ci 6055e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6056e41f4b71Sopenharmony_ci 6057e41f4b71Sopenharmony_ci**参数:** 6058e41f4b71Sopenharmony_ci 6059e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6060e41f4b71Sopenharmony_ci| ----------- | --------------------------- | ---- | ------------------------ | 6061e41f4b71Sopenharmony_ci| cameraInput | [CameraInput](#camerainput) | 是 | 需要添加的CameraInput实例。 | 6062e41f4b71Sopenharmony_ci 6063e41f4b71Sopenharmony_ci**错误码:** 6064e41f4b71Sopenharmony_ci 6065e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6066e41f4b71Sopenharmony_ci 6067e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6068e41f4b71Sopenharmony_ci|---------|-----------------------------------------------| 6069e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 6070e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 6071e41f4b71Sopenharmony_ci 6072e41f4b71Sopenharmony_ci**示例:** 6073e41f4b71Sopenharmony_ci 6074e41f4b71Sopenharmony_ci```ts 6075e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6076e41f4b71Sopenharmony_ci 6077e41f4b71Sopenharmony_cifunction addInput(captureSession: camera.CaptureSession, cameraInput: camera.CameraInput): void { 6078e41f4b71Sopenharmony_ci try { 6079e41f4b71Sopenharmony_ci captureSession.addInput(cameraInput); 6080e41f4b71Sopenharmony_ci } catch (error) { 6081e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6082e41f4b71Sopenharmony_ci let err = error as BusinessError; 6083e41f4b71Sopenharmony_ci console.error(`The addInput call failed. error code: ${err.code}`); 6084e41f4b71Sopenharmony_ci } 6085e41f4b71Sopenharmony_ci} 6086e41f4b71Sopenharmony_ci``` 6087e41f4b71Sopenharmony_ci 6088e41f4b71Sopenharmony_ci### removeInput<sup>(deprecated)</sup> 6089e41f4b71Sopenharmony_ci 6090e41f4b71Sopenharmony_ciremoveInput(cameraInput: CameraInput): void 6091e41f4b71Sopenharmony_ci 6092e41f4b71Sopenharmony_ci移除[CameraInput](#camerainput)。 6093e41f4b71Sopenharmony_ci 6094e41f4b71Sopenharmony_ci> **说明:** 6095e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.removeInput](#removeinput11)替代。 6096e41f4b71Sopenharmony_ci 6097e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6098e41f4b71Sopenharmony_ci 6099e41f4b71Sopenharmony_ci**参数:** 6100e41f4b71Sopenharmony_ci 6101e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6102e41f4b71Sopenharmony_ci| ----------- | --------------------------- | ---- | ------------------------ | 6103e41f4b71Sopenharmony_ci| cameraInput | [CameraInput](#camerainput) | 是 | 需要移除的CameraInput实例。 | 6104e41f4b71Sopenharmony_ci 6105e41f4b71Sopenharmony_ci**错误码:** 6106e41f4b71Sopenharmony_ci 6107e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6108e41f4b71Sopenharmony_ci 6109e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6110e41f4b71Sopenharmony_ci| --------------- | --------------- | 6111e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 6112e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 6113e41f4b71Sopenharmony_ci 6114e41f4b71Sopenharmony_ci**示例:** 6115e41f4b71Sopenharmony_ci 6116e41f4b71Sopenharmony_ci```ts 6117e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6118e41f4b71Sopenharmony_ci 6119e41f4b71Sopenharmony_cifunction removeInput(captureSession: camera.CaptureSession, cameraInput: camera.CameraInput): void { 6120e41f4b71Sopenharmony_ci try { 6121e41f4b71Sopenharmony_ci captureSession.removeInput(cameraInput); 6122e41f4b71Sopenharmony_ci } catch (error) { 6123e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6124e41f4b71Sopenharmony_ci let err = error as BusinessError; 6125e41f4b71Sopenharmony_ci console.error(`The removeInput call failed. error code: ${err.code}`); 6126e41f4b71Sopenharmony_ci } 6127e41f4b71Sopenharmony_ci} 6128e41f4b71Sopenharmony_ci``` 6129e41f4b71Sopenharmony_ci 6130e41f4b71Sopenharmony_ci### addOutput<sup>(deprecated)</sup> 6131e41f4b71Sopenharmony_ci 6132e41f4b71Sopenharmony_ciaddOutput(cameraOutput: CameraOutput): void 6133e41f4b71Sopenharmony_ci 6134e41f4b71Sopenharmony_ci把[CameraOutput](#cameraoutput)加入到会话。 6135e41f4b71Sopenharmony_ci 6136e41f4b71Sopenharmony_ci> **说明:** 6137e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.addOutput](#addoutput11)替代。 6138e41f4b71Sopenharmony_ci 6139e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6140e41f4b71Sopenharmony_ci 6141e41f4b71Sopenharmony_ci**参数:** 6142e41f4b71Sopenharmony_ci 6143e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6144e41f4b71Sopenharmony_ci| ------------- | ------------------------------- | ---- | ------------------------ | 6145e41f4b71Sopenharmony_ci| cameraOutput | [CameraOutput](#cameraoutput) | 是 | 需要添加的CameraOutput实例。 | 6146e41f4b71Sopenharmony_ci 6147e41f4b71Sopenharmony_ci**错误码:** 6148e41f4b71Sopenharmony_ci 6149e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6150e41f4b71Sopenharmony_ci 6151e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6152e41f4b71Sopenharmony_ci| --------------- | --------------- | 6153e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 6154e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 6155e41f4b71Sopenharmony_ci 6156e41f4b71Sopenharmony_ci**示例:** 6157e41f4b71Sopenharmony_ci 6158e41f4b71Sopenharmony_ci```ts 6159e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6160e41f4b71Sopenharmony_ci 6161e41f4b71Sopenharmony_cifunction addOutput(captureSession: camera.CaptureSession, cameraOutput: camera.CameraOutput): void { 6162e41f4b71Sopenharmony_ci try { 6163e41f4b71Sopenharmony_ci captureSession.addOutput(cameraOutput); 6164e41f4b71Sopenharmony_ci } catch (error) { 6165e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6166e41f4b71Sopenharmony_ci let err = error as BusinessError; 6167e41f4b71Sopenharmony_ci console.error(`The addOutput call failed. error code: ${err.code}`); 6168e41f4b71Sopenharmony_ci } 6169e41f4b71Sopenharmony_ci} 6170e41f4b71Sopenharmony_ci``` 6171e41f4b71Sopenharmony_ci 6172e41f4b71Sopenharmony_ci### removeOutput<sup>(deprecated)</sup> 6173e41f4b71Sopenharmony_ci 6174e41f4b71Sopenharmony_ciremoveOutput(cameraOutput: CameraOutput): void 6175e41f4b71Sopenharmony_ci 6176e41f4b71Sopenharmony_ci从会话中移除[CameraOutput](#cameraoutput)。 6177e41f4b71Sopenharmony_ci 6178e41f4b71Sopenharmony_ci> **说明:** 6179e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.removeOutput](#removeoutput11)替代。 6180e41f4b71Sopenharmony_ci 6181e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6182e41f4b71Sopenharmony_ci 6183e41f4b71Sopenharmony_ci**参数:** 6184e41f4b71Sopenharmony_ci 6185e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6186e41f4b71Sopenharmony_ci| ------------- | ------------------------------- | ---- | ------------------------ | 6187e41f4b71Sopenharmony_ci| cameraOutput | [CameraOutput](#cameraoutput) | 是 | 需要移除的CameraOutput实例。 | 6188e41f4b71Sopenharmony_ci 6189e41f4b71Sopenharmony_ci**错误码:** 6190e41f4b71Sopenharmony_ci 6191e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6192e41f4b71Sopenharmony_ci 6193e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6194e41f4b71Sopenharmony_ci| --------------- | --------------- | 6195e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 6196e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 6197e41f4b71Sopenharmony_ci 6198e41f4b71Sopenharmony_ci**示例:** 6199e41f4b71Sopenharmony_ci 6200e41f4b71Sopenharmony_ci```ts 6201e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6202e41f4b71Sopenharmony_ci 6203e41f4b71Sopenharmony_cifunction removeOutput(captureSession: camera.CaptureSession, previewOutput: camera.PreviewOutput): void { 6204e41f4b71Sopenharmony_ci try { 6205e41f4b71Sopenharmony_ci captureSession.removeOutput(previewOutput); 6206e41f4b71Sopenharmony_ci } catch (error) { 6207e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6208e41f4b71Sopenharmony_ci let err = error as BusinessError; 6209e41f4b71Sopenharmony_ci console.error(`The removeOutput call failed. error code: ${err.code}`); 6210e41f4b71Sopenharmony_ci } 6211e41f4b71Sopenharmony_ci} 6212e41f4b71Sopenharmony_ci``` 6213e41f4b71Sopenharmony_ci 6214e41f4b71Sopenharmony_ci### start<sup>(deprecated)</sup> 6215e41f4b71Sopenharmony_ci 6216e41f4b71Sopenharmony_cistart(callback: AsyncCallback\<void\>): void 6217e41f4b71Sopenharmony_ci 6218e41f4b71Sopenharmony_ci开始会话工作,通过注册回调函数获取结果。使用callback异步回调。 6219e41f4b71Sopenharmony_ci 6220e41f4b71Sopenharmony_ci> **说明:** 6221e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.start](#start11)替代。 6222e41f4b71Sopenharmony_ci 6223e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6224e41f4b71Sopenharmony_ci 6225e41f4b71Sopenharmony_ci**参数:** 6226e41f4b71Sopenharmony_ci 6227e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6228e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 6229e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6230e41f4b71Sopenharmony_ci 6231e41f4b71Sopenharmony_ci**错误码:** 6232e41f4b71Sopenharmony_ci 6233e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6234e41f4b71Sopenharmony_ci 6235e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6236e41f4b71Sopenharmony_ci| --------------- | --------------- | 6237e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6238e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 6239e41f4b71Sopenharmony_ci 6240e41f4b71Sopenharmony_ci**示例:** 6241e41f4b71Sopenharmony_ci 6242e41f4b71Sopenharmony_ci```ts 6243e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6244e41f4b71Sopenharmony_ci 6245e41f4b71Sopenharmony_cifunction startCaptureSession(captureSession: camera.CaptureSession): void { 6246e41f4b71Sopenharmony_ci captureSession.start((err: BusinessError) => { 6247e41f4b71Sopenharmony_ci if (err) { 6248e41f4b71Sopenharmony_ci console.error(`Failed to start the session, error code: ${err.code}.`); 6249e41f4b71Sopenharmony_ci return; 6250e41f4b71Sopenharmony_ci } 6251e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the session start success.'); 6252e41f4b71Sopenharmony_ci }); 6253e41f4b71Sopenharmony_ci} 6254e41f4b71Sopenharmony_ci``` 6255e41f4b71Sopenharmony_ci 6256e41f4b71Sopenharmony_ci### start<sup>(deprecated)</sup> 6257e41f4b71Sopenharmony_ci 6258e41f4b71Sopenharmony_cistart(): Promise\<void\> 6259e41f4b71Sopenharmony_ci 6260e41f4b71Sopenharmony_ci开始会话工作,通过Promise获取结果。 6261e41f4b71Sopenharmony_ci 6262e41f4b71Sopenharmony_ci> **说明:** 6263e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.start](#start11-1)替代。 6264e41f4b71Sopenharmony_ci 6265e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6266e41f4b71Sopenharmony_ci 6267e41f4b71Sopenharmony_ci**返回值:** 6268e41f4b71Sopenharmony_ci 6269e41f4b71Sopenharmony_ci| 类型 | 说明 | 6270e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 6271e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 6272e41f4b71Sopenharmony_ci 6273e41f4b71Sopenharmony_ci**错误码:** 6274e41f4b71Sopenharmony_ci 6275e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6276e41f4b71Sopenharmony_ci 6277e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6278e41f4b71Sopenharmony_ci| --------------- | --------------- | 6279e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6280e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 6281e41f4b71Sopenharmony_ci 6282e41f4b71Sopenharmony_ci**示例:** 6283e41f4b71Sopenharmony_ci 6284e41f4b71Sopenharmony_ci```ts 6285e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6286e41f4b71Sopenharmony_ci 6287e41f4b71Sopenharmony_cifunction startCaptureSession(captureSession: camera.CaptureSession): void { 6288e41f4b71Sopenharmony_ci captureSession.start().then(() => { 6289e41f4b71Sopenharmony_ci console.info('Promise returned to indicate the session start success.'); 6290e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 6291e41f4b71Sopenharmony_ci console.error(`Failed to start the session, error code: ${err.code}.`); 6292e41f4b71Sopenharmony_ci }); 6293e41f4b71Sopenharmony_ci} 6294e41f4b71Sopenharmony_ci``` 6295e41f4b71Sopenharmony_ci 6296e41f4b71Sopenharmony_ci### stop<sup>(deprecated)</sup> 6297e41f4b71Sopenharmony_ci 6298e41f4b71Sopenharmony_cistop(callback: AsyncCallback\<void\>): void 6299e41f4b71Sopenharmony_ci 6300e41f4b71Sopenharmony_ci停止会话工作,通过注册回调函数获取结果。使用callback异步回调。 6301e41f4b71Sopenharmony_ci 6302e41f4b71Sopenharmony_ci> **说明:** 6303e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.stop](#stop11)替代。 6304e41f4b71Sopenharmony_ci 6305e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6306e41f4b71Sopenharmony_ci 6307e41f4b71Sopenharmony_ci**参数:** 6308e41f4b71Sopenharmony_ci 6309e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6310e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | ------------------- | 6311e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6312e41f4b71Sopenharmony_ci 6313e41f4b71Sopenharmony_ci**错误码:** 6314e41f4b71Sopenharmony_ci 6315e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6316e41f4b71Sopenharmony_ci 6317e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6318e41f4b71Sopenharmony_ci| --------------- | --------------- | 6319e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 6320e41f4b71Sopenharmony_ci 6321e41f4b71Sopenharmony_ci**示例:** 6322e41f4b71Sopenharmony_ci 6323e41f4b71Sopenharmony_ci```ts 6324e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6325e41f4b71Sopenharmony_ci 6326e41f4b71Sopenharmony_cifunction stopCaptureSession(captureSession: camera.CaptureSession): void { 6327e41f4b71Sopenharmony_ci captureSession.stop((err: BusinessError) => { 6328e41f4b71Sopenharmony_ci if (err) { 6329e41f4b71Sopenharmony_ci console.error(`Failed to stop the session, error code: ${err.code}.`); 6330e41f4b71Sopenharmony_ci return; 6331e41f4b71Sopenharmony_ci } 6332e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate the session stop success.'); 6333e41f4b71Sopenharmony_ci }); 6334e41f4b71Sopenharmony_ci} 6335e41f4b71Sopenharmony_ci``` 6336e41f4b71Sopenharmony_ci 6337e41f4b71Sopenharmony_ci### stop<sup>(deprecated)</sup> 6338e41f4b71Sopenharmony_ci 6339e41f4b71Sopenharmony_cistop(): Promise\<void\> 6340e41f4b71Sopenharmony_ci 6341e41f4b71Sopenharmony_ci停止会话工作,通过Promise获取结果。 6342e41f4b71Sopenharmony_ci 6343e41f4b71Sopenharmony_ci> **说明:** 6344e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.stop](#stop11-1)替代。 6345e41f4b71Sopenharmony_ci 6346e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6347e41f4b71Sopenharmony_ci 6348e41f4b71Sopenharmony_ci**返回值:** 6349e41f4b71Sopenharmony_ci 6350e41f4b71Sopenharmony_ci| 类型 | 说明 | 6351e41f4b71Sopenharmony_ci| -------------- | ----------------------- | 6352e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。。 | 6353e41f4b71Sopenharmony_ci 6354e41f4b71Sopenharmony_ci**错误码:** 6355e41f4b71Sopenharmony_ci 6356e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6357e41f4b71Sopenharmony_ci 6358e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6359e41f4b71Sopenharmony_ci| --------------- | --------------- | 6360e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 6361e41f4b71Sopenharmony_ci 6362e41f4b71Sopenharmony_ci**示例:** 6363e41f4b71Sopenharmony_ci 6364e41f4b71Sopenharmony_ci```ts 6365e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6366e41f4b71Sopenharmony_ci 6367e41f4b71Sopenharmony_cifunction stopCaptureSession(captureSession: camera.CaptureSession): void { 6368e41f4b71Sopenharmony_ci captureSession.stop().then(() => { 6369e41f4b71Sopenharmony_ci console.info('Promise returned to indicate the session stop success.'); 6370e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 6371e41f4b71Sopenharmony_ci console.error(`Failed to stop the session, error code: ${err.code}.`); 6372e41f4b71Sopenharmony_ci }); 6373e41f4b71Sopenharmony_ci} 6374e41f4b71Sopenharmony_ci``` 6375e41f4b71Sopenharmony_ci 6376e41f4b71Sopenharmony_ci### release<sup>(deprecated)</sup> 6377e41f4b71Sopenharmony_ci 6378e41f4b71Sopenharmony_cirelease(callback: AsyncCallback\<void\>): void 6379e41f4b71Sopenharmony_ci 6380e41f4b71Sopenharmony_ci释放会话资源,通过注册回调函数获取结果。使用callback异步回调。 6381e41f4b71Sopenharmony_ci 6382e41f4b71Sopenharmony_ci> **说明:** 6383e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.release](#release11-1)替代。 6384e41f4b71Sopenharmony_ci 6385e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6386e41f4b71Sopenharmony_ci 6387e41f4b71Sopenharmony_ci**参数:** 6388e41f4b71Sopenharmony_ci 6389e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6390e41f4b71Sopenharmony_ci| -------- | -------------------- | ---- | -------------------- | 6391e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void\> | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6392e41f4b71Sopenharmony_ci 6393e41f4b71Sopenharmony_ci**错误码:** 6394e41f4b71Sopenharmony_ci 6395e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6396e41f4b71Sopenharmony_ci 6397e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6398e41f4b71Sopenharmony_ci| --------------- | --------------- | 6399e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 6400e41f4b71Sopenharmony_ci 6401e41f4b71Sopenharmony_ci**示例:** 6402e41f4b71Sopenharmony_ci 6403e41f4b71Sopenharmony_ci```ts 6404e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6405e41f4b71Sopenharmony_ci 6406e41f4b71Sopenharmony_cifunction releaseCaptureSession(captureSession: camera.CaptureSession): void { 6407e41f4b71Sopenharmony_ci captureSession.release((err: BusinessError) => { 6408e41f4b71Sopenharmony_ci if (err) { 6409e41f4b71Sopenharmony_ci console.error(`Failed to release the CaptureSession instance, error code: ${err.code}.`); 6410e41f4b71Sopenharmony_ci return; 6411e41f4b71Sopenharmony_ci } 6412e41f4b71Sopenharmony_ci console.info('Callback invoked to indicate that the CaptureSession instance is released successfully.'); 6413e41f4b71Sopenharmony_ci }); 6414e41f4b71Sopenharmony_ci} 6415e41f4b71Sopenharmony_ci``` 6416e41f4b71Sopenharmony_ci 6417e41f4b71Sopenharmony_ci### release<sup>(deprecated)</sup> 6418e41f4b71Sopenharmony_ci 6419e41f4b71Sopenharmony_cirelease(): Promise\<void\> 6420e41f4b71Sopenharmony_ci 6421e41f4b71Sopenharmony_ci释放会话资源,通过Promise获取结果。 6422e41f4b71Sopenharmony_ci 6423e41f4b71Sopenharmony_ci> **说明:** 6424e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Session.release](#release11-2)替代。 6425e41f4b71Sopenharmony_ci 6426e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6427e41f4b71Sopenharmony_ci 6428e41f4b71Sopenharmony_ci**返回值:** 6429e41f4b71Sopenharmony_ci 6430e41f4b71Sopenharmony_ci| 类型 | 说明 | 6431e41f4b71Sopenharmony_ci| -------------- | ------------------------ | 6432e41f4b71Sopenharmony_ci| Promise\<void\> | 无返回结果的Promise对象。 | 6433e41f4b71Sopenharmony_ci 6434e41f4b71Sopenharmony_ci**错误码:** 6435e41f4b71Sopenharmony_ci 6436e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6437e41f4b71Sopenharmony_ci 6438e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6439e41f4b71Sopenharmony_ci| --------------- | --------------- | 6440e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 6441e41f4b71Sopenharmony_ci 6442e41f4b71Sopenharmony_ci**示例:** 6443e41f4b71Sopenharmony_ci 6444e41f4b71Sopenharmony_ci```ts 6445e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6446e41f4b71Sopenharmony_ci 6447e41f4b71Sopenharmony_cifunction releaseCaptureSession(captureSession: camera.CaptureSession): void { 6448e41f4b71Sopenharmony_ci captureSession.release().then(() => { 6449e41f4b71Sopenharmony_ci console.info('Promise returned to indicate that the CaptureSession instance is released successfully.'); 6450e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 6451e41f4b71Sopenharmony_ci console.error(`Failed to release the CaptureSession instance, error code: ${err.code}.`); 6452e41f4b71Sopenharmony_ci }); 6453e41f4b71Sopenharmony_ci} 6454e41f4b71Sopenharmony_ci``` 6455e41f4b71Sopenharmony_ci 6456e41f4b71Sopenharmony_ci### hasFlash<sup>(deprecated)</sup> 6457e41f4b71Sopenharmony_ci 6458e41f4b71Sopenharmony_cihasFlash(): boolean 6459e41f4b71Sopenharmony_ci 6460e41f4b71Sopenharmony_ci检测是否有闪光灯。 6461e41f4b71Sopenharmony_ci 6462e41f4b71Sopenharmony_ci> **说明:** 6463e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Flash.hasFlash](#hasflash11)替代。 6464e41f4b71Sopenharmony_ci 6465e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6466e41f4b71Sopenharmony_ci 6467e41f4b71Sopenharmony_ci**返回值:** 6468e41f4b71Sopenharmony_ci 6469e41f4b71Sopenharmony_ci| 类型 | 说明 | 6470e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6471e41f4b71Sopenharmony_ci| boolean | 返回true表示设备支持闪光灯,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6472e41f4b71Sopenharmony_ci 6473e41f4b71Sopenharmony_ci**错误码:** 6474e41f4b71Sopenharmony_ci 6475e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6476e41f4b71Sopenharmony_ci 6477e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6478e41f4b71Sopenharmony_ci| --------------- | --------------- | 6479e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6480e41f4b71Sopenharmony_ci 6481e41f4b71Sopenharmony_ci**示例:** 6482e41f4b71Sopenharmony_ci 6483e41f4b71Sopenharmony_ci```ts 6484e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6485e41f4b71Sopenharmony_ci 6486e41f4b71Sopenharmony_cifunction hasFlash(captureSession: camera.CaptureSession): boolean { 6487e41f4b71Sopenharmony_ci let status: boolean = false; 6488e41f4b71Sopenharmony_ci try { 6489e41f4b71Sopenharmony_ci status = captureSession.hasFlash(); 6490e41f4b71Sopenharmony_ci } catch (error) { 6491e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6492e41f4b71Sopenharmony_ci let err = error as BusinessError; 6493e41f4b71Sopenharmony_ci console.error(`The hasFlash call failed. error code: ${err.code}`); 6494e41f4b71Sopenharmony_ci } 6495e41f4b71Sopenharmony_ci return status; 6496e41f4b71Sopenharmony_ci} 6497e41f4b71Sopenharmony_ci``` 6498e41f4b71Sopenharmony_ci 6499e41f4b71Sopenharmony_ci### isFlashModeSupported<sup>(deprecated)</sup> 6500e41f4b71Sopenharmony_ci 6501e41f4b71Sopenharmony_ciisFlashModeSupported(flashMode: FlashMode): boolean 6502e41f4b71Sopenharmony_ci 6503e41f4b71Sopenharmony_ci检测闪光灯模式是否支持。 6504e41f4b71Sopenharmony_ci 6505e41f4b71Sopenharmony_ci> **说明:** 6506e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Flash.isFlashModeSupported](#isflashmodesupported11)替代。 6507e41f4b71Sopenharmony_ci 6508e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6509e41f4b71Sopenharmony_ci 6510e41f4b71Sopenharmony_ci**参数:** 6511e41f4b71Sopenharmony_ci 6512e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6513e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | --------------------------------- | 6514e41f4b71Sopenharmony_ci| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | 6515e41f4b71Sopenharmony_ci 6516e41f4b71Sopenharmony_ci**返回值:** 6517e41f4b71Sopenharmony_ci 6518e41f4b71Sopenharmony_ci| 类型 | 说明 | 6519e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6520e41f4b71Sopenharmony_ci| boolean | 返回true表示支持该闪光灯模式,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6521e41f4b71Sopenharmony_ci 6522e41f4b71Sopenharmony_ci**错误码:** 6523e41f4b71Sopenharmony_ci 6524e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6525e41f4b71Sopenharmony_ci 6526e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6527e41f4b71Sopenharmony_ci| --------------- | --------------- | 6528e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6529e41f4b71Sopenharmony_ci 6530e41f4b71Sopenharmony_ci**示例:** 6531e41f4b71Sopenharmony_ci 6532e41f4b71Sopenharmony_ci```ts 6533e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6534e41f4b71Sopenharmony_ci 6535e41f4b71Sopenharmony_cifunction isFlashModeSupported(captureSession: camera.CaptureSession): boolean { 6536e41f4b71Sopenharmony_ci let status: boolean = false; 6537e41f4b71Sopenharmony_ci try { 6538e41f4b71Sopenharmony_ci status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO); 6539e41f4b71Sopenharmony_ci } catch (error) { 6540e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6541e41f4b71Sopenharmony_ci let err = error as BusinessError; 6542e41f4b71Sopenharmony_ci console.error(`The isFlashModeSupported call failed. error code: ${err.code}`); 6543e41f4b71Sopenharmony_ci } 6544e41f4b71Sopenharmony_ci return status; 6545e41f4b71Sopenharmony_ci} 6546e41f4b71Sopenharmony_ci``` 6547e41f4b71Sopenharmony_ci 6548e41f4b71Sopenharmony_ci### setFlashMode<sup>(deprecated)</sup> 6549e41f4b71Sopenharmony_ci 6550e41f4b71Sopenharmony_cisetFlashMode(flashMode: FlashMode): void 6551e41f4b71Sopenharmony_ci 6552e41f4b71Sopenharmony_ci设置闪光灯模式。 6553e41f4b71Sopenharmony_ci 6554e41f4b71Sopenharmony_ci进行设置之前,需要先检查: 6555e41f4b71Sopenharmony_ci 6556e41f4b71Sopenharmony_ci1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflashdeprecated)。 6557e41f4b71Sopenharmony_ci2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupporteddeprecated)。 6558e41f4b71Sopenharmony_ci 6559e41f4b71Sopenharmony_ci> **说明:** 6560e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Flash.setFlashMode](#setflashmode11)替代。 6561e41f4b71Sopenharmony_ci 6562e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6563e41f4b71Sopenharmony_ci 6564e41f4b71Sopenharmony_ci**参数:** 6565e41f4b71Sopenharmony_ci 6566e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6567e41f4b71Sopenharmony_ci| --------- | ----------------------- | ---- | -------------------- | 6568e41f4b71Sopenharmony_ci| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | 6569e41f4b71Sopenharmony_ci 6570e41f4b71Sopenharmony_ci**错误码:** 6571e41f4b71Sopenharmony_ci 6572e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6573e41f4b71Sopenharmony_ci 6574e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6575e41f4b71Sopenharmony_ci| --------------- | --------------- | 6576e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6577e41f4b71Sopenharmony_ci 6578e41f4b71Sopenharmony_ci**示例:** 6579e41f4b71Sopenharmony_ci 6580e41f4b71Sopenharmony_ci```ts 6581e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6582e41f4b71Sopenharmony_ci 6583e41f4b71Sopenharmony_cifunction setFlashMode(captureSession: camera.CaptureSession): void { 6584e41f4b71Sopenharmony_ci try { 6585e41f4b71Sopenharmony_ci captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO); 6586e41f4b71Sopenharmony_ci } catch (error) { 6587e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6588e41f4b71Sopenharmony_ci let err = error as BusinessError; 6589e41f4b71Sopenharmony_ci console.error(`The setFlashMode call failed. error code: ${err.code}`); 6590e41f4b71Sopenharmony_ci } 6591e41f4b71Sopenharmony_ci} 6592e41f4b71Sopenharmony_ci``` 6593e41f4b71Sopenharmony_ci 6594e41f4b71Sopenharmony_ci### getFlashMode<sup>(deprecated)</sup> 6595e41f4b71Sopenharmony_ci 6596e41f4b71Sopenharmony_cigetFlashMode(): FlashMode 6597e41f4b71Sopenharmony_ci 6598e41f4b71Sopenharmony_ci获取当前设备的闪光灯模式。 6599e41f4b71Sopenharmony_ci 6600e41f4b71Sopenharmony_ci> **说明:** 6601e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Flash.getFlashMode](#getflashmode11)替代。 6602e41f4b71Sopenharmony_ci 6603e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6604e41f4b71Sopenharmony_ci 6605e41f4b71Sopenharmony_ci**返回值:** 6606e41f4b71Sopenharmony_ci 6607e41f4b71Sopenharmony_ci| 类型 | 说明 | 6608e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6609e41f4b71Sopenharmony_ci| [FlashMode](#flashmode) | 获取当前设备的闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6610e41f4b71Sopenharmony_ci 6611e41f4b71Sopenharmony_ci**错误码:** 6612e41f4b71Sopenharmony_ci 6613e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6614e41f4b71Sopenharmony_ci 6615e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6616e41f4b71Sopenharmony_ci| --------------- | --------------- | 6617e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6618e41f4b71Sopenharmony_ci 6619e41f4b71Sopenharmony_ci**示例:** 6620e41f4b71Sopenharmony_ci 6621e41f4b71Sopenharmony_ci```ts 6622e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6623e41f4b71Sopenharmony_ci 6624e41f4b71Sopenharmony_cifunction getFlashMode(captureSession: camera.CaptureSession): camera.FlashMode | undefined { 6625e41f4b71Sopenharmony_ci let flashMode: camera.FlashMode | undefined = undefined; 6626e41f4b71Sopenharmony_ci try { 6627e41f4b71Sopenharmony_ci flashMode = captureSession.getFlashMode(); 6628e41f4b71Sopenharmony_ci } catch (error) { 6629e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6630e41f4b71Sopenharmony_ci let err = error as BusinessError; 6631e41f4b71Sopenharmony_ci console.error(`The getFlashMode call failed.error code: ${err.code}`); 6632e41f4b71Sopenharmony_ci } 6633e41f4b71Sopenharmony_ci return flashMode; 6634e41f4b71Sopenharmony_ci} 6635e41f4b71Sopenharmony_ci``` 6636e41f4b71Sopenharmony_ci 6637e41f4b71Sopenharmony_ci### isExposureModeSupported<sup>(deprecated)</sup> 6638e41f4b71Sopenharmony_ci 6639e41f4b71Sopenharmony_ciisExposureModeSupported(aeMode: ExposureMode): boolean 6640e41f4b71Sopenharmony_ci 6641e41f4b71Sopenharmony_ci检测曝光模式是否支持。 6642e41f4b71Sopenharmony_ci 6643e41f4b71Sopenharmony_ci> **说明:** 6644e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.isExposureModeSupported](#isexposuremodesupported11)替代。 6645e41f4b71Sopenharmony_ci 6646e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6647e41f4b71Sopenharmony_ci 6648e41f4b71Sopenharmony_ci**参数:** 6649e41f4b71Sopenharmony_ci 6650e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6651e41f4b71Sopenharmony_ci| -------- | -------------------------------| ---- | ----------------------------- | 6652e41f4b71Sopenharmony_ci| aeMode | [ExposureMode](#exposuremode) | 是 | 曝光模式。 | 6653e41f4b71Sopenharmony_ci 6654e41f4b71Sopenharmony_ci**返回值:** 6655e41f4b71Sopenharmony_ci 6656e41f4b71Sopenharmony_ci| 类型 | 说明 | 6657e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6658e41f4b71Sopenharmony_ci| boolean | 获取是否支持曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6659e41f4b71Sopenharmony_ci 6660e41f4b71Sopenharmony_ci**错误码:** 6661e41f4b71Sopenharmony_ci 6662e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6663e41f4b71Sopenharmony_ci 6664e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6665e41f4b71Sopenharmony_ci| --------------- | --------------- | 6666e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6667e41f4b71Sopenharmony_ci 6668e41f4b71Sopenharmony_ci**示例:** 6669e41f4b71Sopenharmony_ci 6670e41f4b71Sopenharmony_ci```ts 6671e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6672e41f4b71Sopenharmony_ci 6673e41f4b71Sopenharmony_cifunction isExposureModeSupported(captureSession: camera.CaptureSession): boolean { 6674e41f4b71Sopenharmony_ci let isSupported: boolean = false; 6675e41f4b71Sopenharmony_ci try { 6676e41f4b71Sopenharmony_ci isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED); 6677e41f4b71Sopenharmony_ci } catch (error) { 6678e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6679e41f4b71Sopenharmony_ci let err = error as BusinessError; 6680e41f4b71Sopenharmony_ci console.error(`The isExposureModeSupported call failed. error code: ${err.code}`); 6681e41f4b71Sopenharmony_ci } 6682e41f4b71Sopenharmony_ci return isSupported; 6683e41f4b71Sopenharmony_ci} 6684e41f4b71Sopenharmony_ci``` 6685e41f4b71Sopenharmony_ci 6686e41f4b71Sopenharmony_ci### getExposureMode<sup>(deprecated)</sup> 6687e41f4b71Sopenharmony_ci 6688e41f4b71Sopenharmony_cigetExposureMode(): ExposureMode 6689e41f4b71Sopenharmony_ci 6690e41f4b71Sopenharmony_ci获取当前曝光模式。 6691e41f4b71Sopenharmony_ci 6692e41f4b71Sopenharmony_ci> **说明:** 6693e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.getExposureMode](#getexposuremode11)替代。 6694e41f4b71Sopenharmony_ci 6695e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6696e41f4b71Sopenharmony_ci 6697e41f4b71Sopenharmony_ci**返回值:** 6698e41f4b71Sopenharmony_ci 6699e41f4b71Sopenharmony_ci| 类型 | 说明 | 6700e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6701e41f4b71Sopenharmony_ci| [ExposureMode](#exposuremode) | 获取当前曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6702e41f4b71Sopenharmony_ci 6703e41f4b71Sopenharmony_ci**错误码:** 6704e41f4b71Sopenharmony_ci 6705e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6706e41f4b71Sopenharmony_ci 6707e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6708e41f4b71Sopenharmony_ci| --------------- | --------------- | 6709e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6710e41f4b71Sopenharmony_ci 6711e41f4b71Sopenharmony_ci**示例:** 6712e41f4b71Sopenharmony_ci 6713e41f4b71Sopenharmony_ci```ts 6714e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6715e41f4b71Sopenharmony_ci 6716e41f4b71Sopenharmony_cifunction getExposureMode(captureSession: camera.CaptureSession): camera.ExposureMode | undefined { 6717e41f4b71Sopenharmony_ci let exposureMode: camera.ExposureMode | undefined = undefined; 6718e41f4b71Sopenharmony_ci try { 6719e41f4b71Sopenharmony_ci exposureMode = captureSession.getExposureMode(); 6720e41f4b71Sopenharmony_ci } catch (error) { 6721e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6722e41f4b71Sopenharmony_ci let err = error as BusinessError; 6723e41f4b71Sopenharmony_ci console.error(`The getExposureMode call failed. error code: ${err.code}`); 6724e41f4b71Sopenharmony_ci } 6725e41f4b71Sopenharmony_ci return exposureMode; 6726e41f4b71Sopenharmony_ci} 6727e41f4b71Sopenharmony_ci``` 6728e41f4b71Sopenharmony_ci 6729e41f4b71Sopenharmony_ci### setExposureMode<sup>(deprecated)</sup> 6730e41f4b71Sopenharmony_ci 6731e41f4b71Sopenharmony_cisetExposureMode(aeMode: ExposureMode): void 6732e41f4b71Sopenharmony_ci 6733e41f4b71Sopenharmony_ci设置曝光模式。进行设置之前,需要先检查设备是否支持指定的曝光模式,可使用方法[isExposureModeSupported](#isexposuremodesupporteddeprecated)。 6734e41f4b71Sopenharmony_ci 6735e41f4b71Sopenharmony_ci> **说明:** 6736e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.setExposureMode](#setexposuremode11)替代。 6737e41f4b71Sopenharmony_ci 6738e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6739e41f4b71Sopenharmony_ci 6740e41f4b71Sopenharmony_ci**参数:** 6741e41f4b71Sopenharmony_ci 6742e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6743e41f4b71Sopenharmony_ci| -------- | -------------------------------| ---- | ----------------------- | 6744e41f4b71Sopenharmony_ci| aeMode | [ExposureMode](#exposuremode) | 是 | 曝光模式。 | 6745e41f4b71Sopenharmony_ci 6746e41f4b71Sopenharmony_ci**错误码:** 6747e41f4b71Sopenharmony_ci 6748e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6749e41f4b71Sopenharmony_ci 6750e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6751e41f4b71Sopenharmony_ci| --------------- | --------------- | 6752e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6753e41f4b71Sopenharmony_ci 6754e41f4b71Sopenharmony_ci**示例:** 6755e41f4b71Sopenharmony_ci 6756e41f4b71Sopenharmony_ci```ts 6757e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6758e41f4b71Sopenharmony_ci 6759e41f4b71Sopenharmony_cifunction setExposureMode(captureSession: camera.CaptureSession): void { 6760e41f4b71Sopenharmony_ci try { 6761e41f4b71Sopenharmony_ci captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED); 6762e41f4b71Sopenharmony_ci } catch (error) { 6763e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6764e41f4b71Sopenharmony_ci let err = error as BusinessError; 6765e41f4b71Sopenharmony_ci console.error(`The setExposureMode call failed. error code: ${err.code}`); 6766e41f4b71Sopenharmony_ci } 6767e41f4b71Sopenharmony_ci} 6768e41f4b71Sopenharmony_ci``` 6769e41f4b71Sopenharmony_ci 6770e41f4b71Sopenharmony_ci### getMeteringPoint<sup>(deprecated)</sup> 6771e41f4b71Sopenharmony_ci 6772e41f4b71Sopenharmony_cigetMeteringPoint(): Point 6773e41f4b71Sopenharmony_ci 6774e41f4b71Sopenharmony_ci查询曝光区域中心点。 6775e41f4b71Sopenharmony_ci 6776e41f4b71Sopenharmony_ci> **说明:** 6777e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.getMeteringPoint](#getmeteringpoint11)替代。 6778e41f4b71Sopenharmony_ci 6779e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6780e41f4b71Sopenharmony_ci 6781e41f4b71Sopenharmony_ci**返回值:** 6782e41f4b71Sopenharmony_ci 6783e41f4b71Sopenharmony_ci| 类型 | 说明 | 6784e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6785e41f4b71Sopenharmony_ci| [Point](#point) | 获取当前曝光点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6786e41f4b71Sopenharmony_ci 6787e41f4b71Sopenharmony_ci**错误码:** 6788e41f4b71Sopenharmony_ci 6789e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6790e41f4b71Sopenharmony_ci 6791e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6792e41f4b71Sopenharmony_ci| --------------- | --------------- | 6793e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6794e41f4b71Sopenharmony_ci 6795e41f4b71Sopenharmony_ci**示例:** 6796e41f4b71Sopenharmony_ci 6797e41f4b71Sopenharmony_ci```ts 6798e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6799e41f4b71Sopenharmony_ci 6800e41f4b71Sopenharmony_cifunction getMeteringPoint(captureSession: camera.CaptureSession): camera.Point | undefined { 6801e41f4b71Sopenharmony_ci let exposurePoint: camera.Point | undefined = undefined; 6802e41f4b71Sopenharmony_ci try { 6803e41f4b71Sopenharmony_ci exposurePoint = captureSession.getMeteringPoint(); 6804e41f4b71Sopenharmony_ci } catch (error) { 6805e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6806e41f4b71Sopenharmony_ci let err = error as BusinessError; 6807e41f4b71Sopenharmony_ci console.error(`The getMeteringPoint call failed. error code: ${err.code}`); 6808e41f4b71Sopenharmony_ci } 6809e41f4b71Sopenharmony_ci return exposurePoint; 6810e41f4b71Sopenharmony_ci} 6811e41f4b71Sopenharmony_ci``` 6812e41f4b71Sopenharmony_ci 6813e41f4b71Sopenharmony_ci### setMeteringPoint<sup>(deprecated)</sup> 6814e41f4b71Sopenharmony_ci 6815e41f4b71Sopenharmony_cisetMeteringPoint(point: Point): void 6816e41f4b71Sopenharmony_ci 6817e41f4b71Sopenharmony_ci设置曝光区域中心点,曝光点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。 6818e41f4b71Sopenharmony_ci此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以 6819e41f4b71Sopenharmony_ci设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y}, 6820e41f4b71Sopenharmony_ci则转换后的坐标点为{y/h,1-x/w}。 6821e41f4b71Sopenharmony_ci 6822e41f4b71Sopenharmony_ci> **说明:** 6823e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.setMeteringPoint](#setmeteringpoint11)替代。 6824e41f4b71Sopenharmony_ci 6825e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6826e41f4b71Sopenharmony_ci 6827e41f4b71Sopenharmony_ci**参数:** 6828e41f4b71Sopenharmony_ci 6829e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6830e41f4b71Sopenharmony_ci| ------------- | -------------------------------| ---- | ------------------- | 6831e41f4b71Sopenharmony_ci| point | [Point](#point) | 是 | 曝光点,x,y设置范围应在[0,1]之内,超过范围,如果小于0设置0,大于1设置1。 | 6832e41f4b71Sopenharmony_ci 6833e41f4b71Sopenharmony_ci**错误码:** 6834e41f4b71Sopenharmony_ci 6835e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6836e41f4b71Sopenharmony_ci 6837e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6838e41f4b71Sopenharmony_ci| --------------- | --------------- | 6839e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6840e41f4b71Sopenharmony_ci 6841e41f4b71Sopenharmony_ci**示例:** 6842e41f4b71Sopenharmony_ci 6843e41f4b71Sopenharmony_ci```ts 6844e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6845e41f4b71Sopenharmony_ci 6846e41f4b71Sopenharmony_cifunction setMeteringPoint(captureSession: camera.CaptureSession): void { 6847e41f4b71Sopenharmony_ci const point: camera.Point = {x: 1, y: 1}; 6848e41f4b71Sopenharmony_ci try { 6849e41f4b71Sopenharmony_ci captureSession.setMeteringPoint(point); 6850e41f4b71Sopenharmony_ci } catch (error) { 6851e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6852e41f4b71Sopenharmony_ci let err = error as BusinessError; 6853e41f4b71Sopenharmony_ci console.error(`The setMeteringPoint call failed. error code: ${err.code}`); 6854e41f4b71Sopenharmony_ci } 6855e41f4b71Sopenharmony_ci} 6856e41f4b71Sopenharmony_ci``` 6857e41f4b71Sopenharmony_ci 6858e41f4b71Sopenharmony_ci### getExposureBiasRange<sup>(deprecated)</sup> 6859e41f4b71Sopenharmony_ci 6860e41f4b71Sopenharmony_cigetExposureBiasRange(): Array\<number\> 6861e41f4b71Sopenharmony_ci 6862e41f4b71Sopenharmony_ci查询曝光补偿范围。 6863e41f4b71Sopenharmony_ci 6864e41f4b71Sopenharmony_ci> **说明:** 6865e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.getExposureBiasRange](#getexposurebiasrange11)替代。 6866e41f4b71Sopenharmony_ci 6867e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6868e41f4b71Sopenharmony_ci 6869e41f4b71Sopenharmony_ci**返回值:** 6870e41f4b71Sopenharmony_ci 6871e41f4b71Sopenharmony_ci| 类型 | 说明 | 6872e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6873e41f4b71Sopenharmony_ci| Array\<number\> | 获取补偿范围的数组。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6874e41f4b71Sopenharmony_ci 6875e41f4b71Sopenharmony_ci**错误码:** 6876e41f4b71Sopenharmony_ci 6877e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6878e41f4b71Sopenharmony_ci 6879e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6880e41f4b71Sopenharmony_ci| --------------- | --------------- | 6881e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6882e41f4b71Sopenharmony_ci 6883e41f4b71Sopenharmony_ci**示例:** 6884e41f4b71Sopenharmony_ci 6885e41f4b71Sopenharmony_ci```ts 6886e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6887e41f4b71Sopenharmony_ci 6888e41f4b71Sopenharmony_cifunction getExposureBiasRange(captureSession: camera.CaptureSession): Array<number> { 6889e41f4b71Sopenharmony_ci let biasRangeArray: Array<number> = []; 6890e41f4b71Sopenharmony_ci try { 6891e41f4b71Sopenharmony_ci biasRangeArray = captureSession.getExposureBiasRange(); 6892e41f4b71Sopenharmony_ci } catch (error) { 6893e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6894e41f4b71Sopenharmony_ci let err = error as BusinessError; 6895e41f4b71Sopenharmony_ci console.error(`The getExposureBiasRange call failed. error code: ${err.code}`); 6896e41f4b71Sopenharmony_ci } 6897e41f4b71Sopenharmony_ci return biasRangeArray; 6898e41f4b71Sopenharmony_ci} 6899e41f4b71Sopenharmony_ci``` 6900e41f4b71Sopenharmony_ci 6901e41f4b71Sopenharmony_ci### setExposureBias<sup>(deprecated)</sup> 6902e41f4b71Sopenharmony_ci 6903e41f4b71Sopenharmony_cisetExposureBias(exposureBias: number): void 6904e41f4b71Sopenharmony_ci 6905e41f4b71Sopenharmony_ci设置曝光补偿,曝光补偿值(EV)。 6906e41f4b71Sopenharmony_ci 6907e41f4b71Sopenharmony_ci进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrangedeprecated)查询支持的范围。 6908e41f4b71Sopenharmony_ci 6909e41f4b71Sopenharmony_ci> **说明:** 6910e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.setExposureBias](#setexposurebias11)替代。 6911e41f4b71Sopenharmony_ci 6912e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6913e41f4b71Sopenharmony_ci 6914e41f4b71Sopenharmony_ci**参数:** 6915e41f4b71Sopenharmony_ci 6916e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 6917e41f4b71Sopenharmony_ci| -------- | -------------------------------|-----|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 6918e41f4b71Sopenharmony_ci| exposureBias | number | 是 | 曝光补偿,[getExposureBiasRange](#getexposurebiasrange11)查询支持的范围,如果设置超过支持范围的值,自动匹配到就近临界点。曝光补偿存在步长,如步长为0.5。则设置1.2时,获取到实际生效曝光补偿为1.0。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。传参为null或者undefined,作为0处理,曝光补偿设置0。 | 6919e41f4b71Sopenharmony_ci 6920e41f4b71Sopenharmony_ci**错误码:** 6921e41f4b71Sopenharmony_ci 6922e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6923e41f4b71Sopenharmony_ci 6924e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6925e41f4b71Sopenharmony_ci| --------------- | --------------- | 6926e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6927e41f4b71Sopenharmony_ci 6928e41f4b71Sopenharmony_ci**示例:** 6929e41f4b71Sopenharmony_ci 6930e41f4b71Sopenharmony_ci```ts 6931e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6932e41f4b71Sopenharmony_ci 6933e41f4b71Sopenharmony_cifunction setExposureBias(captureSession: camera.CaptureSession, biasRangeArray: Array<number>): void { 6934e41f4b71Sopenharmony_ci if (biasRangeArray && biasRangeArray.length > 0) { 6935e41f4b71Sopenharmony_ci let exposureBias = biasRangeArray[0]; 6936e41f4b71Sopenharmony_ci try { 6937e41f4b71Sopenharmony_ci captureSession.setExposureBias(exposureBias); 6938e41f4b71Sopenharmony_ci } catch (error) { 6939e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6940e41f4b71Sopenharmony_ci let err = error as BusinessError; 6941e41f4b71Sopenharmony_ci console.error(`The setExposureBias call failed. error code: ${err.code}`); 6942e41f4b71Sopenharmony_ci } 6943e41f4b71Sopenharmony_ci } 6944e41f4b71Sopenharmony_ci} 6945e41f4b71Sopenharmony_ci``` 6946e41f4b71Sopenharmony_ci 6947e41f4b71Sopenharmony_ci### getExposureValue<sup>(deprecated)</sup> 6948e41f4b71Sopenharmony_ci 6949e41f4b71Sopenharmony_cigetExposureValue(): number 6950e41f4b71Sopenharmony_ci 6951e41f4b71Sopenharmony_ci查询当前曝光值。 6952e41f4b71Sopenharmony_ci 6953e41f4b71Sopenharmony_ci> **说明:** 6954e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[AutoExposure.getExposureValue](#getexposurevalue11)替代。 6955e41f4b71Sopenharmony_ci 6956e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 6957e41f4b71Sopenharmony_ci 6958e41f4b71Sopenharmony_ci**返回值:** 6959e41f4b71Sopenharmony_ci 6960e41f4b71Sopenharmony_ci| 类型 | 说明 | 6961e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 6962e41f4b71Sopenharmony_ci| number | 获取曝光值。曝光补偿存在步长,如步长为0.5。则设置1.2时,获取到实际生效曝光补偿为1.0。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 6963e41f4b71Sopenharmony_ci 6964e41f4b71Sopenharmony_ci**错误码:** 6965e41f4b71Sopenharmony_ci 6966e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 6967e41f4b71Sopenharmony_ci 6968e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 6969e41f4b71Sopenharmony_ci| --------------- | --------------- | 6970e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 6971e41f4b71Sopenharmony_ci 6972e41f4b71Sopenharmony_ci**示例:** 6973e41f4b71Sopenharmony_ci 6974e41f4b71Sopenharmony_ci```ts 6975e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 6976e41f4b71Sopenharmony_ci 6977e41f4b71Sopenharmony_cifunction getExposureValue(captureSession: camera.CaptureSession): number { 6978e41f4b71Sopenharmony_ci const invalidValue: number = -1; 6979e41f4b71Sopenharmony_ci let exposureValue: number = invalidValue; 6980e41f4b71Sopenharmony_ci try { 6981e41f4b71Sopenharmony_ci exposureValue = captureSession.getExposureValue(); 6982e41f4b71Sopenharmony_ci } catch (error) { 6983e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 6984e41f4b71Sopenharmony_ci let err = error as BusinessError; 6985e41f4b71Sopenharmony_ci console.error(`The getExposureValue call failed. error code: ${err.code}`); 6986e41f4b71Sopenharmony_ci } 6987e41f4b71Sopenharmony_ci return exposureValue; 6988e41f4b71Sopenharmony_ci} 6989e41f4b71Sopenharmony_ci``` 6990e41f4b71Sopenharmony_ci 6991e41f4b71Sopenharmony_ci### isFocusModeSupported<sup>(deprecated)</sup> 6992e41f4b71Sopenharmony_ci 6993e41f4b71Sopenharmony_ciisFocusModeSupported(afMode: FocusMode): boolean 6994e41f4b71Sopenharmony_ci 6995e41f4b71Sopenharmony_ci检测对焦模式是否支持。 6996e41f4b71Sopenharmony_ci 6997e41f4b71Sopenharmony_ci> **说明:** 6998e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Focus.isFocusModeSupported](#isfocusmodesupported11)替代。 6999e41f4b71Sopenharmony_ci 7000e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7001e41f4b71Sopenharmony_ci 7002e41f4b71Sopenharmony_ci**参数:** 7003e41f4b71Sopenharmony_ci 7004e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7005e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------- | 7006e41f4b71Sopenharmony_ci| afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。 | 7007e41f4b71Sopenharmony_ci 7008e41f4b71Sopenharmony_ci**返回值:** 7009e41f4b71Sopenharmony_ci 7010e41f4b71Sopenharmony_ci| 类型 | 说明 | 7011e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7012e41f4b71Sopenharmony_ci| boolean | 返回true表示支持该焦距模式,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7013e41f4b71Sopenharmony_ci 7014e41f4b71Sopenharmony_ci**错误码:** 7015e41f4b71Sopenharmony_ci 7016e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7017e41f4b71Sopenharmony_ci 7018e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7019e41f4b71Sopenharmony_ci| --------------- | --------------- | 7020e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7021e41f4b71Sopenharmony_ci 7022e41f4b71Sopenharmony_ci**示例:** 7023e41f4b71Sopenharmony_ci 7024e41f4b71Sopenharmony_ci```ts 7025e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7026e41f4b71Sopenharmony_ci 7027e41f4b71Sopenharmony_cifunction isFocusModeSupported(captureSession: camera.CaptureSession): boolean { 7028e41f4b71Sopenharmony_ci let status: boolean = false; 7029e41f4b71Sopenharmony_ci try { 7030e41f4b71Sopenharmony_ci status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO); 7031e41f4b71Sopenharmony_ci } catch (error) { 7032e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7033e41f4b71Sopenharmony_ci let err = error as BusinessError; 7034e41f4b71Sopenharmony_ci console.error(`The isFocusModeSupported call failed. error code: ${err.code}`); 7035e41f4b71Sopenharmony_ci } 7036e41f4b71Sopenharmony_ci return status; 7037e41f4b71Sopenharmony_ci} 7038e41f4b71Sopenharmony_ci``` 7039e41f4b71Sopenharmony_ci 7040e41f4b71Sopenharmony_ci### setFocusMode<sup>(deprecated)</sup> 7041e41f4b71Sopenharmony_ci 7042e41f4b71Sopenharmony_cisetFocusMode(afMode: FocusMode): void 7043e41f4b71Sopenharmony_ci 7044e41f4b71Sopenharmony_ci设置对焦模式。 7045e41f4b71Sopenharmony_ci 7046e41f4b71Sopenharmony_ci进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupporteddeprecated)。 7047e41f4b71Sopenharmony_ci 7048e41f4b71Sopenharmony_ci> **说明:** 7049e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Focus.setFocusMode](#setfocusmode11)替代。 7050e41f4b71Sopenharmony_ci 7051e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7052e41f4b71Sopenharmony_ci 7053e41f4b71Sopenharmony_ci**参数:** 7054e41f4b71Sopenharmony_ci 7055e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7056e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------- | 7057e41f4b71Sopenharmony_ci| afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。 | 7058e41f4b71Sopenharmony_ci 7059e41f4b71Sopenharmony_ci**错误码:** 7060e41f4b71Sopenharmony_ci 7061e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7062e41f4b71Sopenharmony_ci 7063e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7064e41f4b71Sopenharmony_ci| --------------- | --------------- | 7065e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7066e41f4b71Sopenharmony_ci 7067e41f4b71Sopenharmony_ci**示例:** 7068e41f4b71Sopenharmony_ci 7069e41f4b71Sopenharmony_ci```ts 7070e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7071e41f4b71Sopenharmony_ci 7072e41f4b71Sopenharmony_cifunction setFocusMode(captureSession: camera.CaptureSession): void { 7073e41f4b71Sopenharmony_ci try { 7074e41f4b71Sopenharmony_ci captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO); 7075e41f4b71Sopenharmony_ci } catch (error) { 7076e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7077e41f4b71Sopenharmony_ci let err = error as BusinessError; 7078e41f4b71Sopenharmony_ci console.error(`The setFocusMode call failed. error code: ${err.code}`); 7079e41f4b71Sopenharmony_ci } 7080e41f4b71Sopenharmony_ci} 7081e41f4b71Sopenharmony_ci``` 7082e41f4b71Sopenharmony_ci 7083e41f4b71Sopenharmony_ci### getFocusMode<sup>(deprecated)</sup> 7084e41f4b71Sopenharmony_ci 7085e41f4b71Sopenharmony_cigetFocusMode(): FocusMode 7086e41f4b71Sopenharmony_ci 7087e41f4b71Sopenharmony_ci获取当前的对焦模式。 7088e41f4b71Sopenharmony_ci 7089e41f4b71Sopenharmony_ci> **说明:** 7090e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Focus.getFocusMode](#getfocusmode11)替代。 7091e41f4b71Sopenharmony_ci 7092e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7093e41f4b71Sopenharmony_ci 7094e41f4b71Sopenharmony_ci**返回值:** 7095e41f4b71Sopenharmony_ci 7096e41f4b71Sopenharmony_ci| 类型 | 说明 | 7097e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7098e41f4b71Sopenharmony_ci| [FocusMode](#focusmode) | 获取当前设备的焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7099e41f4b71Sopenharmony_ci 7100e41f4b71Sopenharmony_ci**错误码:** 7101e41f4b71Sopenharmony_ci 7102e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7103e41f4b71Sopenharmony_ci 7104e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7105e41f4b71Sopenharmony_ci| --------------- | --------------- | 7106e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7107e41f4b71Sopenharmony_ci 7108e41f4b71Sopenharmony_ci**示例:** 7109e41f4b71Sopenharmony_ci 7110e41f4b71Sopenharmony_ci```ts 7111e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7112e41f4b71Sopenharmony_ci 7113e41f4b71Sopenharmony_cifunction getFocusMode(captureSession: camera.CaptureSession): camera.FocusMode | undefined { 7114e41f4b71Sopenharmony_ci let afMode: camera.FocusMode | undefined = undefined; 7115e41f4b71Sopenharmony_ci try { 7116e41f4b71Sopenharmony_ci afMode = captureSession.getFocusMode(); 7117e41f4b71Sopenharmony_ci } catch (error) { 7118e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7119e41f4b71Sopenharmony_ci let err = error as BusinessError; 7120e41f4b71Sopenharmony_ci console.error(`The getFocusMode call failed. error code: ${err.code}`); 7121e41f4b71Sopenharmony_ci } 7122e41f4b71Sopenharmony_ci return afMode; 7123e41f4b71Sopenharmony_ci} 7124e41f4b71Sopenharmony_ci``` 7125e41f4b71Sopenharmony_ci 7126e41f4b71Sopenharmony_ci### setFocusPoint<sup>(deprecated)</sup> 7127e41f4b71Sopenharmony_ci 7128e41f4b71Sopenharmony_cisetFocusPoint(point: Point): void 7129e41f4b71Sopenharmony_ci 7130e41f4b71Sopenharmony_ci设置焦点,焦点应在0-1坐标系内,该坐标系左上角为{0,0},右下角为{1,1}。 7131e41f4b71Sopenharmony_ci此坐标系是以设备充电口在右侧时的横向设备方向为基准的,例如应用的预览界面布局以 7132e41f4b71Sopenharmony_ci设备充电口在下侧时的竖向方向为基准,布局宽高为{w,h},且触碰点为{x,y}, 7133e41f4b71Sopenharmony_ci则转换后的坐标点为{y/h,1-x/w}。 7134e41f4b71Sopenharmony_ci 7135e41f4b71Sopenharmony_ci> **说明:** 7136e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Focus.setFocusPoint](#setfocuspoint11)替代。 7137e41f4b71Sopenharmony_ci 7138e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7139e41f4b71Sopenharmony_ci 7140e41f4b71Sopenharmony_ci**参数:** 7141e41f4b71Sopenharmony_ci 7142e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7143e41f4b71Sopenharmony_ci|-------| ----------------------- |-----| ------------------- | 7144e41f4b71Sopenharmony_ci| point | [Point](#point) | 是 | 焦点。x,y设置范围应在[0,1]之内,超过范围,如果小于0设置0,大于1设置1。 | 7145e41f4b71Sopenharmony_ci 7146e41f4b71Sopenharmony_ci**错误码:** 7147e41f4b71Sopenharmony_ci 7148e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7149e41f4b71Sopenharmony_ci 7150e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7151e41f4b71Sopenharmony_ci| --------------- | --------------- | 7152e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7153e41f4b71Sopenharmony_ci 7154e41f4b71Sopenharmony_ci**示例:** 7155e41f4b71Sopenharmony_ci 7156e41f4b71Sopenharmony_ci```ts 7157e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7158e41f4b71Sopenharmony_ci 7159e41f4b71Sopenharmony_cifunction setFocusPoint(captureSession: camera.CaptureSession): void { 7160e41f4b71Sopenharmony_ci const focusPoint: camera.Point = {x: 1, y: 1}; 7161e41f4b71Sopenharmony_ci try { 7162e41f4b71Sopenharmony_ci captureSession.setFocusPoint(focusPoint); 7163e41f4b71Sopenharmony_ci } catch (error) { 7164e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7165e41f4b71Sopenharmony_ci let err = error as BusinessError; 7166e41f4b71Sopenharmony_ci console.error(`The setFocusPoint call failed. error code: ${err.code}`); 7167e41f4b71Sopenharmony_ci } 7168e41f4b71Sopenharmony_ci} 7169e41f4b71Sopenharmony_ci``` 7170e41f4b71Sopenharmony_ci 7171e41f4b71Sopenharmony_ci### getFocusPoint<sup>(deprecated)</sup> 7172e41f4b71Sopenharmony_ci 7173e41f4b71Sopenharmony_cigetFocusPoint(): Point 7174e41f4b71Sopenharmony_ci 7175e41f4b71Sopenharmony_ci查询焦点。 7176e41f4b71Sopenharmony_ci 7177e41f4b71Sopenharmony_ci> **说明:** 7178e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Focus.getFocusPoint](#getfocuspoint11)替代。 7179e41f4b71Sopenharmony_ci 7180e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7181e41f4b71Sopenharmony_ci 7182e41f4b71Sopenharmony_ci**返回值:** 7183e41f4b71Sopenharmony_ci 7184e41f4b71Sopenharmony_ci| 类型 | 说明 | 7185e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7186e41f4b71Sopenharmony_ci| [Point](#point) | 用于获取当前焦点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7187e41f4b71Sopenharmony_ci 7188e41f4b71Sopenharmony_ci**错误码:** 7189e41f4b71Sopenharmony_ci 7190e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7191e41f4b71Sopenharmony_ci 7192e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7193e41f4b71Sopenharmony_ci| --------------- | --------------- | 7194e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7195e41f4b71Sopenharmony_ci 7196e41f4b71Sopenharmony_ci**示例:** 7197e41f4b71Sopenharmony_ci 7198e41f4b71Sopenharmony_ci```ts 7199e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7200e41f4b71Sopenharmony_ci 7201e41f4b71Sopenharmony_cifunction getFocusPoint(captureSession: camera.CaptureSession): camera.Point | undefined { 7202e41f4b71Sopenharmony_ci let point: camera.Point | undefined = undefined; 7203e41f4b71Sopenharmony_ci try { 7204e41f4b71Sopenharmony_ci point = captureSession.getFocusPoint(); 7205e41f4b71Sopenharmony_ci } catch (error) { 7206e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7207e41f4b71Sopenharmony_ci let err = error as BusinessError; 7208e41f4b71Sopenharmony_ci console.error(`The getFocusPoint call failed. error code: ${err.code}`); 7209e41f4b71Sopenharmony_ci } 7210e41f4b71Sopenharmony_ci return point; 7211e41f4b71Sopenharmony_ci} 7212e41f4b71Sopenharmony_ci``` 7213e41f4b71Sopenharmony_ci 7214e41f4b71Sopenharmony_ci### getFocalLength<sup>(deprecated)</sup> 7215e41f4b71Sopenharmony_ci 7216e41f4b71Sopenharmony_cigetFocalLength(): number 7217e41f4b71Sopenharmony_ci 7218e41f4b71Sopenharmony_ci查询焦距值。 7219e41f4b71Sopenharmony_ci 7220e41f4b71Sopenharmony_ci> **说明:** 7221e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Focus.getFocalLength](#getfocallength11)替代。 7222e41f4b71Sopenharmony_ci 7223e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7224e41f4b71Sopenharmony_ci 7225e41f4b71Sopenharmony_ci**返回值:** 7226e41f4b71Sopenharmony_ci 7227e41f4b71Sopenharmony_ci| 类型 | 说明 | 7228e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7229e41f4b71Sopenharmony_ci| number | 用于获取当前焦距。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7230e41f4b71Sopenharmony_ci 7231e41f4b71Sopenharmony_ci**错误码:** 7232e41f4b71Sopenharmony_ci 7233e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7234e41f4b71Sopenharmony_ci 7235e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7236e41f4b71Sopenharmony_ci| --------------- | --------------- | 7237e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7238e41f4b71Sopenharmony_ci 7239e41f4b71Sopenharmony_ci**示例:** 7240e41f4b71Sopenharmony_ci 7241e41f4b71Sopenharmony_ci```ts 7242e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7243e41f4b71Sopenharmony_ci 7244e41f4b71Sopenharmony_cifunction getFocalLength(captureSession: camera.CaptureSession): number { 7245e41f4b71Sopenharmony_ci const invalidValue: number = -1; 7246e41f4b71Sopenharmony_ci let focalLength: number = invalidValue; 7247e41f4b71Sopenharmony_ci try { 7248e41f4b71Sopenharmony_ci focalLength = captureSession.getFocalLength(); 7249e41f4b71Sopenharmony_ci } catch (error) { 7250e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7251e41f4b71Sopenharmony_ci let err = error as BusinessError; 7252e41f4b71Sopenharmony_ci console.error(`The getFocalLength call failed. error code: ${err.code}`); 7253e41f4b71Sopenharmony_ci } 7254e41f4b71Sopenharmony_ci return focalLength; 7255e41f4b71Sopenharmony_ci} 7256e41f4b71Sopenharmony_ci``` 7257e41f4b71Sopenharmony_ci 7258e41f4b71Sopenharmony_ci### getZoomRatioRange<sup>(deprecated)</sup> 7259e41f4b71Sopenharmony_ci 7260e41f4b71Sopenharmony_cigetZoomRatioRange(): Array\<number\> 7261e41f4b71Sopenharmony_ci 7262e41f4b71Sopenharmony_ci获取支持的变焦范围。 7263e41f4b71Sopenharmony_ci 7264e41f4b71Sopenharmony_ci> **说明:** 7265e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Zoom.getZoomRatioRange](#getzoomratiorange11)替代。 7266e41f4b71Sopenharmony_ci 7267e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7268e41f4b71Sopenharmony_ci 7269e41f4b71Sopenharmony_ci**返回值:** 7270e41f4b71Sopenharmony_ci 7271e41f4b71Sopenharmony_ci| 类型 | 说明 | 7272e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7273e41f4b71Sopenharmony_ci| Array\<number\> | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7274e41f4b71Sopenharmony_ci 7275e41f4b71Sopenharmony_ci**错误码:** 7276e41f4b71Sopenharmony_ci 7277e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7278e41f4b71Sopenharmony_ci 7279e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7280e41f4b71Sopenharmony_ci| --------------- | --------------- | 7281e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7282e41f4b71Sopenharmony_ci 7283e41f4b71Sopenharmony_ci**示例:** 7284e41f4b71Sopenharmony_ci 7285e41f4b71Sopenharmony_ci```ts 7286e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7287e41f4b71Sopenharmony_ci 7288e41f4b71Sopenharmony_cifunction getZoomRatioRange(captureSession: camera.CaptureSession): Array<number> { 7289e41f4b71Sopenharmony_ci let zoomRatioRange: Array<number> = []; 7290e41f4b71Sopenharmony_ci try { 7291e41f4b71Sopenharmony_ci zoomRatioRange = captureSession.getZoomRatioRange(); 7292e41f4b71Sopenharmony_ci } catch (error) { 7293e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7294e41f4b71Sopenharmony_ci let err = error as BusinessError; 7295e41f4b71Sopenharmony_ci console.error(`The getZoomRatioRange call failed. error code: ${err.code}`); 7296e41f4b71Sopenharmony_ci } 7297e41f4b71Sopenharmony_ci return zoomRatioRange; 7298e41f4b71Sopenharmony_ci} 7299e41f4b71Sopenharmony_ci``` 7300e41f4b71Sopenharmony_ci 7301e41f4b71Sopenharmony_ci### setZoomRatio<sup>(deprecated)</sup> 7302e41f4b71Sopenharmony_ci 7303e41f4b71Sopenharmony_cisetZoomRatio(zoomRatio: number): void 7304e41f4b71Sopenharmony_ci 7305e41f4b71Sopenharmony_ci设置变焦比,变焦精度最高为小数点后两位,如果设置超过支持的精度范围,则只保留精度范围内数值。 7306e41f4b71Sopenharmony_ci 7307e41f4b71Sopenharmony_ci> **说明:** 7308e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Zoom.setZoomRatio](#setzoomratio11)替代。 7309e41f4b71Sopenharmony_ci 7310e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7311e41f4b71Sopenharmony_ci 7312e41f4b71Sopenharmony_ci**参数:** 7313e41f4b71Sopenharmony_ci 7314e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7315e41f4b71Sopenharmony_ci| --------- | -------------------- |-----| ------------------- | 7316e41f4b71Sopenharmony_ci| zoomRatio | number | 是 | 可变焦距比,通过[getZoomRatioRange](#getzoomratiorange11)获取支持的变焦范围,如果设置超过支持范围的值,则只保留精度范围内数值。传参为null或者undefined,作为0处理,变焦设置最小值。 | 7317e41f4b71Sopenharmony_ci 7318e41f4b71Sopenharmony_ci**错误码:** 7319e41f4b71Sopenharmony_ci 7320e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7321e41f4b71Sopenharmony_ci 7322e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7323e41f4b71Sopenharmony_ci| --------------- | --------------- | 7324e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7325e41f4b71Sopenharmony_ci 7326e41f4b71Sopenharmony_ci**示例:** 7327e41f4b71Sopenharmony_ci 7328e41f4b71Sopenharmony_ci```ts 7329e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7330e41f4b71Sopenharmony_ci 7331e41f4b71Sopenharmony_cifunction setZoomRatio(captureSession: camera.CaptureSession, zoomRatioRange: Array<number>): void { 7332e41f4b71Sopenharmony_ci if (zoomRatioRange === undefined || zoomRatioRange.length <= 0) { 7333e41f4b71Sopenharmony_ci return; 7334e41f4b71Sopenharmony_ci } 7335e41f4b71Sopenharmony_ci let zoomRatio = zoomRatioRange[0]; 7336e41f4b71Sopenharmony_ci try { 7337e41f4b71Sopenharmony_ci captureSession.setZoomRatio(zoomRatio); 7338e41f4b71Sopenharmony_ci } catch (error) { 7339e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7340e41f4b71Sopenharmony_ci let err = error as BusinessError; 7341e41f4b71Sopenharmony_ci console.error(`The setZoomRatio call failed. error code: ${err.code}`); 7342e41f4b71Sopenharmony_ci } 7343e41f4b71Sopenharmony_ci} 7344e41f4b71Sopenharmony_ci``` 7345e41f4b71Sopenharmony_ci 7346e41f4b71Sopenharmony_ci### getZoomRatio<sup>(deprecated)</sup> 7347e41f4b71Sopenharmony_ci 7348e41f4b71Sopenharmony_cigetZoomRatio(): number 7349e41f4b71Sopenharmony_ci 7350e41f4b71Sopenharmony_ci获取当前的变焦比。 7351e41f4b71Sopenharmony_ci 7352e41f4b71Sopenharmony_ci> **说明:** 7353e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Zoom.getZoomRatio](#getzoomratio11)替代。 7354e41f4b71Sopenharmony_ci 7355e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7356e41f4b71Sopenharmony_ci 7357e41f4b71Sopenharmony_ci**返回值:** 7358e41f4b71Sopenharmony_ci 7359e41f4b71Sopenharmony_ci| 类型 | 说明 | 7360e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7361e41f4b71Sopenharmony_ci| number | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7362e41f4b71Sopenharmony_ci 7363e41f4b71Sopenharmony_ci**错误码:** 7364e41f4b71Sopenharmony_ci 7365e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7366e41f4b71Sopenharmony_ci 7367e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7368e41f4b71Sopenharmony_ci| --------------- | --------------- | 7369e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7370e41f4b71Sopenharmony_ci 7371e41f4b71Sopenharmony_ci**示例:** 7372e41f4b71Sopenharmony_ci 7373e41f4b71Sopenharmony_ci```ts 7374e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7375e41f4b71Sopenharmony_ci 7376e41f4b71Sopenharmony_cifunction getZoomRatio(captureSession: camera.CaptureSession): number { 7377e41f4b71Sopenharmony_ci const invalidValue: number = -1; 7378e41f4b71Sopenharmony_ci let zoomRatio: number = invalidValue; 7379e41f4b71Sopenharmony_ci try { 7380e41f4b71Sopenharmony_ci zoomRatio = captureSession.getZoomRatio(); 7381e41f4b71Sopenharmony_ci } catch (error) { 7382e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7383e41f4b71Sopenharmony_ci let err = error as BusinessError; 7384e41f4b71Sopenharmony_ci console.error(`The getZoomRatio call failed. error code: ${err.code}`); 7385e41f4b71Sopenharmony_ci } 7386e41f4b71Sopenharmony_ci return zoomRatio; 7387e41f4b71Sopenharmony_ci} 7388e41f4b71Sopenharmony_ci``` 7389e41f4b71Sopenharmony_ci 7390e41f4b71Sopenharmony_ci### isVideoStabilizationModeSupported<sup>(deprecated)</sup> 7391e41f4b71Sopenharmony_ci 7392e41f4b71Sopenharmony_ciisVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean 7393e41f4b71Sopenharmony_ci 7394e41f4b71Sopenharmony_ci查询是否支持指定的视频防抖模式。 7395e41f4b71Sopenharmony_ci 7396e41f4b71Sopenharmony_ci> **说明:** 7397e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Stabilization.isVideoStabilizationModeSupported](#isvideostabilizationmodesupported11)替代。 7398e41f4b71Sopenharmony_ci 7399e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7400e41f4b71Sopenharmony_ci 7401e41f4b71Sopenharmony_ci**参数:** 7402e41f4b71Sopenharmony_ci 7403e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7404e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | ------------------------------ | 7405e41f4b71Sopenharmony_ci| vsMode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 视频防抖模式。传参为null或者undefined,作为0处理,超级防抖模式关闭。 | 7406e41f4b71Sopenharmony_ci 7407e41f4b71Sopenharmony_ci**返回值:** 7408e41f4b71Sopenharmony_ci 7409e41f4b71Sopenharmony_ci| 类型 | 说明 | 7410e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7411e41f4b71Sopenharmony_ci| boolean | 返回视频防抖模式是否支持,true表示支持,false表示不支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7412e41f4b71Sopenharmony_ci 7413e41f4b71Sopenharmony_ci**错误码:** 7414e41f4b71Sopenharmony_ci 7415e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7416e41f4b71Sopenharmony_ci 7417e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7418e41f4b71Sopenharmony_ci| --------------- | --------------- | 7419e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7420e41f4b71Sopenharmony_ci 7421e41f4b71Sopenharmony_ci**示例:** 7422e41f4b71Sopenharmony_ci 7423e41f4b71Sopenharmony_ci```ts 7424e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7425e41f4b71Sopenharmony_ci 7426e41f4b71Sopenharmony_cifunction isVideoStabilizationModeSupported(captureSession: camera.CaptureSession): boolean { 7427e41f4b71Sopenharmony_ci let isSupported: boolean = false; 7428e41f4b71Sopenharmony_ci try { 7429e41f4b71Sopenharmony_ci isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF); 7430e41f4b71Sopenharmony_ci } catch (error) { 7431e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7432e41f4b71Sopenharmony_ci let err = error as BusinessError; 7433e41f4b71Sopenharmony_ci console.error(`The isVideoStabilizationModeSupported call failed. error code: ${err.code}`); 7434e41f4b71Sopenharmony_ci } 7435e41f4b71Sopenharmony_ci return isSupported; 7436e41f4b71Sopenharmony_ci} 7437e41f4b71Sopenharmony_ci``` 7438e41f4b71Sopenharmony_ci 7439e41f4b71Sopenharmony_ci### getActiveVideoStabilizationMode<sup>(deprecated)</sup> 7440e41f4b71Sopenharmony_ci 7441e41f4b71Sopenharmony_cigetActiveVideoStabilizationMode(): VideoStabilizationMode 7442e41f4b71Sopenharmony_ci 7443e41f4b71Sopenharmony_ci查询当前正在使用的视频防抖模式。 7444e41f4b71Sopenharmony_ci 7445e41f4b71Sopenharmony_ci> **说明:** 7446e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Stabilization.getActiveVideoStabilizationMode](#getactivevideostabilizationmode11)替代。 7447e41f4b71Sopenharmony_ci 7448e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7449e41f4b71Sopenharmony_ci 7450e41f4b71Sopenharmony_ci**返回值:** 7451e41f4b71Sopenharmony_ci 7452e41f4b71Sopenharmony_ci| 类型 | 说明 | 7453e41f4b71Sopenharmony_ci| ---------- | ----------------------------- | 7454e41f4b71Sopenharmony_ci| [VideoStabilizationMode](#videostabilizationmode) | 视频防抖是否正在使用。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7455e41f4b71Sopenharmony_ci 7456e41f4b71Sopenharmony_ci**错误码:** 7457e41f4b71Sopenharmony_ci 7458e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7459e41f4b71Sopenharmony_ci 7460e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7461e41f4b71Sopenharmony_ci| --------------- | --------------- | 7462e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7463e41f4b71Sopenharmony_ci 7464e41f4b71Sopenharmony_ci**示例:** 7465e41f4b71Sopenharmony_ci 7466e41f4b71Sopenharmony_ci```ts 7467e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7468e41f4b71Sopenharmony_ci 7469e41f4b71Sopenharmony_cifunction getActiveVideoStabilizationMode(captureSession: camera.CaptureSession): camera.VideoStabilizationMode | undefined { 7470e41f4b71Sopenharmony_ci let vsMode: camera.VideoStabilizationMode | undefined = undefined; 7471e41f4b71Sopenharmony_ci try { 7472e41f4b71Sopenharmony_ci vsMode = captureSession.getActiveVideoStabilizationMode(); 7473e41f4b71Sopenharmony_ci } catch (error) { 7474e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7475e41f4b71Sopenharmony_ci let err = error as BusinessError; 7476e41f4b71Sopenharmony_ci console.error(`The getActiveVideoStabilizationMode call failed. error code: ${err.code}`); 7477e41f4b71Sopenharmony_ci } 7478e41f4b71Sopenharmony_ci return vsMode; 7479e41f4b71Sopenharmony_ci} 7480e41f4b71Sopenharmony_ci``` 7481e41f4b71Sopenharmony_ci 7482e41f4b71Sopenharmony_ci### setVideoStabilizationMode<sup>(deprecated)</sup> 7483e41f4b71Sopenharmony_ci 7484e41f4b71Sopenharmony_cisetVideoStabilizationMode(mode: VideoStabilizationMode): void 7485e41f4b71Sopenharmony_ci 7486e41f4b71Sopenharmony_ci设置视频防抖模式。需要先检查设备是否支持对应的防抖模式,可以通过[isVideoStabilizationModeSupported](#isvideostabilizationmodesupporteddeprecated)方法判断所设置的模式是否支持。 7487e41f4b71Sopenharmony_ci 7488e41f4b71Sopenharmony_ci> **说明:** 7489e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[Stabilization.setVideoStabilizationMode](#setvideostabilizationmode11)替代。 7490e41f4b71Sopenharmony_ci 7491e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7492e41f4b71Sopenharmony_ci 7493e41f4b71Sopenharmony_ci**参数:** 7494e41f4b71Sopenharmony_ci 7495e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7496e41f4b71Sopenharmony_ci| -------- | ------------------------------------------------- | ---- | --------------------- | 7497e41f4b71Sopenharmony_ci| mode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 需要设置的视频防抖模式。传参为null或者undefined,作为0处理,超级防抖模式关闭。 | 7498e41f4b71Sopenharmony_ci 7499e41f4b71Sopenharmony_ci**错误码:** 7500e41f4b71Sopenharmony_ci 7501e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7502e41f4b71Sopenharmony_ci 7503e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7504e41f4b71Sopenharmony_ci| --------------- | --------------- | 7505e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7506e41f4b71Sopenharmony_ci 7507e41f4b71Sopenharmony_ci**示例:** 7508e41f4b71Sopenharmony_ci 7509e41f4b71Sopenharmony_ci```ts 7510e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7511e41f4b71Sopenharmony_ci 7512e41f4b71Sopenharmony_cifunction setVideoStabilizationMode(captureSession: camera.CaptureSession): void { 7513e41f4b71Sopenharmony_ci try { 7514e41f4b71Sopenharmony_ci captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF); 7515e41f4b71Sopenharmony_ci } catch (error) { 7516e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 7517e41f4b71Sopenharmony_ci let err = error as BusinessError; 7518e41f4b71Sopenharmony_ci console.error(`The setVideoStabilizationMode call failed. error code: ${err.code}`); 7519e41f4b71Sopenharmony_ci } 7520e41f4b71Sopenharmony_ci} 7521e41f4b71Sopenharmony_ci``` 7522e41f4b71Sopenharmony_ci 7523e41f4b71Sopenharmony_ci### on('focusStateChange')<sup>(deprecated)</sup> 7524e41f4b71Sopenharmony_ci 7525e41f4b71Sopenharmony_cion(type: 'focusStateChange', callback: AsyncCallback\<FocusState\>): void 7526e41f4b71Sopenharmony_ci 7527e41f4b71Sopenharmony_ci监听相机聚焦的状态变化,通过注册回调函数获取结果。使用callback异步回调。 7528e41f4b71Sopenharmony_ci 7529e41f4b71Sopenharmony_ci> **说明:** 7530e41f4b71Sopenharmony_ci> 从 API version 10开始支持,从API version 11开始废弃。建议使用[VideoSession.on('focusStateChange')](#onfocusstatechange11-1)替代。 7531e41f4b71Sopenharmony_ci> 7532e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 7533e41f4b71Sopenharmony_ci 7534e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7535e41f4b71Sopenharmony_ci 7536e41f4b71Sopenharmony_ci**参数:** 7537e41f4b71Sopenharmony_ci 7538e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7539e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------ | 7540e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session 创建成功可监听。仅当自动对焦模式时,且相机对焦状态发生改变时可触发该事件。 | 7541e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 是 | 回调函数,用于获取当前对焦状态。 | 7542e41f4b71Sopenharmony_ci 7543e41f4b71Sopenharmony_ci**示例:** 7544e41f4b71Sopenharmony_ci 7545e41f4b71Sopenharmony_ci```ts 7546e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7547e41f4b71Sopenharmony_ci 7548e41f4b71Sopenharmony_cifunction registerFocusStateChange(captureSession: camera.CaptureSession): void { 7549e41f4b71Sopenharmony_ci captureSession.on('focusStateChange', (err: BusinessError, focusState: camera.FocusState) => { 7550e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 7551e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 7552e41f4b71Sopenharmony_ci return; 7553e41f4b71Sopenharmony_ci } 7554e41f4b71Sopenharmony_ci console.info(`Focus state: ${focusState}`); 7555e41f4b71Sopenharmony_ci }); 7556e41f4b71Sopenharmony_ci} 7557e41f4b71Sopenharmony_ci``` 7558e41f4b71Sopenharmony_ci 7559e41f4b71Sopenharmony_ci### off('focusStateChange')<sup>(deprecated)</sup> 7560e41f4b71Sopenharmony_ci 7561e41f4b71Sopenharmony_cioff(type: 'focusStateChange', callback?: AsyncCallback\<FocusState\>): void 7562e41f4b71Sopenharmony_ci 7563e41f4b71Sopenharmony_ci注销监听相机聚焦的状态变化。 7564e41f4b71Sopenharmony_ci 7565e41f4b71Sopenharmony_ci> **说明:** 7566e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[VideoSession.off('focusStateChange')](#offfocusstatechange11-1)替代。 7567e41f4b71Sopenharmony_ci 7568e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7569e41f4b71Sopenharmony_ci 7570e41f4b71Sopenharmony_ci**参数:** 7571e41f4b71Sopenharmony_ci 7572e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7573e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------ | 7574e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session 创建成功可监听。| 7575e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 7576e41f4b71Sopenharmony_ci 7577e41f4b71Sopenharmony_ci**示例:** 7578e41f4b71Sopenharmony_ci 7579e41f4b71Sopenharmony_ci```ts 7580e41f4b71Sopenharmony_cifunction unregisterFocusStateChange(captureSession: camera.CaptureSession): void { 7581e41f4b71Sopenharmony_ci captureSession.off('focusStateChange'); 7582e41f4b71Sopenharmony_ci} 7583e41f4b71Sopenharmony_ci``` 7584e41f4b71Sopenharmony_ci 7585e41f4b71Sopenharmony_ci### on('error')<sup>(deprecated)</sup> 7586e41f4b71Sopenharmony_ci 7587e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 7588e41f4b71Sopenharmony_ci 7589e41f4b71Sopenharmony_ci监听拍照会话的错误事件,通过注册回调函数获取结果。使用callback异步回调。 7590e41f4b71Sopenharmony_ci 7591e41f4b71Sopenharmony_ci> **说明:** 7592e41f4b71Sopenharmony_ci> 7593e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 7594e41f4b71Sopenharmony_ci 7595e41f4b71Sopenharmony_ci> **说明:** 7596e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[VideoSession.on('error')](#onerror11-1)替代。 7597e41f4b71Sopenharmony_ci 7598e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7599e41f4b71Sopenharmony_ci 7600e41f4b71Sopenharmony_ci**参数:** 7601e41f4b71Sopenharmony_ci 7602e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7603e41f4b71Sopenharmony_ci| -------- |--------------------------------------------------------------------------| ---- | ------------------------------ | 7604e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用[beginConfig](#beginconfigdeprecated),[commitConfig](#commitconfigdeprecated-1),[addInput](#addinputdeprecated)等接口发生错误时返回错误信息。 | 7605e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7606e41f4b71Sopenharmony_ci 7607e41f4b71Sopenharmony_ci**示例:** 7608e41f4b71Sopenharmony_ci 7609e41f4b71Sopenharmony_ci```ts 7610e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7611e41f4b71Sopenharmony_ci 7612e41f4b71Sopenharmony_cifunction registerCaptureSessionError(captureSession: camera.CaptureSession): void { 7613e41f4b71Sopenharmony_ci captureSession.on('error', (error: BusinessError) => { 7614e41f4b71Sopenharmony_ci console.error(`Capture session error code: ${error.code}`); 7615e41f4b71Sopenharmony_ci }); 7616e41f4b71Sopenharmony_ci} 7617e41f4b71Sopenharmony_ci``` 7618e41f4b71Sopenharmony_ci 7619e41f4b71Sopenharmony_ci### off('error')<sup>(deprecated)</sup> 7620e41f4b71Sopenharmony_ci 7621e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 7622e41f4b71Sopenharmony_ci 7623e41f4b71Sopenharmony_ci注销监听拍照会话的错误事件,通过注册回调函数获取结果。 7624e41f4b71Sopenharmony_ci 7625e41f4b71Sopenharmony_ci> **说明:** 7626e41f4b71Sopenharmony_ci>从 API version 10开始支持,从API version 11开始废弃。建议使用[VideoSession.off('error')](#offerror11-1)替代。 7627e41f4b71Sopenharmony_ci 7628e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7629e41f4b71Sopenharmony_ci 7630e41f4b71Sopenharmony_ci**参数:** 7631e41f4b71Sopenharmony_ci 7632e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7633e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------------- | ---- | ------------------------------ | 7634e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。 | 7635e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback)| 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 7636e41f4b71Sopenharmony_ci 7637e41f4b71Sopenharmony_ci**示例:** 7638e41f4b71Sopenharmony_ci 7639e41f4b71Sopenharmony_ci```ts 7640e41f4b71Sopenharmony_cifunction unregisterCaptureSessionError(captureSession: camera.CaptureSession): void { 7641e41f4b71Sopenharmony_ci captureSession.off('error'); 7642e41f4b71Sopenharmony_ci} 7643e41f4b71Sopenharmony_ci``` 7644e41f4b71Sopenharmony_ci## ColorManagementQuery<sup>12+</sup> 7645e41f4b71Sopenharmony_ci 7646e41f4b71Sopenharmony_ci色彩管理类,用于查询色彩空间参数。 7647e41f4b71Sopenharmony_ci 7648e41f4b71Sopenharmony_ci### getSupportedColorSpaces<sup>12+</sup> 7649e41f4b71Sopenharmony_ci 7650e41f4b71Sopenharmony_cigetSupportedColorSpaces(): Array\<colorSpaceManager.ColorSpace\> 7651e41f4b71Sopenharmony_ci 7652e41f4b71Sopenharmony_ci获取支持的色彩空间列表。 7653e41f4b71Sopenharmony_ci 7654e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7655e41f4b71Sopenharmony_ci 7656e41f4b71Sopenharmony_ci**返回值:** 7657e41f4b71Sopenharmony_ci 7658e41f4b71Sopenharmony_ci| 类型 | 说明 | 7659e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 7660e41f4b71Sopenharmony_ci| Array<[colorSpaceManager.ColorSpace](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspace)>| 支持的色彩空间列表。 | 7661e41f4b71Sopenharmony_ci 7662e41f4b71Sopenharmony_ci**错误码:** 7663e41f4b71Sopenharmony_ci 7664e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7665e41f4b71Sopenharmony_ci 7666e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7667e41f4b71Sopenharmony_ci| --------------- | --------------- | 7668e41f4b71Sopenharmony_ci| 7400103 | Session not config, only throw in session usage. | 7669e41f4b71Sopenharmony_ci 7670e41f4b71Sopenharmony_ci**示例:** 7671e41f4b71Sopenharmony_ci 7672e41f4b71Sopenharmony_ci```ts 7673e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7674e41f4b71Sopenharmony_ciimport { colorSpaceManager } from '@kit.ArkGraphics2D'; 7675e41f4b71Sopenharmony_ci 7676e41f4b71Sopenharmony_cifunction getSupportedColorSpaces(session: camera.PhotoSession): Array<colorSpaceManager.ColorSpace> { 7677e41f4b71Sopenharmony_ci let colorSpaces: Array<colorSpaceManager.ColorSpace> = []; 7678e41f4b71Sopenharmony_ci try { 7679e41f4b71Sopenharmony_ci colorSpaces = session.getSupportedColorSpaces(); 7680e41f4b71Sopenharmony_ci } catch (error) { 7681e41f4b71Sopenharmony_ci let err = error as BusinessError; 7682e41f4b71Sopenharmony_ci console.error(`The getSupportedColorSpaces call failed. error code: ${err.code}`); 7683e41f4b71Sopenharmony_ci } 7684e41f4b71Sopenharmony_ci return colorSpaces; 7685e41f4b71Sopenharmony_ci} 7686e41f4b71Sopenharmony_ci``` 7687e41f4b71Sopenharmony_ci## ColorManagement<sup>12+</sup> 7688e41f4b71Sopenharmony_ci 7689e41f4b71Sopenharmony_ciColorManagement extends [ColorManagementQuery](#colormanagementquery12) 7690e41f4b71Sopenharmony_ci 7691e41f4b71Sopenharmony_ci色彩管理类,继承自[ColorManagementQuery](#colormanagementquery12),用于设置色彩空间参数。 7692e41f4b71Sopenharmony_ci 7693e41f4b71Sopenharmony_ci### setColorSpace<sup>12+</sup> 7694e41f4b71Sopenharmony_ci 7695e41f4b71Sopenharmony_cisetColorSpace(colorSpace: colorSpaceManager.ColorSpace): void 7696e41f4b71Sopenharmony_ci 7697e41f4b71Sopenharmony_ci设置色彩空间。可以先通过[getSupportedColorSpaces](#getsupportedcolorspaces12)获取当前设备所支持的ColorSpaces。 7698e41f4b71Sopenharmony_ci 7699e41f4b71Sopenharmony_ci**P3广色域与HDR高动态范围成像** 7700e41f4b71Sopenharmony_ci 7701e41f4b71Sopenharmony_ci应用可以下发不同的色彩空间(ColorSpace)参数来支持P3广色域以及HDR的功能。 7702e41f4b71Sopenharmony_ci当应用不主动设置色彩空间时,拍照以及录像模式默认为HDR拍摄效果。 7703e41f4b71Sopenharmony_ci在拍照模式下设置HDR高显效果可直接支持P3色域。 7704e41f4b71Sopenharmony_ci应用针对不同模式使能HDR效果以及设置的色彩空间可参考下表。 7705e41f4b71Sopenharmony_ci 7706e41f4b71Sopenharmony_ci**录像模式:** 7707e41f4b71Sopenharmony_ci 7708e41f4b71Sopenharmony_ci| SDR/HRD拍摄 | CameraFormat | ColorSpace | 7709e41f4b71Sopenharmony_ci|--------------------|--------------------------|------------------| 7710e41f4b71Sopenharmony_ci| SDR | CAMERA_FORMAT_YUV_420_SP | BT709_LIMIT | 7711e41f4b71Sopenharmony_ci| HDR_VIVID(Default) | CAMERA_FORMAT_YCRCB_P010 | BT2020_HLG_LIMIT | 7712e41f4b71Sopenharmony_ci 7713e41f4b71Sopenharmony_ci**拍照模式:** 7714e41f4b71Sopenharmony_ci 7715e41f4b71Sopenharmony_ci| SDR/HRD拍摄 | ColorSpace | 7716e41f4b71Sopenharmony_ci|--------------|------------| 7717e41f4b71Sopenharmony_ci| SDR | SRGB | 7718e41f4b71Sopenharmony_ci| HDR(Default) | DISPLAY_P3 | 7719e41f4b71Sopenharmony_ci 7720e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7721e41f4b71Sopenharmony_ci 7722e41f4b71Sopenharmony_ci**参数:** 7723e41f4b71Sopenharmony_ci 7724e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7725e41f4b71Sopenharmony_ci| ------------ |---------------------- | -- | -------------------------- | 7726e41f4b71Sopenharmony_ci| colorSpace | [colorSpaceManager.ColorSpace](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspace) | 是 | 色彩空间,通过[getSupportedColorSpaces](#getsupportedcolorspaces12)接口获取。 | 7727e41f4b71Sopenharmony_ci 7728e41f4b71Sopenharmony_ci**错误码:** 7729e41f4b71Sopenharmony_ci 7730e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7731e41f4b71Sopenharmony_ci 7732e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7733e41f4b71Sopenharmony_ci| --------------- | --------------- | 7734e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 7735e41f4b71Sopenharmony_ci| 7400102 | The colorSpace does not match the format. | 7736e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7737e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 7738e41f4b71Sopenharmony_ci 7739e41f4b71Sopenharmony_ci**示例:** 7740e41f4b71Sopenharmony_ci 7741e41f4b71Sopenharmony_ci```ts 7742e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7743e41f4b71Sopenharmony_ciimport { colorSpaceManager } from '@kit.ArkGraphics2D'; 7744e41f4b71Sopenharmony_ci 7745e41f4b71Sopenharmony_cifunction setColorSpace(session: camera.PhotoSession, colorSpaces: Array<colorSpaceManager.ColorSpace>): void { 7746e41f4b71Sopenharmony_ci if (colorSpaces === undefined || colorSpaces.length <= 0) { 7747e41f4b71Sopenharmony_ci return; 7748e41f4b71Sopenharmony_ci } 7749e41f4b71Sopenharmony_ci try { 7750e41f4b71Sopenharmony_ci session.setColorSpace(colorSpaces[0]); 7751e41f4b71Sopenharmony_ci } catch (error) { 7752e41f4b71Sopenharmony_ci let err = error as BusinessError; 7753e41f4b71Sopenharmony_ci console.error(`The setColorSpace call failed, error code: ${err.code}`); 7754e41f4b71Sopenharmony_ci } 7755e41f4b71Sopenharmony_ci} 7756e41f4b71Sopenharmony_ci``` 7757e41f4b71Sopenharmony_ci 7758e41f4b71Sopenharmony_ci### getActiveColorSpace<sup>12+</sup> 7759e41f4b71Sopenharmony_ci 7760e41f4b71Sopenharmony_cigetActiveColorSpace(): colorSpaceManager.ColorSpace 7761e41f4b71Sopenharmony_ci 7762e41f4b71Sopenharmony_ci获取当前设置的色彩空间。 7763e41f4b71Sopenharmony_ci 7764e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7765e41f4b71Sopenharmony_ci 7766e41f4b71Sopenharmony_ci**返回值:** 7767e41f4b71Sopenharmony_ci 7768e41f4b71Sopenharmony_ci| 类型 | 说明 | 7769e41f4b71Sopenharmony_ci| ----------------------------------------------- | ---------------------------- | 7770e41f4b71Sopenharmony_ci| [colorSpaceManager.ColorSpace](../apis-arkgraphics2d/js-apis-colorSpaceManager.md#colorspace) | 当前设置的色彩空间。 | 7771e41f4b71Sopenharmony_ci 7772e41f4b71Sopenharmony_ci**错误码:** 7773e41f4b71Sopenharmony_ci 7774e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7775e41f4b71Sopenharmony_ci 7776e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7777e41f4b71Sopenharmony_ci| --------------- | --------------- | 7778e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 7779e41f4b71Sopenharmony_ci 7780e41f4b71Sopenharmony_ci**示例:** 7781e41f4b71Sopenharmony_ci 7782e41f4b71Sopenharmony_ci```ts 7783e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7784e41f4b71Sopenharmony_ciimport { colorSpaceManager } from '@kit.ArkGraphics2D'; 7785e41f4b71Sopenharmony_ci 7786e41f4b71Sopenharmony_cifunction getActiveColorSpace(session: camera.PhotoSession): colorSpaceManager.ColorSpace | undefined { 7787e41f4b71Sopenharmony_ci let colorSpace: colorSpaceManager.ColorSpace | undefined = undefined; 7788e41f4b71Sopenharmony_ci try { 7789e41f4b71Sopenharmony_ci colorSpace = session.getActiveColorSpace(); 7790e41f4b71Sopenharmony_ci } catch (error) { 7791e41f4b71Sopenharmony_ci let err = error as BusinessError; 7792e41f4b71Sopenharmony_ci console.error(`The getActiveColorSpace call failed. error code: ${err.code}`); 7793e41f4b71Sopenharmony_ci } 7794e41f4b71Sopenharmony_ci return colorSpace; 7795e41f4b71Sopenharmony_ci} 7796e41f4b71Sopenharmony_ci``` 7797e41f4b71Sopenharmony_ci 7798e41f4b71Sopenharmony_ci## PreconfigType<sup>12+</sup> 7799e41f4b71Sopenharmony_ci 7800e41f4b71Sopenharmony_ci枚举,提供预配置的类型。 7801e41f4b71Sopenharmony_ci 7802e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7803e41f4b71Sopenharmony_ci 7804e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7805e41f4b71Sopenharmony_ci|-------------------------|---|------------| 7806e41f4b71Sopenharmony_ci| PRECONFIG_720P | 0 | 720P预配置。 | 7807e41f4b71Sopenharmony_ci| PRECONFIG_1080P | 1 | 1080P预配置。 | 7808e41f4b71Sopenharmony_ci| PRECONFIG_4K | 2 | 4K预配置。 | 7809e41f4b71Sopenharmony_ci| PRECONFIG_HIGH_QUALITY | 3 | 高质量预配置。 | 7810e41f4b71Sopenharmony_ci 7811e41f4b71Sopenharmony_ci## PreconfigRatio<sup>12+</sup> 7812e41f4b71Sopenharmony_ci 7813e41f4b71Sopenharmony_ci枚举,提供预配置的分辨率比例。 7814e41f4b71Sopenharmony_ci 7815e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7816e41f4b71Sopenharmony_ci 7817e41f4b71Sopenharmony_ci| 名称 | 值 | 说明 | 7818e41f4b71Sopenharmony_ci|--------------------------|---|---------| 7819e41f4b71Sopenharmony_ci| PRECONFIG_RATIO_1_1 | 0 | 1:1画幅。 | 7820e41f4b71Sopenharmony_ci| PRECONFIG_RATIO_4_3 | 1 | 4:3画幅。 | 7821e41f4b71Sopenharmony_ci| PRECONFIG_RATIO_16_9 | 2 | 16:9画幅。 | 7822e41f4b71Sopenharmony_ci 7823e41f4b71Sopenharmony_ci## PhotoSession<sup>11+</sup> 7824e41f4b71Sopenharmony_ci 7825e41f4b71Sopenharmony_ciPhotoSession extends [Session](#session11), [Flash](#flash11), [AutoExposure](#autoexposure11), [Focus](#focus11), [Zoom](#zoom11), [ColorManagement](#colormanagement12) 7826e41f4b71Sopenharmony_ci 7827e41f4b71Sopenharmony_ci普通拍照模式会话类,提供了对闪光灯、曝光、对焦、变焦、色彩空间的操作。 7828e41f4b71Sopenharmony_ci 7829e41f4b71Sopenharmony_ci> **说明:** 7830e41f4b71Sopenharmony_ci> 7831e41f4b71Sopenharmony_ci> 默认的拍照模式,用于拍摄标准照片。支持多种照片格式和分辨率,适合大多数日常拍摄场景。 7832e41f4b71Sopenharmony_ci 7833e41f4b71Sopenharmony_ci### canPreconfig<sup>12+</sup> 7834e41f4b71Sopenharmony_ci 7835e41f4b71Sopenharmony_cicanPreconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): boolean 7836e41f4b71Sopenharmony_ci 7837e41f4b71Sopenharmony_ci查询当前Session是否支持指定的与配置类型。 7838e41f4b71Sopenharmony_ci 7839e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7840e41f4b71Sopenharmony_ci 7841e41f4b71Sopenharmony_ci**参数:** 7842e41f4b71Sopenharmony_ci 7843e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7844e41f4b71Sopenharmony_ci|----------------|-------------------------------------|-----|-----------------| 7845e41f4b71Sopenharmony_ci| preconfigType | [PreconfigType](#preconfigtype12) | 是 | 指定配置预期分辨率。 | 7846e41f4b71Sopenharmony_ci| preconfigRatio | [PreconfigRatio](#preconfigratio12) | 否 | 可选画幅比例,默认为4:3。 | 7847e41f4b71Sopenharmony_ci 7848e41f4b71Sopenharmony_ci**返回值:** 7849e41f4b71Sopenharmony_ci 7850e41f4b71Sopenharmony_ci| 类型 | 说明 | 7851e41f4b71Sopenharmony_ci|---------|-----------------------------------------| 7852e41f4b71Sopenharmony_ci| boolean | true: 支持指定预配值类型。<br/>false: 不支持指定预配值类型。 | 7853e41f4b71Sopenharmony_ci 7854e41f4b71Sopenharmony_ci**错误码:** 7855e41f4b71Sopenharmony_ci 7856e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7857e41f4b71Sopenharmony_ci 7858e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7859e41f4b71Sopenharmony_ci|---------|-----------------------------| 7860e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 7861e41f4b71Sopenharmony_ci 7862e41f4b71Sopenharmony_ci**示例:** 7863e41f4b71Sopenharmony_ci 7864e41f4b71Sopenharmony_ci```ts 7865e41f4b71Sopenharmony_cifunction testCanPreconfig(photoSession: camera.PhotoSession, preconfigType: camera.PreconfigType, 7866e41f4b71Sopenharmony_ci preconfigRatio: camera.PreconfigRatio): void { 7867e41f4b71Sopenharmony_ci try { 7868e41f4b71Sopenharmony_ci let result = photoSession.canPreconfig(preconfigType, preconfigRatio); 7869e41f4b71Sopenharmony_ci console.info(`canPreconfig ${preconfigType} ${preconfigRatio} result is : ${result}`); 7870e41f4b71Sopenharmony_ci } catch (error) { 7871e41f4b71Sopenharmony_ci let err = error as BusinessError; 7872e41f4b71Sopenharmony_ci console.error(`The canPreconfig call failed. error code: ${err.code}`); 7873e41f4b71Sopenharmony_ci } 7874e41f4b71Sopenharmony_ci} 7875e41f4b71Sopenharmony_ci``` 7876e41f4b71Sopenharmony_ci 7877e41f4b71Sopenharmony_ci### preconfig<sup>12+</sup> 7878e41f4b71Sopenharmony_ci 7879e41f4b71Sopenharmony_cipreconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): void 7880e41f4b71Sopenharmony_ci 7881e41f4b71Sopenharmony_ci对当前Session进行预配置。 7882e41f4b71Sopenharmony_ci 7883e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7884e41f4b71Sopenharmony_ci 7885e41f4b71Sopenharmony_ci**参数:** 7886e41f4b71Sopenharmony_ci 7887e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7888e41f4b71Sopenharmony_ci|----------------|-------------------------------------|-----|-----------------| 7889e41f4b71Sopenharmony_ci| preconfigType | [PreconfigType](#preconfigtype12) | 是 | 指定配置预期分辨率。 | 7890e41f4b71Sopenharmony_ci| preconfigRatio | [PreconfigRatio](#preconfigratio12) | 否 | 可选画幅比例,默认为4:3。 | 7891e41f4b71Sopenharmony_ci 7892e41f4b71Sopenharmony_ci**错误码:** 7893e41f4b71Sopenharmony_ci 7894e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 7895e41f4b71Sopenharmony_ci 7896e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 7897e41f4b71Sopenharmony_ci|---------|-----------------------------| 7898e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 7899e41f4b71Sopenharmony_ci 7900e41f4b71Sopenharmony_ci**示例:** 7901e41f4b71Sopenharmony_ci 7902e41f4b71Sopenharmony_ci```ts 7903e41f4b71Sopenharmony_cifunction testPreconfig(photoSession: camera.PhotoSession, preconfigType: camera.PreconfigType, 7904e41f4b71Sopenharmony_ci preconfigRatio: camera.PreconfigRatio): void { 7905e41f4b71Sopenharmony_ci try { 7906e41f4b71Sopenharmony_ci photoSession.preconfig(preconfigType, preconfigRatio); 7907e41f4b71Sopenharmony_ci console.info(`preconfig ${preconfigType} ${preconfigRatio} success`); 7908e41f4b71Sopenharmony_ci } catch (error) { 7909e41f4b71Sopenharmony_ci let err = error as BusinessError; 7910e41f4b71Sopenharmony_ci console.error(`The preconfig call failed. error code: ${err.code}`); 7911e41f4b71Sopenharmony_ci } 7912e41f4b71Sopenharmony_ci} 7913e41f4b71Sopenharmony_ci``` 7914e41f4b71Sopenharmony_ci 7915e41f4b71Sopenharmony_ci### on('error')<sup>11+</sup> 7916e41f4b71Sopenharmony_ci 7917e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 7918e41f4b71Sopenharmony_ci 7919e41f4b71Sopenharmony_ci监听普通拍照会话的错误事件,通过注册回调函数获取结果。使用callback异步回调。 7920e41f4b71Sopenharmony_ci 7921e41f4b71Sopenharmony_ci> **说明:** 7922e41f4b71Sopenharmony_ci> 7923e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 7924e41f4b71Sopenharmony_ci 7925e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7926e41f4b71Sopenharmony_ci 7927e41f4b71Sopenharmony_ci**参数:** 7928e41f4b71Sopenharmony_ci 7929e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7930e41f4b71Sopenharmony_ci| -------- | ----------------------------------------------------------- | ---- | ------------------------------ | 7931e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用[beginConfig](#beginconfig11),[commitConfig](#commitconfig11-1),[addInput](#addinput11)等接口发生错误时返回错误信息。 | 7932e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback)| 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 7933e41f4b71Sopenharmony_ci 7934e41f4b71Sopenharmony_ci**示例:** 7935e41f4b71Sopenharmony_ci 7936e41f4b71Sopenharmony_ci```ts 7937e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7938e41f4b71Sopenharmony_ci 7939e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 7940e41f4b71Sopenharmony_ci console.error(`Photo session error code: ${err.code}`); 7941e41f4b71Sopenharmony_ci} 7942e41f4b71Sopenharmony_ci 7943e41f4b71Sopenharmony_cifunction registerSessionError(photoSession: camera.PhotoSession): void { 7944e41f4b71Sopenharmony_ci photoSession.on('error', callback); 7945e41f4b71Sopenharmony_ci} 7946e41f4b71Sopenharmony_ci``` 7947e41f4b71Sopenharmony_ci 7948e41f4b71Sopenharmony_ci### off('error')<sup>11+</sup> 7949e41f4b71Sopenharmony_ci 7950e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 7951e41f4b71Sopenharmony_ci 7952e41f4b71Sopenharmony_ci注销监听普通拍照会话的错误事件,通过注册回调函数获取结果。 7953e41f4b71Sopenharmony_ci 7954e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7955e41f4b71Sopenharmony_ci 7956e41f4b71Sopenharmony_ci**参数:** 7957e41f4b71Sopenharmony_ci 7958e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7959e41f4b71Sopenharmony_ci| -------- | -------------------------------- | ---- | ------------------------------ | 7960e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。 | 7961e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback)| 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 7962e41f4b71Sopenharmony_ci 7963e41f4b71Sopenharmony_ci**示例:** 7964e41f4b71Sopenharmony_ci 7965e41f4b71Sopenharmony_ci```ts 7966e41f4b71Sopenharmony_cifunction unregisterSessionError(photoSession: camera.PhotoSession): void { 7967e41f4b71Sopenharmony_ci photoSession.off('error'); 7968e41f4b71Sopenharmony_ci} 7969e41f4b71Sopenharmony_ci``` 7970e41f4b71Sopenharmony_ci 7971e41f4b71Sopenharmony_ci### on('focusStateChange')<sup>11+</sup> 7972e41f4b71Sopenharmony_ci 7973e41f4b71Sopenharmony_cion(type: 'focusStateChange', callback: AsyncCallback\<FocusState\>): void 7974e41f4b71Sopenharmony_ci 7975e41f4b71Sopenharmony_ci监听相机聚焦的状态变化,通过注册回调函数获取结果。使用callback异步回调。 7976e41f4b71Sopenharmony_ci 7977e41f4b71Sopenharmony_ci> **说明:** 7978e41f4b71Sopenharmony_ci> 7979e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 7980e41f4b71Sopenharmony_ci 7981e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 7982e41f4b71Sopenharmony_ci 7983e41f4b71Sopenharmony_ci**参数:** 7984e41f4b71Sopenharmony_ci 7985e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 7986e41f4b71Sopenharmony_ci| -------- | ---------------- | ---- | ------------------------ | 7987e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session创建成功可监听。仅当自动对焦模式时,且相机对焦状态发生改变时可触发该事件。 | 7988e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 是 | 回调函数,用于获取当前对焦状态。 | 7989e41f4b71Sopenharmony_ci 7990e41f4b71Sopenharmony_ci**示例:** 7991e41f4b71Sopenharmony_ci 7992e41f4b71Sopenharmony_ci```ts 7993e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 7994e41f4b71Sopenharmony_ci 7995e41f4b71Sopenharmony_cifunction callback(err: BusinessError, focusState: camera.FocusState): void { 7996e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 7997e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 7998e41f4b71Sopenharmony_ci return; 7999e41f4b71Sopenharmony_ci } 8000e41f4b71Sopenharmony_ci console.info(`Focus state: ${focusState}`); 8001e41f4b71Sopenharmony_ci} 8002e41f4b71Sopenharmony_ci 8003e41f4b71Sopenharmony_cifunction registerFocusStateChange(photoSession: camera.PhotoSession): void { 8004e41f4b71Sopenharmony_ci photoSession.on('focusStateChange', callback); 8005e41f4b71Sopenharmony_ci} 8006e41f4b71Sopenharmony_ci``` 8007e41f4b71Sopenharmony_ci 8008e41f4b71Sopenharmony_ci### off('focusStateChange')<sup>11+</sup> 8009e41f4b71Sopenharmony_ci 8010e41f4b71Sopenharmony_cioff(type: 'focusStateChange', callback?: AsyncCallback\<FocusState\>): void 8011e41f4b71Sopenharmony_ci 8012e41f4b71Sopenharmony_ci注销监听相机聚焦的状态变化。 8013e41f4b71Sopenharmony_ci 8014e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8015e41f4b71Sopenharmony_ci 8016e41f4b71Sopenharmony_ci**参数:** 8017e41f4b71Sopenharmony_ci 8018e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8019e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------ | 8020e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session创建成功可监听。 | 8021e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 8022e41f4b71Sopenharmony_ci 8023e41f4b71Sopenharmony_ci**示例:** 8024e41f4b71Sopenharmony_ci 8025e41f4b71Sopenharmony_ci```ts 8026e41f4b71Sopenharmony_cifunction unregisterFocusStateChange(photoSession: camera.PhotoSession): void { 8027e41f4b71Sopenharmony_ci photoSession.off('focusStateChange'); 8028e41f4b71Sopenharmony_ci} 8029e41f4b71Sopenharmony_ci``` 8030e41f4b71Sopenharmony_ci 8031e41f4b71Sopenharmony_ci### on('smoothZoomInfoAvailable')<sup>11+</sup> 8032e41f4b71Sopenharmony_ci 8033e41f4b71Sopenharmony_cion(type: 'smoothZoomInfoAvailable', callback: AsyncCallback\<SmoothZoomInfo\>): void 8034e41f4b71Sopenharmony_ci 8035e41f4b71Sopenharmony_ci监听相机平滑变焦的状态变化,通过注册回调函数获取结果。使用callback异步回调。 8036e41f4b71Sopenharmony_ci 8037e41f4b71Sopenharmony_ci> **说明:** 8038e41f4b71Sopenharmony_ci> 8039e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 8040e41f4b71Sopenharmony_ci 8041e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8042e41f4b71Sopenharmony_ci 8043e41f4b71Sopenharmony_ci**参数:** 8044e41f4b71Sopenharmony_ci 8045e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8046e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------ | 8047e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'smoothZoomInfoAvailable',session创建成功可监听。| 8048e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[SmoothZoomInfo](#smoothzoominfo11)\> | 是 | 回调函数,用于获取当前平滑变焦状态。 | 8049e41f4b71Sopenharmony_ci 8050e41f4b71Sopenharmony_ci**示例:** 8051e41f4b71Sopenharmony_ci 8052e41f4b71Sopenharmony_ci```ts 8053e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8054e41f4b71Sopenharmony_ci 8055e41f4b71Sopenharmony_cifunction callback(err: BusinessError, smoothZoomInfo: camera.SmoothZoomInfo): void { 8056e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 8057e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 8058e41f4b71Sopenharmony_ci return; 8059e41f4b71Sopenharmony_ci } 8060e41f4b71Sopenharmony_ci console.info(`The duration of smooth zoom: ${smoothZoomInfo.duration}`); 8061e41f4b71Sopenharmony_ci} 8062e41f4b71Sopenharmony_ci 8063e41f4b71Sopenharmony_cifunction registerSmoothZoomInfo(photoSession: camera.PhotoSession): void { 8064e41f4b71Sopenharmony_ci photoSession.on('smoothZoomInfoAvailable', callback); 8065e41f4b71Sopenharmony_ci} 8066e41f4b71Sopenharmony_ci``` 8067e41f4b71Sopenharmony_ci 8068e41f4b71Sopenharmony_ci### off('smoothZoomInfoAvailable')<sup>11+</sup> 8069e41f4b71Sopenharmony_ci 8070e41f4b71Sopenharmony_cioff(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback\<SmoothZoomInfo\>): void 8071e41f4b71Sopenharmony_ci 8072e41f4b71Sopenharmony_ci注销监听相机平滑变焦的状态变化。 8073e41f4b71Sopenharmony_ci 8074e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8075e41f4b71Sopenharmony_ci 8076e41f4b71Sopenharmony_ci**参数:** 8077e41f4b71Sopenharmony_ci 8078e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8079e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------ | 8080e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'smoothZoomInfoAvailable',session创建成功可监听。| 8081e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[SmoothZoomInfo](#smoothzoominfo11)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 8082e41f4b71Sopenharmony_ci 8083e41f4b71Sopenharmony_ci**示例:** 8084e41f4b71Sopenharmony_ci 8085e41f4b71Sopenharmony_ci```ts 8086e41f4b71Sopenharmony_cifunction unregisterSmoothZoomInfo(photoSession: camera.PhotoSession): void { 8087e41f4b71Sopenharmony_ci photoSession.off('smoothZoomInfoAvailable'); 8088e41f4b71Sopenharmony_ci} 8089e41f4b71Sopenharmony_ci``` 8090e41f4b71Sopenharmony_ci 8091e41f4b71Sopenharmony_ci## VideoSession<sup>11+</sup> 8092e41f4b71Sopenharmony_ci 8093e41f4b71Sopenharmony_ciVideoSession extends [Session](#session11), [Flash](#flash11), [AutoExposure](#autoexposure11), [Focus](#focus11), [Zoom](#zoom11), [Stabilization](#stabilization11), [ColorManagement](#colormanagement12) 8094e41f4b71Sopenharmony_ci 8095e41f4b71Sopenharmony_ci普通录像模式会话类,提供了对闪光灯、曝光、对焦、变焦、视频防抖、色彩空间的操作。 8096e41f4b71Sopenharmony_ci 8097e41f4b71Sopenharmony_ci> **说明:** 8098e41f4b71Sopenharmony_ci> 8099e41f4b71Sopenharmony_ci> 默认的视频录制模式,适用于一般场景。支持720P、1080p等多种分辨率的录制,可选择不同帧率(如30fps、60fps)。 8100e41f4b71Sopenharmony_ci 8101e41f4b71Sopenharmony_ci### canPreconfig<sup>12+</sup> 8102e41f4b71Sopenharmony_ci 8103e41f4b71Sopenharmony_cicanPreconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): boolean 8104e41f4b71Sopenharmony_ci 8105e41f4b71Sopenharmony_ci查询当前Session是否支持指定的与配置类型。 8106e41f4b71Sopenharmony_ci 8107e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8108e41f4b71Sopenharmony_ci 8109e41f4b71Sopenharmony_ci**参数:** 8110e41f4b71Sopenharmony_ci 8111e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8112e41f4b71Sopenharmony_ci|----------------|-------------------------------------|-----|-----------------| 8113e41f4b71Sopenharmony_ci| preconfigType | [PreconfigType](#preconfigtype12) | 是 | 指定配置预期分辨率。 | 8114e41f4b71Sopenharmony_ci| preconfigRatio | [PreconfigRatio](#preconfigratio12) | 否 | 可选画幅比例,默认为16:9。 | 8115e41f4b71Sopenharmony_ci 8116e41f4b71Sopenharmony_ci**返回值:** 8117e41f4b71Sopenharmony_ci 8118e41f4b71Sopenharmony_ci| 类型 | 说明 | 8119e41f4b71Sopenharmony_ci|---------|-----------------------------------------| 8120e41f4b71Sopenharmony_ci| boolean | true: 支持指定预配值类型。<br/>false: 不支持指定预配值类型。 | 8121e41f4b71Sopenharmony_ci 8122e41f4b71Sopenharmony_ci**错误码:** 8123e41f4b71Sopenharmony_ci 8124e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 8125e41f4b71Sopenharmony_ci 8126e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8127e41f4b71Sopenharmony_ci|---------|-----------------------------| 8128e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 8129e41f4b71Sopenharmony_ci 8130e41f4b71Sopenharmony_ci**示例:** 8131e41f4b71Sopenharmony_ci 8132e41f4b71Sopenharmony_ci```ts 8133e41f4b71Sopenharmony_cifunction testCanPreconfig(videoSession: camera.VideoSession, preconfigType: camera.PreconfigType, 8134e41f4b71Sopenharmony_ci preconfigRatio: camera.PreconfigRatio): void { 8135e41f4b71Sopenharmony_ci try { 8136e41f4b71Sopenharmony_ci let result = videoSession.canPreconfig(preconfigType, preconfigRatio); 8137e41f4b71Sopenharmony_ci console.info(`canPreconfig ${preconfigType} ${preconfigRatio} result is : ${result}`); 8138e41f4b71Sopenharmony_ci } catch (error) { 8139e41f4b71Sopenharmony_ci let err = error as BusinessError; 8140e41f4b71Sopenharmony_ci console.error(`The canPreconfig call failed. error code: ${err.code}`); 8141e41f4b71Sopenharmony_ci } 8142e41f4b71Sopenharmony_ci} 8143e41f4b71Sopenharmony_ci``` 8144e41f4b71Sopenharmony_ci 8145e41f4b71Sopenharmony_ci### preconfig<sup>12+</sup> 8146e41f4b71Sopenharmony_ci 8147e41f4b71Sopenharmony_cipreconfig(preconfigType: PreconfigType, preconfigRatio?: PreconfigRatio): void 8148e41f4b71Sopenharmony_ci 8149e41f4b71Sopenharmony_ci对当前Session进行预配置。 8150e41f4b71Sopenharmony_ci 8151e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8152e41f4b71Sopenharmony_ci 8153e41f4b71Sopenharmony_ci**参数:** 8154e41f4b71Sopenharmony_ci 8155e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8156e41f4b71Sopenharmony_ci|----------------|-------------------------------------|-----|-----------------| 8157e41f4b71Sopenharmony_ci| preconfigType | [PreconfigType](#preconfigtype12) | 是 | 指定配置预期分辨率。 | 8158e41f4b71Sopenharmony_ci| preconfigRatio | [PreconfigRatio](#preconfigratio12) | 否 | 可选画幅比例,默认为16:9。 | 8159e41f4b71Sopenharmony_ci 8160e41f4b71Sopenharmony_ci**错误码:** 8161e41f4b71Sopenharmony_ci 8162e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 8163e41f4b71Sopenharmony_ci 8164e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8165e41f4b71Sopenharmony_ci|---------|-----------------------------| 8166e41f4b71Sopenharmony_ci| 7400201 | Camera service fatal error. | 8167e41f4b71Sopenharmony_ci 8168e41f4b71Sopenharmony_ci**示例:** 8169e41f4b71Sopenharmony_ci 8170e41f4b71Sopenharmony_ci```ts 8171e41f4b71Sopenharmony_cifunction testPreconfig(videoSession: camera.VideoSession, preconfigType: camera.PreconfigType, 8172e41f4b71Sopenharmony_ci preconfigRatio: camera.PreconfigRatio): void { 8173e41f4b71Sopenharmony_ci try { 8174e41f4b71Sopenharmony_ci videoSession.preconfig(preconfigType, preconfigRatio); 8175e41f4b71Sopenharmony_ci console.info(`preconfig ${preconfigType} ${preconfigRatio} success`); 8176e41f4b71Sopenharmony_ci } catch (error) { 8177e41f4b71Sopenharmony_ci let err = error as BusinessError; 8178e41f4b71Sopenharmony_ci console.error(`The preconfig call failed. error code: ${err.code}`); 8179e41f4b71Sopenharmony_ci } 8180e41f4b71Sopenharmony_ci} 8181e41f4b71Sopenharmony_ci``` 8182e41f4b71Sopenharmony_ci 8183e41f4b71Sopenharmony_ci### on('error')<sup>11+</sup> 8184e41f4b71Sopenharmony_ci 8185e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 8186e41f4b71Sopenharmony_ci 8187e41f4b71Sopenharmony_ci监听普通录像会话的错误事件,通过注册回调函数获取结果。使用callback异步回调。 8188e41f4b71Sopenharmony_ci 8189e41f4b71Sopenharmony_ci> **说明:** 8190e41f4b71Sopenharmony_ci> 8191e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 8192e41f4b71Sopenharmony_ci 8193e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8194e41f4b71Sopenharmony_ci 8195e41f4b71Sopenharmony_ci**参数:** 8196e41f4b71Sopenharmony_ci 8197e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8198e41f4b71Sopenharmony_ci| -------- | ------------------ | ---- | ------------------------------ | 8199e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用[beginConfig](#beginconfig11),[commitConfig](#commitconfig11-1),[addInput](#addinput11)等接口发生错误时返回错误信息。 | 8200e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 8201e41f4b71Sopenharmony_ci 8202e41f4b71Sopenharmony_ci**示例:** 8203e41f4b71Sopenharmony_ci 8204e41f4b71Sopenharmony_ci```ts 8205e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8206e41f4b71Sopenharmony_ci 8207e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 8208e41f4b71Sopenharmony_ci console.error(`Video session error code: ${err.code}`); 8209e41f4b71Sopenharmony_ci} 8210e41f4b71Sopenharmony_ci 8211e41f4b71Sopenharmony_cifunction registerSessionError(videoSession: camera.VideoSession): void { 8212e41f4b71Sopenharmony_ci videoSession.on('error', callback); 8213e41f4b71Sopenharmony_ci} 8214e41f4b71Sopenharmony_ci``` 8215e41f4b71Sopenharmony_ci 8216e41f4b71Sopenharmony_ci### off('error')<sup>11+</sup> 8217e41f4b71Sopenharmony_ci 8218e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 8219e41f4b71Sopenharmony_ci 8220e41f4b71Sopenharmony_ci注销监听普通录像会话的错误事件,通过注册回调函数获取结果。 8221e41f4b71Sopenharmony_ci 8222e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8223e41f4b71Sopenharmony_ci 8224e41f4b71Sopenharmony_ci**参数:** 8225e41f4b71Sopenharmony_ci 8226e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8227e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ------------------------------ | 8228e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。 | 8229e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback)| 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 8230e41f4b71Sopenharmony_ci 8231e41f4b71Sopenharmony_ci**示例:** 8232e41f4b71Sopenharmony_ci 8233e41f4b71Sopenharmony_ci```ts 8234e41f4b71Sopenharmony_cifunction unregisterSessionError(videoSession: camera.VideoSession): void { 8235e41f4b71Sopenharmony_ci videoSession.off('error'); 8236e41f4b71Sopenharmony_ci} 8237e41f4b71Sopenharmony_ci``` 8238e41f4b71Sopenharmony_ci 8239e41f4b71Sopenharmony_ci### on('focusStateChange')<sup>11+</sup> 8240e41f4b71Sopenharmony_ci 8241e41f4b71Sopenharmony_cion(type: 'focusStateChange', callback: AsyncCallback\<FocusState\>): void 8242e41f4b71Sopenharmony_ci 8243e41f4b71Sopenharmony_ci监听相机聚焦的状态变化,通过注册回调函数获取结果。使用callback异步回调。 8244e41f4b71Sopenharmony_ci 8245e41f4b71Sopenharmony_ci> **说明:** 8246e41f4b71Sopenharmony_ci> 8247e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 8248e41f4b71Sopenharmony_ci 8249e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8250e41f4b71Sopenharmony_ci 8251e41f4b71Sopenharmony_ci**参数:** 8252e41f4b71Sopenharmony_ci 8253e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8254e41f4b71Sopenharmony_ci| -------- | ---------------- | ---- | ------------------------ | 8255e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session创建成功可监听。仅当自动对焦模式时,且相机对焦状态发生改变时可触发该事件。 | 8256e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 是 | 回调函数,用于获取当前对焦状态。 | 8257e41f4b71Sopenharmony_ci 8258e41f4b71Sopenharmony_ci**示例:** 8259e41f4b71Sopenharmony_ci 8260e41f4b71Sopenharmony_ci```ts 8261e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8262e41f4b71Sopenharmony_ci 8263e41f4b71Sopenharmony_cifunction callback(err: BusinessError, focusState: camera.FocusState): void { 8264e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 8265e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 8266e41f4b71Sopenharmony_ci return; 8267e41f4b71Sopenharmony_ci } 8268e41f4b71Sopenharmony_ci console.info(`Focus state: ${focusState}`); 8269e41f4b71Sopenharmony_ci} 8270e41f4b71Sopenharmony_ci 8271e41f4b71Sopenharmony_cifunction registerFocusStateChange(videoSession: camera.VideoSession): void { 8272e41f4b71Sopenharmony_ci videoSession.on('focusStateChange', callback); 8273e41f4b71Sopenharmony_ci} 8274e41f4b71Sopenharmony_ci``` 8275e41f4b71Sopenharmony_ci 8276e41f4b71Sopenharmony_ci### off('focusStateChange')<sup>11+</sup> 8277e41f4b71Sopenharmony_ci 8278e41f4b71Sopenharmony_cioff(type: 'focusStateChange', callback?: AsyncCallback\<FocusState\>): void 8279e41f4b71Sopenharmony_ci 8280e41f4b71Sopenharmony_ci注销监听相机聚焦的状态变化。 8281e41f4b71Sopenharmony_ci 8282e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8283e41f4b71Sopenharmony_ci 8284e41f4b71Sopenharmony_ci**参数:** 8285e41f4b71Sopenharmony_ci 8286e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8287e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------ | 8288e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session创建成功可监听。 | 8289e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 8290e41f4b71Sopenharmony_ci 8291e41f4b71Sopenharmony_ci**示例:** 8292e41f4b71Sopenharmony_ci 8293e41f4b71Sopenharmony_ci```ts 8294e41f4b71Sopenharmony_cifunction unregisterFocusStateChange(videoSession: camera.VideoSession): void { 8295e41f4b71Sopenharmony_ci videoSession.off('focusStateChange'); 8296e41f4b71Sopenharmony_ci} 8297e41f4b71Sopenharmony_ci``` 8298e41f4b71Sopenharmony_ci 8299e41f4b71Sopenharmony_ci### on('smoothZoomInfoAvailable')<sup>11+</sup> 8300e41f4b71Sopenharmony_ci 8301e41f4b71Sopenharmony_cion(type: 'smoothZoomInfoAvailable', callback: AsyncCallback\<SmoothZoomInfo\>): void 8302e41f4b71Sopenharmony_ci 8303e41f4b71Sopenharmony_ci监听相机平滑变焦的状态变化,通过注册回调函数获取结果。使用callback异步回调。 8304e41f4b71Sopenharmony_ci 8305e41f4b71Sopenharmony_ci> **说明:** 8306e41f4b71Sopenharmony_ci> 8307e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 8308e41f4b71Sopenharmony_ci 8309e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8310e41f4b71Sopenharmony_ci 8311e41f4b71Sopenharmony_ci**参数:** 8312e41f4b71Sopenharmony_ci 8313e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8314e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------ | 8315e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'smoothZoomInfoAvailable',session创建成功可监听。| 8316e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[SmoothZoomInfo](#smoothzoominfo11)\> | 是 | 回调函数,用于获取当前平滑变焦状态。 | 8317e41f4b71Sopenharmony_ci 8318e41f4b71Sopenharmony_ci**示例:** 8319e41f4b71Sopenharmony_ci 8320e41f4b71Sopenharmony_ci```ts 8321e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8322e41f4b71Sopenharmony_ci 8323e41f4b71Sopenharmony_cifunction callback(err: BusinessError, smoothZoomInfo: camera.SmoothZoomInfo): void { 8324e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 8325e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 8326e41f4b71Sopenharmony_ci return; 8327e41f4b71Sopenharmony_ci } 8328e41f4b71Sopenharmony_ci console.info(`The duration of smooth zoom: ${smoothZoomInfo.duration}`); 8329e41f4b71Sopenharmony_ci} 8330e41f4b71Sopenharmony_ci 8331e41f4b71Sopenharmony_cifunction registerSmoothZoomInfo(videoSession: camera.VideoSession): void { 8332e41f4b71Sopenharmony_ci videoSession.on('smoothZoomInfoAvailable', callback); 8333e41f4b71Sopenharmony_ci} 8334e41f4b71Sopenharmony_ci``` 8335e41f4b71Sopenharmony_ci 8336e41f4b71Sopenharmony_ci### off('smoothZoomInfoAvailable')<sup>11+</sup> 8337e41f4b71Sopenharmony_ci 8338e41f4b71Sopenharmony_cioff(type: 'smoothZoomInfoAvailable', callback?: AsyncCallback\<SmoothZoomInfo\>): void 8339e41f4b71Sopenharmony_ci 8340e41f4b71Sopenharmony_ci注销监听相机平滑变焦的状态变化。 8341e41f4b71Sopenharmony_ci 8342e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8343e41f4b71Sopenharmony_ci 8344e41f4b71Sopenharmony_ci**参数:** 8345e41f4b71Sopenharmony_ci 8346e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8347e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------ | 8348e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'smoothZoomInfoAvailable',session创建成功可监听。| 8349e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[SmoothZoomInfo](#smoothzoominfo11)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 8350e41f4b71Sopenharmony_ci 8351e41f4b71Sopenharmony_ci**示例:** 8352e41f4b71Sopenharmony_ci 8353e41f4b71Sopenharmony_ci```ts 8354e41f4b71Sopenharmony_cifunction unregisterSmoothZoomInfo(videoSession: camera.VideoSession): void { 8355e41f4b71Sopenharmony_ci videoSession.off('smoothZoomInfoAvailable'); 8356e41f4b71Sopenharmony_ci} 8357e41f4b71Sopenharmony_ci``` 8358e41f4b71Sopenharmony_ci 8359e41f4b71Sopenharmony_ci## SecureSession<sup>12+</sup> 8360e41f4b71Sopenharmony_ci 8361e41f4b71Sopenharmony_ciSecureSession extends [Session](#session11), [Flash](#flash11), [AutoExposure](#autoexposure11), [Focus](#focus11), [Zoom](#zoom11) 8362e41f4b71Sopenharmony_ci 8363e41f4b71Sopenharmony_ci安全模式会话类,提供了对闪光灯、曝光、对焦、变焦的操作。 8364e41f4b71Sopenharmony_ci 8365e41f4b71Sopenharmony_ci> **说明:** 8366e41f4b71Sopenharmony_ci> 8367e41f4b71Sopenharmony_ci> 通过[createSession](#createsession11)接口传入[SceneMode](#scenemode11)为SECURE_PHOTO模式创建一个安全模式的会话。该模式开放给人脸识别、银行等有安全诉求的应用,需要结合安全TA使用,支持同时出普通预览流和安全流的业务场景。 8368e41f4b71Sopenharmony_ci> 安全TA:可用于图片处理,它具备验证服务器下发数据的验签能力、图片签名、解析及组装tlv逻辑的能力,还具备密钥读取、创建及操作能力。 8369e41f4b71Sopenharmony_ci 8370e41f4b71Sopenharmony_ci### addSecureOutput<sup>12+</sup> 8371e41f4b71Sopenharmony_ci 8372e41f4b71Sopenharmony_ciaddSecureOutput(previewOutput: PreviewOutput): void 8373e41f4b71Sopenharmony_ci 8374e41f4b71Sopenharmony_ci把其中一条[PreviewOutput](#previewoutput)标记成安全输出。 8375e41f4b71Sopenharmony_ci 8376e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8377e41f4b71Sopenharmony_ci 8378e41f4b71Sopenharmony_ci**参数:** 8379e41f4b71Sopenharmony_ci 8380e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8381e41f4b71Sopenharmony_ci| ------------- | ------------------------------- | ---- |---------------| 8382e41f4b71Sopenharmony_ci| previewOutput | [PreviewOutput](#previewoutput) | 是 | 需要标记成安全输出的预览流,传参异常时,会返回错误码。 | 8383e41f4b71Sopenharmony_ci 8384e41f4b71Sopenharmony_ci**错误码:** 8385e41f4b71Sopenharmony_ci 8386e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。 8387e41f4b71Sopenharmony_ci 8388e41f4b71Sopenharmony_ci| 错误码ID | 错误信息 | 8389e41f4b71Sopenharmony_ci| --------------- | --------------- | 8390e41f4b71Sopenharmony_ci| 7400101 | Parameter missing or parameter type incorrect. | 8391e41f4b71Sopenharmony_ci| 7400102 | Operation not allowed. | 8392e41f4b71Sopenharmony_ci| 7400103 | Session not config. | 8393e41f4b71Sopenharmony_ci 8394e41f4b71Sopenharmony_ci**示例:** 8395e41f4b71Sopenharmony_ci 8396e41f4b71Sopenharmony_ci```ts 8397e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8398e41f4b71Sopenharmony_ci 8399e41f4b71Sopenharmony_cifunction addSecureOutput(session: camera.SecureSession, previewOutput: camera.PreviewOutput): void { 8400e41f4b71Sopenharmony_ci try { 8401e41f4b71Sopenharmony_ci session.addSecureOutput(previewOutput); 8402e41f4b71Sopenharmony_ci } catch (error) { 8403e41f4b71Sopenharmony_ci // 失败返回错误码error.code并处理 8404e41f4b71Sopenharmony_ci let err = error as BusinessError; 8405e41f4b71Sopenharmony_ci console.error(`The addOutput call failed. error code: ${err.code}`); 8406e41f4b71Sopenharmony_ci } 8407e41f4b71Sopenharmony_ci} 8408e41f4b71Sopenharmony_ci``` 8409e41f4b71Sopenharmony_ci### on('error')<sup>12+</sup> 8410e41f4b71Sopenharmony_ci 8411e41f4b71Sopenharmony_cion(type: 'error', callback: ErrorCallback): void 8412e41f4b71Sopenharmony_ci 8413e41f4b71Sopenharmony_ci监听安全相机会话的错误事件,通过注册回调函数获取结果。使用callback异步回调。 8414e41f4b71Sopenharmony_ci 8415e41f4b71Sopenharmony_ci> **说明:** 8416e41f4b71Sopenharmony_ci> 8417e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 8418e41f4b71Sopenharmony_ci 8419e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8420e41f4b71Sopenharmony_ci 8421e41f4b71Sopenharmony_ci**参数:** 8422e41f4b71Sopenharmony_ci 8423e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8424e41f4b71Sopenharmony_ci| -------- | ------------------ | ---- | ------------------------------ | 8425e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。session调用相关接口出现错误时会触发该事件,比如调用[beginConfig](#beginconfig11),[commitConfig](#commitconfig11-1),[addInput](#addinput11)等接口发生错误时返回错误信息。 | 8426e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode)。 | 8427e41f4b71Sopenharmony_ci 8428e41f4b71Sopenharmony_ci**示例:** 8429e41f4b71Sopenharmony_ci 8430e41f4b71Sopenharmony_ci```ts 8431e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8432e41f4b71Sopenharmony_ci 8433e41f4b71Sopenharmony_cifunction callback(err: BusinessError): void { 8434e41f4b71Sopenharmony_ci console.error(`Video session error code: ${err.code}`); 8435e41f4b71Sopenharmony_ci} 8436e41f4b71Sopenharmony_ci 8437e41f4b71Sopenharmony_cifunction registerSessionError(secureSession: camera.SecureSession): void { 8438e41f4b71Sopenharmony_ci secureSession.on('error', callback); 8439e41f4b71Sopenharmony_ci} 8440e41f4b71Sopenharmony_ci``` 8441e41f4b71Sopenharmony_ci 8442e41f4b71Sopenharmony_ci### off('error')<sup>12+</sup> 8443e41f4b71Sopenharmony_ci 8444e41f4b71Sopenharmony_cioff(type: 'error', callback?: ErrorCallback): void 8445e41f4b71Sopenharmony_ci 8446e41f4b71Sopenharmony_ci注销监听安全相机会话的错误事件,通过注册回调函数获取结果。 8447e41f4b71Sopenharmony_ci 8448e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8449e41f4b71Sopenharmony_ci 8450e41f4b71Sopenharmony_ci**参数:** 8451e41f4b71Sopenharmony_ci 8452e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8453e41f4b71Sopenharmony_ci| -------- | --------------------------- | ---- | ------------------------------ | 8454e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'error',session创建成功之后可监听该接口。 | 8455e41f4b71Sopenharmony_ci| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback)| 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 8456e41f4b71Sopenharmony_ci 8457e41f4b71Sopenharmony_ci**示例:** 8458e41f4b71Sopenharmony_ci 8459e41f4b71Sopenharmony_ci```ts 8460e41f4b71Sopenharmony_cifunction unregisterSessionError(secureSession: camera.SecureSession): void { 8461e41f4b71Sopenharmony_ci secureSession.off('error'); 8462e41f4b71Sopenharmony_ci} 8463e41f4b71Sopenharmony_ci``` 8464e41f4b71Sopenharmony_ci 8465e41f4b71Sopenharmony_ci### on('focusStateChange')<sup>12+</sup> 8466e41f4b71Sopenharmony_ci 8467e41f4b71Sopenharmony_cion(type: 'focusStateChange', callback: AsyncCallback\<FocusState\>): void 8468e41f4b71Sopenharmony_ci 8469e41f4b71Sopenharmony_ci监听相机聚焦的状态变化,通过注册回调函数获取结果。使用callback异步回调。 8470e41f4b71Sopenharmony_ci 8471e41f4b71Sopenharmony_ci> **说明:** 8472e41f4b71Sopenharmony_ci> 8473e41f4b71Sopenharmony_ci> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。 8474e41f4b71Sopenharmony_ci 8475e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8476e41f4b71Sopenharmony_ci 8477e41f4b71Sopenharmony_ci**参数:** 8478e41f4b71Sopenharmony_ci 8479e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8480e41f4b71Sopenharmony_ci| -------- | ---------------- | ---- | ------------------------ | 8481e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session创建成功可监听。仅当自动对焦模式时,且相机对焦状态发生改变时可触发该事件。 | 8482e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 是 | 回调函数,用于获取当前对焦状态。 | 8483e41f4b71Sopenharmony_ci 8484e41f4b71Sopenharmony_ci**示例:** 8485e41f4b71Sopenharmony_ci 8486e41f4b71Sopenharmony_ci```ts 8487e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 8488e41f4b71Sopenharmony_ci 8489e41f4b71Sopenharmony_cifunction callback(err: BusinessError, focusState: camera.FocusState): void { 8490e41f4b71Sopenharmony_ci if (err !== undefined && err.code !== 0) { 8491e41f4b71Sopenharmony_ci console.error(`Callback Error, errorCode: ${err.code}`); 8492e41f4b71Sopenharmony_ci return; 8493e41f4b71Sopenharmony_ci } 8494e41f4b71Sopenharmony_ci console.info(`Focus state: ${focusState}`); 8495e41f4b71Sopenharmony_ci} 8496e41f4b71Sopenharmony_ci 8497e41f4b71Sopenharmony_cifunction registerFocusStateChange(secureSession: camera.SecureSession): void { 8498e41f4b71Sopenharmony_ci secureSession.on('focusStateChange', callback); 8499e41f4b71Sopenharmony_ci} 8500e41f4b71Sopenharmony_ci``` 8501e41f4b71Sopenharmony_ci 8502e41f4b71Sopenharmony_ci### off('focusStateChange')<sup>12+</sup> 8503e41f4b71Sopenharmony_ci 8504e41f4b71Sopenharmony_cioff(type: 'focusStateChange', callback?: AsyncCallback\<FocusState\>): void 8505e41f4b71Sopenharmony_ci 8506e41f4b71Sopenharmony_ci注销监听相机聚焦的状态变化。 8507e41f4b71Sopenharmony_ci 8508e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Multimedia.Camera.Core 8509e41f4b71Sopenharmony_ci 8510e41f4b71Sopenharmony_ci**参数:** 8511e41f4b71Sopenharmony_ci 8512e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 8513e41f4b71Sopenharmony_ci| -------- | ----------------------------------------- | ---- | ------------------------ | 8514e41f4b71Sopenharmony_ci| type | string | 是 | 监听事件,固定为'focusStateChange',session创建成功可监听。 | 8515e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[FocusState](#focusstate)\> | 否 | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 | 8516e41f4b71Sopenharmony_ci 8517e41f4b71Sopenharmony_ci**示例:** 8518e41f4b71Sopenharmony_ci 8519e41f4b71Sopenharmony_ci```ts 8520e41f4b71Sopenharmony_cifunction unregisterFocusStateChange(secureSession: camera.SecureSession): void { 8521e41f4b71Sopenharmony_ci secureSession.off('focusStateChange'); 8522e41f4b71Sopenharmony_ci} 8523e41f4b71Sopenharmony_ci```