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```