1e41f4b71Sopenharmony_ci# Multimedia Subsystem ChangeLog
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciCompared with OpenHarmony 3.2 Beta4, OpenHarmony3.2.10.3 has the following changes in APIs of the camera component in the multimedia subsystem.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci## cl.subsystemname.1 Camera API Changed
6e41f4b71Sopenharmony_ci1. All the APIs of the camera component are changed to system APIs in the API version 9.
7e41f4b71Sopenharmony_ci2. Some functional APIs are added and some others are deprecated to:
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci- Improve the usability of camera APIs.
10e41f4b71Sopenharmony_ci- Help you quickly understand camera APIs and use them for development.
11e41f4b71Sopenharmony_ci- Facilitate expansion of framework functions in later versions, and reduce coupling between framework modules.
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ciYou need to refer to the following change description to adapt your application.
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci**Change Impacts**
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ciJS APIs in API version 9 are affected. Your application needs to adapt these APIs so that it can properly implement features in the SDK environment of the new version.
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci**Key API/Component Changes**
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci| Module                | Class                   | Method/Attribute/Enum/Constant                                         | Is System API| Change Type|
22e41f4b71Sopenharmony_ci| ---------------------- | ----------------------- | ------------------------------------------------------------ | --------------- | -------- |
23e41f4b71Sopenharmony_ci| ohos.multimedia.camera | camera                  | function getCameraManager(context: Context): CameraManager;  | Yes             | Added    |
24e41f4b71Sopenharmony_ci| ohos.multimedia.camera | camera                  | function getCameraManager(context: Context, callback: AsyncCallback<CameraManager>): void;<br>function getCameraManager(context: Context): Promise<CameraManager>;       | Yes             | Deprecated    |
25e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraErrorCode         | INVALID_ARGUMENT = 7400101,<br>OPERATION_NOT_ALLOWED = 7400102,<br>SESSION_NOT_CONFIG = 7400103,<br>SESSION_NOT_RUNNING = 7400104,<br>SESSION_CONFIG_LOCKED = 7400105,<br>DEVICE_SETTING_LOCKED = 7400106,<br>CONFILICT_CAMERA = 7400107,<br>DEVICE_DISABLED = 7400108,<br>SERVICE_FATAL_ERROR = 7400201                                                      | Yes             | Added    |
26e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraManager           | getSupportedCameras(): Array<CameraDevice>;<br>getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability;<br>createCameraInput(camera: CameraDevice): CameraInput;<br>createCameraInput(position: CameraPosition, type: CameraType): CameraInput;<br>createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput;<br>createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput;<br>createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput;<br>createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): MetadataOutput;<br>createCaptureSession(): CaptureSession;                                 | Yes             | Added    |
27e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraManager           | getSupportedCameras(callback: AsyncCallback<Array<CameraDevice>>): void;<br>getSupportedCameras(): Promise<Array<CameraDevice>>;<br>getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback<CameraOutputCapability>): void;<br>getSupportedOutputCapability(camera: CameraDevice): Promise<CameraOutputCapability>;<br>createCameraInput(camera: CameraDevice, callback: AsyncCallback<CameraInput>): void;<br>createCameraInput(camera: CameraDevice): Promise<CameraInput>;<br>createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback<CameraInput>): void;<br>createCameraInput(position: CameraPosition, type: CameraType): Promise<CameraInput>;<br>createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PreviewOutput>): void;<br>createPreviewOutput(profile: Profile, surfaceId: string): Promise<PreviewOutput>;<br>createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PhotoOutput>): void;<br>createPhotoOutput(profile: Profile, surfaceId: string): Promise<PhotoOutput>;<br>createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback<VideoOutput>): void;<br>createVideoOutput(profile: VideoProfile, surfaceId: string): Promise<VideoOutput>;<br>createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<MetadataOutput>): void;<br>createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): Promise<MetadataOutput>;<br>createCaptureSession(callback: AsyncCallback<CaptureSession>): void;<br>createCaptureSession(): Promise<CaptureSession>; | Yes             | Deprecated    |
28e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraType              | CAMERA_TYPE_DEFAULT = 0                                                                           | Yes             | Added    |
29e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraType              | CAMERA_TYPE_UNSPECIFIED = 0                                                                       | Yes             | Deprecated    |
30e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraInput             | on(type: 'error', camera: CameraDevice, callback: ErrorCallback<BusinessError>): void;            | Yes             | Added    |
31e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraInput             | release(callback: AsyncCallback<void>): void;<br>release(): Promise<void>;<br>on(type: 'error', camera: CameraDevice, callback: ErrorCallback<CameraInputError>): void; | Yes             | Deprecated    |
32e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraInputErrorCode    | ERROR_UNKNOWN = -1<br>ERROR_NO_PERMISSION = 0<br>ERROR_DEVICE_PREEMPTED = 1<br>ERROR_DEVICE_DISCONNECTED = 2<br>ERROR_DEVICE_IN_USE = 3<br>ERROR_DRIVER_ERROR = 4    | Yes             | Deprecated    |
33e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CameraInputError        | code: CameraInputErrorCode                                                                        | Yes             | Deprecated    |
34e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CaptureSession          | beginConfig(): void;<br>addInput(cameraInput: CameraInput): void;<br>removeInput(cameraInput: CameraInput): void;<br>addOutput(cameraOutput: CameraOutput): void;<br>removeOutput(cameraOutput: CameraOutput): void;<br>hasFlash(): boolean;<br>isFlashModeSupported(flashMode: FlashMode): boolean;<br>getFlashMode(): FlashMode;<br>setFlashMode(flashMode: FlashMode): void;<br>isExposureModeSupported(aeMode: ExposureMode): boolean;<br>getExposureMode(): ExposureMode;<br>setExposureMode(aeMode: ExposureMode): void;<br>getMeteringPoint(): Point;<br>setMeteringPoint(point: Point): void;<br>getExposureBiasRange(): Array<number>;<br>setExposureBias(exposureBias: number): void;<br>getExposureValue(): number;<br>isFocusModeSupported(afMode: FocusMode): boolean;<br>getFocusMode(): FocusMode;<br>setFocusMode(afMode: FocusMode): void;<br>setFocusPoint(point: Point): void;<br>getFocusPoint(): Point;<br>getFocalLength(): number;<br>getZoomRatioRange(): Array<number>;<br>getZoomRatio(): number;<br>setZoomRatio(zoomRatio: number): void;<br>isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean;<br>getActiveVideoStabilizationMode(): VideoStabilizationMode;<br>setVideoStabilizationMode(mode: VideoStabilizationMode): void;<br>on(type: 'error', callback: ErrorCallback<BusinessError>): void;                             | Yes             | Added    |
35e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CaptureSession          | beginConfig(callback: AsyncCallback<void>): void;<br>beginConfig(): Promise<void>;<br>addInput(cameraInput: CameraInput, callback: AsyncCallback<void>): void;<br>addInput(cameraInput: CameraInput): Promise<void>;<br>removeInput(cameraInput: CameraInput, callback: AsyncCallback<void>): void;<br>removeInput(cameraInput: CameraInput): Promise<void>;<br>addOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br>addOutput(cameraOutput: CameraOutput): Promise<void>;<br>removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br>removeOutput(cameraOutput: CameraOutput): Promise<void>;<br>hasFlash(callback: AsyncCallback<boolean>): void;<br>hasFlash(): Promise<boolean>;<br>isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean>): void;<br>isFlashModeSupported(flashMode: FlashMode): Promise<boolean>;<br>getFlashMode(callback: AsyncCallback<FlashMode>): void;<br>getFlashMode(): Promise<FlashMode>;<br>setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void>): void;<br>setFlashMode(flashMode: FlashMode): Promise<void>;<br>isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback<boolean>): void;<br>isExposureModeSupported(aeMode: ExposureMode): Promise<boolean>;<br>getExposureMode(callback: AsyncCallback<ExposureMode>): void;<br>getExposureMode(): Promise<ExposureMode>;<br>setExposureMode(aeMode: ExposureMode, callback: AsyncCallback<void>): void;<br>setExposureMode(aeMode: ExposureMode): Promise<void>;<br>getMeteringPoint(callback: AsyncCallback<Point>): void;<br>getMeteringPoint(): Promise<Point>;<br>setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;<br>setMeteringPoint(point: Point): Promise<void>;<br>getExposureBiasRange(callback: AsyncCallback<Array<number>>): void;<br>getExposureBiasRange(): Promise<Array<number>>;<br>setExposureBias(exposureBias: number, callback: AsyncCallback<void>): void;<br>setExposureBias(exposureBias: number): Promise<void>;<br>getExposureValue(callback: AsyncCallback<number>): void;<br>getExposureValue(): Promise<number>;<br>isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void;<br>isFocusModeSupported(afMode: FocusMode): Promise<boolean>;<br>getFocusMode(callback: AsyncCallback<FocusMode>): void;<br>getFocusMode(): Promise<FocusMode>;<br>setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void;<br>setFocusMode(afMode: FocusMode): Promise<void>;<br>setFocusPoint(point: Point, callback: AsyncCallback<void>): void;<br>setFocusPoint(point: Point): Promise<void>;<br>getFocusPoint(callback: AsyncCallback<Point>): void;<br>getFocusPoint(): Promise<Point>;<br>getFocalLength(callback: AsyncCallback<number>): void;<br>getFocalLength(): Promise<number>;<br>getZoomRatioRange(callback: AsyncCallback<Array<number>>): void;<br>getZoomRatioRange(): Promise<Array<number>>;<br>getZoomRatio(callback: AsyncCallback<number>): void;<br>getZoomRatio(): Promise<number>;<br>setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void;<br>setZoomRatio(zoomRatio: number): Promise<void>;<br>isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback<boolean>): void;<br>isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): Promise<boolean>;<br>getActiveVideoStabilizationMode(callback: AsyncCallback<VideoStabilizationMode>): void;<br>getActiveVideoStabilizationMode(): Promise<VideoStabilizationMode>;<br>setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback<void>): void;<br>setVideoStabilizationMode(mode: VideoStabilizationMode): Promise<void>;<br>on(type: 'error', callback: ErrorCallback<CaptureSessionError>): void;                                     | Yes             | Deprecated    |
36e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CaptureSessionErrorCode | ERROR_UNKNOWN = -1<br>ERROR_INSUFFICIENT_RESOURCES = 0<br>ERROR_TIMEOUT = 1  | Yes             | Deprecated    |
37e41f4b71Sopenharmony_ci| ohos.multimedia.camera | CaptureSessionError     | code: CaptureSessionErrorCode                                                  | Yes             | Deprecated    |
38e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PreviewOutput           | on(type: 'error', callback: ErrorCallback<BusinessError>): void;               | Yes             | Added    |
39e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PreviewOutput           | on(type: 'error', callback: ErrorCallback<PreviewOutputError>): void;          | Yes             | Deprecated    |
40e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PreviewOutputErrorCode  | ERROR_UNKNOWN = -1                                                             | Yes             | Deprecated    |
41e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PreviewOutputError      | code: PreviewOutputErrorCode                                                   | Yes             | Deprecated    |
42e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PhotoOutput             | capture(): Promise<void>;<br>isMirrorSupported(): boolean;<br>on(type: 'error', callback: ErrorCallback<BusinessError>): void;                                              | Yes             | Added    |
43e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PhotoOutput             | isMirrorSupported(callback: AsyncCallback<boolean>): void;<br>isMirrorSupported(): Promise<boolean>;<br>on(type: 'error', callback: ErrorCallback<PhotoOutputError>): void; | Yes             | Deprecated    |
44e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PhotoOutputErrorCode    | ERROR_UNKNOWN = -1<br>ERROR_DRIVER_ERROR = 0<br>ERROR_INSUFFICIENT_RESOURCES = 1<br>ERROR_TIMEOUT = 2 | Yes             | Deprecated    |
45e41f4b71Sopenharmony_ci| ohos.multimedia.camera | PhotoOutputError        | code: PhotoOutputErrorCode                                                                               | Yes             | Deprecated    |
46e41f4b71Sopenharmony_ci| ohos.multimedia.camera | VideoOutput             | on(type: 'error', callback: ErrorCallback<BusinessError>): void;                                         | Yes             | Added    |
47e41f4b71Sopenharmony_ci| ohos.multimedia.camera | VideoOutput             | on(type: 'error', callback: ErrorCallback<VideoOutputError>): void;                                      | Yes             | Deprecated    |
48e41f4b71Sopenharmony_ci| ohos.multimedia.camera | VideoOutputErrorCode    | ERROR_UNKNOWN = -1<br>ERROR_DRIVER_ERROR = 0                                                            | Yes             | Deprecated    |
49e41f4b71Sopenharmony_ci| ohos.multimedia.camera | VideoOutputError        | code: VideoOutputErrorCode                                                                               | Yes             | Deprecated    |
50e41f4b71Sopenharmony_ci| ohos.multimedia.camera | MetadataObject          | readonly type: MetadataObjectType;<br>readonly timestamp: number;                                       | Yes             | Added    |
51e41f4b71Sopenharmony_ci| ohos.multimedia.camera | MetadataObject          | getType(callback: AsyncCallback<MetadataObjectType>): void;<br>getType(): Promise<MetadataObjectType>;<br>getTimestamp(callback: AsyncCallback<number>): void;<br>getTimestamp(): Promise<number>;<br>getBoundingBox(callback: AsyncCallback<Rect>): void;<br>getBoundingBox(): Promise<Rect>;                                                                                  | Yes             | Deprecated    |
52e41f4b71Sopenharmony_ci| ohos.multimedia.camera | MetadataFaceObject      | readonly boundingBox: Rect                                       | Yes             | Added    |
53e41f4b71Sopenharmony_ci| ohos.multimedia.camera | MetadataOutput          | on(type: 'error', callback: ErrorCallback<BusinessError>): void; | Yes             | Added    |
54e41f4b71Sopenharmony_ci| ohos.multimedia.camera | MetadataOutput          | on(type: 'error', callback: ErrorCallback<BusinessError>): void; | Yes             | Deprecated    |
55e41f4b71Sopenharmony_ci| ohos.multimedia.camera | MetadataOutputErrorCode | ERROR_UNKNOWN = -1<br>ERROR_INSUFFICIENT_RESOURCES = 0          | Yes             | Deprecated    |
56e41f4b71Sopenharmony_ci| ohos.multimedia.camera | MetadataOutputError     | code: MetadataOutputErrorCode                                    | Yes             | Deprecated    |
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci**Adaptation Guide**
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ciIn addition to the new APIs and deprecated APIs, you need to adapt your application to the changed APIs.
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ciIn Beta4 and later versions, the following APIs are changed.
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci**New APIs**
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci1. **CameraErrorCode** enums
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci   Enum: INVALID_ARGUMENT; value: 7400101
69e41f4b71Sopenharmony_ci
70e41f4b71Sopenharmony_ci   Enum: OPERATION_NOT_ALLOWED; value: 7400102
71e41f4b71Sopenharmony_ci   
72e41f4b71Sopenharmony_ci   Enum: SESSION_NOT_CONFIG; value: 7400103
73e41f4b71Sopenharmony_ci   
74e41f4b71Sopenharmony_ci   Enum: SESSION_NOT_RUNNING; value: 7400104
75e41f4b71Sopenharmony_ci   
76e41f4b71Sopenharmony_ci   Enum: SESSION_CONFIG_LOCKED; value: 7400105
77e41f4b71Sopenharmony_ci   
78e41f4b71Sopenharmony_ci   Enum: DEVICE_SETTING_LOCKED; value: 7400106
79e41f4b71Sopenharmony_ci   
80e41f4b71Sopenharmony_ci   Enum: CONFILICT_CAMERA; value: 7400107
81e41f4b71Sopenharmony_ci   
82e41f4b71Sopenharmony_ci   Enum: DEVICE_DISABLED; value: 7400108
83e41f4b71Sopenharmony_ci   
84e41f4b71Sopenharmony_ci   Enum: SERVICE_FATAL_ERROR; value: 7400201
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci2. Added **capture(): Promise<void>** to the **PhotoOutput** API.
87e41f4b71Sopenharmony_ci
88e41f4b71Sopenharmony_ci3. Added the readonly type **MetadataObjectType** to the **MetadataObject** API.
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci4. Added **readonly timestamp: number** to the **MetadataObject** API.
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci5. Added **readonly boundingBox: Rect** to the **MetadataObject** API.
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci**Deprecated APIs**
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci1. Deprecated the **release(callback: AsyncCallback<void>): void** and **release(): Promise<void>** APIs in **CameraInput**.
97e41f4b71Sopenharmony_ci
98e41f4b71Sopenharmony_ci2. Deprecated the **CameraInputErrorCode** enums and all their values: **ERROR_UNKNOWN** = **-1**, **ERROR_NO_PERMISSION** = **0**, **ERROR_DEVICE_PREEMPTED** = **1**, **ERROR_DEVICE_DISCONNECTED** = **2**, **ERROR_DEVICE_IN_USE** = **3**, **ERROR_DRIVER_ERROR** = **4**
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci3. Deprecated the **CameraInputError** API and its attribute **CameraInputErrorCode**.
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci4. Deprecated the **CaptureSessionErrorCode** enums and all their values: **ERROR_UNKNOWN** = **-1**, **ERROR_INSUFFICIENT_RESOURCES** = **0**, **ERROR_TIMEOUT** = **1**
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci5. Deprecated the **CaptureSessionError** API and its attribute **CaptureSessionErrorCode**.
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci6. Deprecated the **PreviewOutputErrorCode** enum and its value: **ERROR_UNKNOWN** = **-1**
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci7. Deprecated the **PreviewOutputError** API and its attribute **PreviewOutputErrorCode**.
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci8. Deprecated the **PhotoOutputErrorCode** enums and all their values: **ERROR_UNKNOWN** = **-1**, **ERROR_DRIVER_ERROR** = **0**, **ERROR_INSUFFICIENT_RESOURCES** = **1**, **ERROR_TIMEOUT** = **2**
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci9. Deprecated the **PhotoOutputError** API and its attribute **PhotoOutputErrorCode**.
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci10. Deprecated the **VideoOutputErrorCode** enums and all their values: **ERROR_UNKNOWN** = **-1**, **ERROR_DRIVER_ERROR** = **0**
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci11. Deprecated the **VideoOutputError** API and its attribute **VideoOutputErrorCode**.
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci12. Deprecated **getType(callback: AsyncCallback<MetadataObjectType>): void** in the **MetadataObject** API.
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci13. Deprecated **getType(): Promise<MetadataObjectType>** in the **MetadataObject** API.
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci14. Deprecated **getTimestamp(callback: AsyncCallback<number>): void** in the **MetadataObject** API.
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci15. Deprecated **getTimestamp(): Promise<number>** in the **MetadataObject** API.
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci16. Deprecated **getBoundingBox(callback: AsyncCallback<Rect>): void** in the **MetadataObject** API.
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci17. Deprecated **getBoundingBox(): Promise<Rect>** in the **MetadataObject** API.
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci18. Deprecated the **MetadataOutputErrorCode** enums and all their values: **ERROR_UNKNOWN** = **-1**, **ERROR_INSUFFICIENT_RESOURCES** = **0**
131e41f4b71Sopenharmony_ci
132e41f4b71Sopenharmony_ci19. Deprecated the **MetadataOutputError** API and its attribute **MetadataOutputErrorCode**.
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci**Changed APIs**
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ci1. Changed the return modes of the **getCameraManager** API in the camera module from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getCameraManager(context: Context, callback: AsyncCallback<CameraManager>): void** and **getCameraManager(context: Context): Promise<CameraManager>** are changed to **getCameraManager(context: Context): CameraManager**.
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci   The sample code is as follows:
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci   ```
141e41f4b71Sopenharmony_ci   let cameraManager = camera.getCameraManager(context);
142e41f4b71Sopenharmony_ci   ```
143e41f4b71Sopenharmony_ci
144e41f4b71Sopenharmony_ci2. Changed the return modes of the **getSupportedCameras** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getSupportedCameras(callback: AsyncCallback<Array<CameraDevice>>): void** and **getSupportedCameras(): Promise<Array<CameraDevice>>** are changed to **getSupportedCameras(): Array<CameraDevice>**.
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci   The sample code is as follows:
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci   ```
149e41f4b71Sopenharmony_ci   let cameras = cameraManager.getSupportedCameras();
150e41f4b71Sopenharmony_ci   ```
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci3. Changed the return modes of the **getSupportedOutputCapability** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback<CameraOutputCapability>): void** and **getSupportedOutputCapability(camera: CameraDevice): Promise<CameraOutputCapability>** are changed to **getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability**.
153e41f4b71Sopenharmony_ci
154e41f4b71Sopenharmony_ci   The sample code is as follows:
155e41f4b71Sopenharmony_ci
156e41f4b71Sopenharmony_ci   ```
157e41f4b71Sopenharmony_ci   let cameraDevice = cameras[0];
158e41f4b71Sopenharmony_ci   let CameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice);
159e41f4b71Sopenharmony_ci   ```
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci4. Changed the return modes of the **createCameraInput(camera: CameraDevice)** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **createCameraInput(camera: CameraDevice, callback: AsyncCallback<CameraInput>): void** and **createCameraInput(camera: CameraDevice): Promise<CameraInput>** are changed to **createCameraInput(camera: CameraDevice): CameraInput**.
162e41f4b71Sopenharmony_ci
163e41f4b71Sopenharmony_ci   The sample code is as follows:
164e41f4b71Sopenharmony_ci
165e41f4b71Sopenharmony_ci   ```
166e41f4b71Sopenharmony_ci   let cameraDevice = cameras[0];
167e41f4b71Sopenharmony_ci   let cameraInput = cameraManager.createCameraInput(cameraDevice);
168e41f4b71Sopenharmony_ci   ```
169e41f4b71Sopenharmony_ci
170e41f4b71Sopenharmony_ci5. Changed the return modes of the **createCameraInput(position: CameraPosition, type: CameraType)** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback<CameraInput>): void** and **createCameraInput(position: CameraPosition, type: CameraType): Promise<CameraInput>** are changed to **createCameraInput(position: CameraPosition, type: CameraType): CameraInput**.
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci   The sample code is as follows:
173e41f4b71Sopenharmony_ci
174e41f4b71Sopenharmony_ci   ```
175e41f4b71Sopenharmony_ci   let cameraDevice = cameras[0];
176e41f4b71Sopenharmony_ci   let position = cameraDevice.cameraPosition;
177e41f4b71Sopenharmony_ci   let type = cameraDevice.cameraType;
178e41f4b71Sopenharmony_ci   let cameraInput = cameraManager.createCameraInput(position, type);
179e41f4b71Sopenharmony_ci   ```
180e41f4b71Sopenharmony_ci
181e41f4b71Sopenharmony_ci6. Changed the return modes of the **createPreviewOutput** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PreviewOutput>): void** and **createPreviewOutput(profile: Profile, surfaceId: string): Promise<PreviewOutput>** are changed to **createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput**.
182e41f4b71Sopenharmony_ci
183e41f4b71Sopenharmony_ci   The sample code is as follows:
184e41f4b71Sopenharmony_ci
185e41f4b71Sopenharmony_ci   ```
186e41f4b71Sopenharmony_ci   let profile = cameraoutputcapability.previewProfiles[0];
187e41f4b71Sopenharmony_ci   let previewOutput = cameraManager.createPreviewOutput(profile, surfaceId);
188e41f4b71Sopenharmony_ci   ```
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci7. Changed the return modes of the **createPhotoOutput** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PhotoOutput>): void** and **createPhotoOutput(profile: Profile, surfaceId: string): Promise<PhotoOutput>** are changed to **createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput**.
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci   The sample code is as follows:
193e41f4b71Sopenharmony_ci
194e41f4b71Sopenharmony_ci   ```
195e41f4b71Sopenharmony_ci   let profile = cameraoutputcapability.photoProfiles[0];
196e41f4b71Sopenharmony_ci   let photoOutput = cameraManager.createPhotoOutput(profile, surfaceId);
197e41f4b71Sopenharmony_ci   ```
198e41f4b71Sopenharmony_ci
199e41f4b71Sopenharmony_ci8. Changed the return modes of the **createVideoOutput** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback<VideoOutput>): void** and **createVideoOutput(profile: VideoProfile, surfaceId: string): Promise<VideoOutput>** are changed to **createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput**.
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci   The sample code is as follows:
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci   ```
204e41f4b71Sopenharmony_ci   let profile = cameraoutputcapability.videoProfiles[0];
205e41f4b71Sopenharmony_ci   let videoOutput = cameraManager.createVideoOutput(profile, surfaceId);
206e41f4b71Sopenharmony_ci   ```
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_ci9. Changed the return modes of the **createMetadataOutput** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<MetadataOutput>): void** and **createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): Promise<MetadataOutput>** are changed to **createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): MetadataOutput**.
209e41f4b71Sopenharmony_ci
210e41f4b71Sopenharmony_ci   The sample code is as follows:
211e41f4b71Sopenharmony_ci
212e41f4b71Sopenharmony_ci   ```
213e41f4b71Sopenharmony_ci   let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes;
214e41f4b71Sopenharmony_ci   let metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes);
215e41f4b71Sopenharmony_ci   ```
216e41f4b71Sopenharmony_ci
217e41f4b71Sopenharmony_ci10. Changed the return modes of the **createCaptureSession** API in CameraManager from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **createCaptureSession(callback: AsyncCallback<CaptureSession>): void** and **createCaptureSession(): Promise<CaptureSession>** are changed to **createCaptureSession(): CaptureSession**.
218e41f4b71Sopenharmony_ci
219e41f4b71Sopenharmony_ci    The sample code is as follows:
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci    ```
222e41f4b71Sopenharmony_ci    let captureSession = cameraManager.createCaptureSession();
223e41f4b71Sopenharmony_ci    ```
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci11. Changed the enum **CAMERA_TYPE_UNSPECIFIED** of **CameraType** to **CAMERA_TYPE_DEFAULT**.
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci12. Changed the return value type of the **on** API in CameraInput from **CameraInputError** to **BusinessError**. Therefore, the original API **on(type: 'error', camera: CameraDevice, callback: ErrorCallback<CameraInputError>): void** is changed to **on(type: 'error', camera: CameraDevice, callback: ErrorCallback<BusinessError>): void**.
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci    The sample code is as follows:
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci    ```
232e41f4b71Sopenharmony_ci    let cameraDevice = cameras[0];
233e41f4b71Sopenharmony_ci    cameraInput.on('error', cameraDevice, (BusinessError) => {
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci    })
236e41f4b71Sopenharmony_ci    ```
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_ci13. Changed the return modes of the **beginConfig** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **beginConfig(callback: AsyncCallback<void>): void** and **beginConfig(): Promise<void>** are changed to **beginConfig(): void**.
239e41f4b71Sopenharmony_ci
240e41f4b71Sopenharmony_ci    The sample code is as follows:
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci    ```
243e41f4b71Sopenharmony_ci    captureSession.beginConfig();
244e41f4b71Sopenharmony_ci    ```
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci14. Changed the return modes of the **addInput** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **addInput(cameraInput: CameraInput, callback: AsyncCallback<void>): void** and **addInput(cameraInput: CameraInput): Promise<void>** are changed to **addInput(cameraInput: CameraInput): void**.
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci    The sample code is as follows:
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci    ```
251e41f4b71Sopenharmony_ci    captureSession.addInput(cameraInput);
252e41f4b71Sopenharmony_ci    ```
253e41f4b71Sopenharmony_ci
254e41f4b71Sopenharmony_ci15. Changed the return modes of the **removeInput** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **removeInput(cameraInput: CameraInput, callback: AsyncCallback<void>): void** and **removeInput(cameraInput: CameraInput): Promise<void>** are changed to **removeInput(cameraInput: CameraInput): void**.
255e41f4b71Sopenharmony_ci
256e41f4b71Sopenharmony_ci    The sample code is as follows:
257e41f4b71Sopenharmony_ci
258e41f4b71Sopenharmony_ci    ```
259e41f4b71Sopenharmony_ci    captureSession.removeInput(cameraInput);
260e41f4b71Sopenharmony_ci    ```
261e41f4b71Sopenharmony_ci
262e41f4b71Sopenharmony_ci16. Changed the return modes of the **addOutput** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **addOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void** and **addOutput(cameraOutput: CameraOutput): Promise<void>** are changed to **addOutput(cameraOutput: CameraOutput): void**.
263e41f4b71Sopenharmony_ci
264e41f4b71Sopenharmony_ci    The sample code is as follows:
265e41f4b71Sopenharmony_ci
266e41f4b71Sopenharmony_ci    ```
267e41f4b71Sopenharmony_ci    captureSession.addOutput(previewOutput);
268e41f4b71Sopenharmony_ci    ```
269e41f4b71Sopenharmony_ci
270e41f4b71Sopenharmony_ci17. Changed the return modes of the **removeOutput** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void** and **removeOutput(cameraOutput: CameraOutput): Promise<void>** are changed to **removeOutput(cameraOutput: CameraOutput): void**.
271e41f4b71Sopenharmony_ci
272e41f4b71Sopenharmony_ci    The sample code is as follows:
273e41f4b71Sopenharmony_ci
274e41f4b71Sopenharmony_ci    ```
275e41f4b71Sopenharmony_ci    captureSession.removeOutput(previewOutput);
276e41f4b71Sopenharmony_ci    ```
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci18. Changed the return modes of the **hasFlash** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **hasFlash(callback: AsyncCallback<boolean>): void** and **hasFlash(): Promise<boolean>** are changed to **hasFlash(): boolean**.
279e41f4b71Sopenharmony_ci
280e41f4b71Sopenharmony_ci    The sample code is as follows:
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci    ```
283e41f4b71Sopenharmony_ci    let status = captureSession.hasFlash();
284e41f4b71Sopenharmony_ci    ```
285e41f4b71Sopenharmony_ci
286e41f4b71Sopenharmony_ci19. Changed the return modes of the **isFlashModeSupported** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean>): void** and **isFlashModeSupported(flashMode: FlashMode): Promise<boolean>** are changed to **isFlashModeSupported(flashMode: FlashMode): boolean**.
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ci    The sample code is as follows:
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ci    ```
291e41f4b71Sopenharmony_ci    let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO);
292e41f4b71Sopenharmony_ci    ```
293e41f4b71Sopenharmony_ci
294e41f4b71Sopenharmony_ci20. Changed the return modes of the **getFlashMode** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getFlashMode(callback: AsyncCallback<FlashMode>): void** and **getFlashMode(): Promise<FlashMode>** are changed to **getFlashMode(): FlashMode**.
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci    The sample code is as follows:
297e41f4b71Sopenharmony_ci
298e41f4b71Sopenharmony_ci    ```
299e41f4b71Sopenharmony_ci    let flashMode = captureSession.getFlashMode();
300e41f4b71Sopenharmony_ci    ```
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ci21. Changed the return modes of the **isExposureModeSupported** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback<boolean>): void** and **isExposureModeSupported(aeMode: ExposureMode): Promise<boolean>** are changed to **isExposureModeSupported(aeMode: ExposureMode): boolean**.
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci    The sample code is as follows:
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ci    ```
307e41f4b71Sopenharmony_ci    let isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
308e41f4b71Sopenharmony_ci    ```
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci22. Changed the return modes of the **getExposureMode** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getExposureMode(callback: AsyncCallback<ExposureMode>): void** and **getExposureMode(): Promise<ExposureMode>** are changed to **getExposureMode(): ExposureMode**.
311e41f4b71Sopenharmony_ci
312e41f4b71Sopenharmony_ci    The sample code is as follows:
313e41f4b71Sopenharmony_ci
314e41f4b71Sopenharmony_ci    ```
315e41f4b71Sopenharmony_ci    let exposureMode = captureSession.getExposureMode();
316e41f4b71Sopenharmony_ci    ```
317e41f4b71Sopenharmony_ci
318e41f4b71Sopenharmony_ci23. Changed the return modes of the **setExposureMode** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **setExposureMode(aeMode: ExposureMode, callback: AsyncCallback<void>): void** and **setExposureMode(aeMode: ExposureMode): Promise<void>** are changed to **setExposureMode(aeMode: ExposureMode): void**.
319e41f4b71Sopenharmony_ci
320e41f4b71Sopenharmony_ci    The sample code is as follows:
321e41f4b71Sopenharmony_ci
322e41f4b71Sopenharmony_ci    ```
323e41f4b71Sopenharmony_ci    captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED);
324e41f4b71Sopenharmony_ci    ```
325e41f4b71Sopenharmony_ci
326e41f4b71Sopenharmony_ci24. Changed the return modes of the **getMeteringPoint** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getMeteringPoint(callback: AsyncCallback<Point>): void** and **getMeteringPoint(): Promise<Point>** are changed to **getMeteringPoint(): Point**.
327e41f4b71Sopenharmony_ci
328e41f4b71Sopenharmony_ci    The sample code is as follows:
329e41f4b71Sopenharmony_ci
330e41f4b71Sopenharmony_ci    ```
331e41f4b71Sopenharmony_ci    let exposurePoint = captureSession.getMeteringPoint();
332e41f4b71Sopenharmony_ci    ```
333e41f4b71Sopenharmony_ci
334e41f4b71Sopenharmony_ci25. Changed the return modes of the **setMeteringPoint** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **setMeteringPoint(point: Point, callback: AsyncCallback<void>): void** and **setMeteringPoint(point: Point): Promise<void>** are changed to **setMeteringPoint(point: Point): void**.
335e41f4b71Sopenharmony_ci
336e41f4b71Sopenharmony_ci    The sample code is as follows:
337e41f4b71Sopenharmony_ci
338e41f4b71Sopenharmony_ci    ```
339e41f4b71Sopenharmony_ci    let Point2 = {x: 2, y: 2};
340e41f4b71Sopenharmony_ci    captureSession.setMeteringPoint(Point2);
341e41f4b71Sopenharmony_ci    ```
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci26. Changed the return modes of the **getExposureBiasRange** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getExposureBiasRange(callback: AsyncCallback<Array<number>>): void** and **getExposureBiasRange(): Promise<Array<number>>** are changed to **getExposureBiasRange(): Array<number>**.
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci    The sample code is as follows:
346e41f4b71Sopenharmony_ci
347e41f4b71Sopenharmony_ci    ```
348e41f4b71Sopenharmony_ci    let biasRangeArray = captureSession.getExposureBiasRange();
349e41f4b71Sopenharmony_ci    ```
350e41f4b71Sopenharmony_ci
351e41f4b71Sopenharmony_ci27. Changed the return modes of the **setExposureBias** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **setExposureBias(exposureBias: number, callback: AsyncCallback<void>): void** and **setExposureBias(exposureBias: number): Promise<void>** are changed to **setExposureBias(exposureBias: number): void**.
352e41f4b71Sopenharmony_ci
353e41f4b71Sopenharmony_ci    The sample code is as follows:
354e41f4b71Sopenharmony_ci
355e41f4b71Sopenharmony_ci    ```
356e41f4b71Sopenharmony_ci    let exposureBias = biasRangeArray[0];
357e41f4b71Sopenharmony_ci    captureSession.setExposureBias(exposureBias);
358e41f4b71Sopenharmony_ci    ```
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ci28. Changed the return modes of the **getExposureValue** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getExposureValue(callback: AsyncCallback<number>): void** and **getExposureValue(): Promise<number>** are changed to **getExposureValue(): number**.
361e41f4b71Sopenharmony_ci
362e41f4b71Sopenharmony_ci    The sample code is as follows:
363e41f4b71Sopenharmony_ci
364e41f4b71Sopenharmony_ci    ```
365e41f4b71Sopenharmony_ci    let exposureValue = captureSession.getExposureValue();
366e41f4b71Sopenharmony_ci    ```
367e41f4b71Sopenharmony_ci
368e41f4b71Sopenharmony_ci29. Changed the return modes of the **isFocusModeSupported** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void** and **isFocusModeSupported(afMode: FocusMode): Promise<boolean>** are changed to **isFocusModeSupported(afMode: FocusMode): boolean**.
369e41f4b71Sopenharmony_ci
370e41f4b71Sopenharmony_ci    The sample code is as follows:
371e41f4b71Sopenharmony_ci
372e41f4b71Sopenharmony_ci    ```
373e41f4b71Sopenharmony_ci    let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO);
374e41f4b71Sopenharmony_ci    ```
375e41f4b71Sopenharmony_ci
376e41f4b71Sopenharmony_ci30. Changed the return modes of the **getFocusMode** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getFocusMode(callback: AsyncCallback<FocusMode>): void** and **getFocusMode(): Promise<FocusMode>** are changed to **getFocusMode(): FocusMode**.
377e41f4b71Sopenharmony_ci
378e41f4b71Sopenharmony_ci    The sample code is as follows:
379e41f4b71Sopenharmony_ci
380e41f4b71Sopenharmony_ci    ```
381e41f4b71Sopenharmony_ci    let afMode = captureSession.getFocusMode();
382e41f4b71Sopenharmony_ci    ```
383e41f4b71Sopenharmony_ci
384e41f4b71Sopenharmony_ci31. Changed the return modes of the **setFocusMode** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void** and **setFocusMode(afMode: FocusMode): Promise<void>** are changed to **setFocusMode(afMode: FocusMode): void**.
385e41f4b71Sopenharmony_ci
386e41f4b71Sopenharmony_ci    The sample code is as follows:
387e41f4b71Sopenharmony_ci
388e41f4b71Sopenharmony_ci    ```
389e41f4b71Sopenharmony_ci    captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO);
390e41f4b71Sopenharmony_ci    ```
391e41f4b71Sopenharmony_ci
392e41f4b71Sopenharmony_ci32. Changed the return modes of the **setFocusPoint** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **setFocusPoint(point: Point, callback: AsyncCallback<void>): void** and **setFocusPoint(point: Point): Promise<void>** are changed to **setFocusPoint(point: Point): void**.
393e41f4b71Sopenharmony_ci
394e41f4b71Sopenharmony_ci    The sample code is as follows:
395e41f4b71Sopenharmony_ci
396e41f4b71Sopenharmony_ci    ```
397e41f4b71Sopenharmony_ci    let Point2 = {x: 2, y: 2};
398e41f4b71Sopenharmony_ci    captureSession.setFocusPoint(Point2);
399e41f4b71Sopenharmony_ci    ```
400e41f4b71Sopenharmony_ci
401e41f4b71Sopenharmony_ci33. Changed the return modes of the **getFocusPoint** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getFocusPoint(callback: AsyncCallback<Point>): void** and **getFocusPoint(): Promise<Point>** are changed to **getFocusPoint(): Point**.
402e41f4b71Sopenharmony_ci
403e41f4b71Sopenharmony_ci    The sample code is as follows:
404e41f4b71Sopenharmony_ci
405e41f4b71Sopenharmony_ci    ```
406e41f4b71Sopenharmony_ci    let point = captureSession.getFocusPoint();
407e41f4b71Sopenharmony_ci    ```
408e41f4b71Sopenharmony_ci
409e41f4b71Sopenharmony_ci34. Changed the return modes of the **getFocalLength** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getFocalLength(callback: AsyncCallback<number>): void** and **getFocalLength(): Promise<number>** are changed to **getFocalLength(): number**.
410e41f4b71Sopenharmony_ci
411e41f4b71Sopenharmony_ci    The sample code is as follows:
412e41f4b71Sopenharmony_ci
413e41f4b71Sopenharmony_ci    ```
414e41f4b71Sopenharmony_ci    let focalLength = captureSession.getFocalLength();
415e41f4b71Sopenharmony_ci    ```
416e41f4b71Sopenharmony_ci
417e41f4b71Sopenharmony_ci35. Changed the return modes of the **getZoomRatioRange** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getZoomRatioRange(callback: AsyncCallback<Array<number>>): void** and **getZoomRatioRange(): Promise<Array<number>>** are changed to **getZoomRatioRange(): Array<number>**.
418e41f4b71Sopenharmony_ci
419e41f4b71Sopenharmony_ci    The sample code is as follows:
420e41f4b71Sopenharmony_ci
421e41f4b71Sopenharmony_ci    ```
422e41f4b71Sopenharmony_ci    let zoomRatioRange = captureSession.getZoomRatioRange();
423e41f4b71Sopenharmony_ci    ```
424e41f4b71Sopenharmony_ci
425e41f4b71Sopenharmony_ci36. Changed the return modes of the **getZoomRatio** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getZoomRatio(callback: AsyncCallback<number>): void** and **getZoomRatio(): Promise<number>** are changed to **getZoomRatio(): number**.
426e41f4b71Sopenharmony_ci
427e41f4b71Sopenharmony_ci    The sample code is as follows:
428e41f4b71Sopenharmony_ci
429e41f4b71Sopenharmony_ci    ```
430e41f4b71Sopenharmony_ci    let zoomRatio = captureSession.getZoomRatio();
431e41f4b71Sopenharmony_ci    ```
432e41f4b71Sopenharmony_ci
433e41f4b71Sopenharmony_ci37. Changed the return modes of the **setZoomRatio** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void** and **setZoomRatio(zoomRatio: number): Promise<void>** are changed to **setZoomRatio(zoomRatio: number): void**.
434e41f4b71Sopenharmony_ci
435e41f4b71Sopenharmony_ci    The sample code is as follows:
436e41f4b71Sopenharmony_ci
437e41f4b71Sopenharmony_ci    ```
438e41f4b71Sopenharmony_ci    let zoomRatio = zoomRatioRange[0];
439e41f4b71Sopenharmony_ci    captureSession.setZoomRatio(zoomRatio);
440e41f4b71Sopenharmony_ci    ```
441e41f4b71Sopenharmony_ci
442e41f4b71Sopenharmony_ci38. Changed the return modes of the **isVideoStabilizationModeSupported** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback<boolean>): void** and **isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): Promise<boolean>** are changed to **isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean**.
443e41f4b71Sopenharmony_ci
444e41f4b71Sopenharmony_ci    The sample code is as follows:
445e41f4b71Sopenharmony_ci
446e41f4b71Sopenharmony_ci    ```
447e41f4b71Sopenharmony_ci    let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF);
448e41f4b71Sopenharmony_ci    ```
449e41f4b71Sopenharmony_ci
450e41f4b71Sopenharmony_ci39. Changed the return modes of the **getActiveVideoStabilizationMode** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **getActiveVideoStabilizationMode(callback: AsyncCallback<VideoStabilizationMode>): void** and **getActiveVideoStabilizationMode(): Promise<VideoStabilizationMode>** are changed to **getActiveVideoStabilizationMode(): VideoStabilizationMode**.
451e41f4b71Sopenharmony_ci
452e41f4b71Sopenharmony_ci    The sample code is as follows:
453e41f4b71Sopenharmony_ci
454e41f4b71Sopenharmony_ci    ```
455e41f4b71Sopenharmony_ci    let vsMode = captureSession.getActiveVideoStabilizationMode();
456e41f4b71Sopenharmony_ci    ```
457e41f4b71Sopenharmony_ci
458e41f4b71Sopenharmony_ci40. Changed the return modes of the **setVideoStabilizationMode** API in CaptureSession from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback<void>): void** and **setVideoStabilizationMode(mode: VideoStabilizationMode): Promise<void>** are changed to **setVideoStabilizationMode(mode: VideoStabilizationMode): void**.
459e41f4b71Sopenharmony_ci
460e41f4b71Sopenharmony_ci    The sample code is as follows:
461e41f4b71Sopenharmony_ci
462e41f4b71Sopenharmony_ci    ```
463e41f4b71Sopenharmony_ci    captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF);
464e41f4b71Sopenharmony_ci    ```
465e41f4b71Sopenharmony_ci
466e41f4b71Sopenharmony_ci41. Changed the **on(type:'error') callback** type in CaptureSession from **ErrorCallback<CaptureSessionError>** to **ErrorCallback<BusinessError>**. Therefore, the original API **on(type: 'error', callback: ErrorCallback<CaptureSessionError>): void** is changed to **on(type: 'error', callback: ErrorCallback<BusinessError>): void**.
467e41f4b71Sopenharmony_ci
468e41f4b71Sopenharmony_ci    The sample code is as follows:
469e41f4b71Sopenharmony_ci
470e41f4b71Sopenharmony_ci    ```
471e41f4b71Sopenharmony_ci    captureSession.on('error', (BusinessError) => {
472e41f4b71Sopenharmony_ci
473e41f4b71Sopenharmony_ci    })
474e41f4b71Sopenharmony_ci    ```
475e41f4b71Sopenharmony_ci
476e41f4b71Sopenharmony_ci42. Changed the **on(type:'error') callback** type in PreviewOutput, from **ErrorCallback<PreviewOutputError>** to **ErrorCallback<BusinessError>**. Therefore, the original API **on(type: 'error', callback: ErrorCallback<PreviewOutputError>): void** is changed to **on(type: 'error', callback: ErrorCallback<BusinessError>): void**.
477e41f4b71Sopenharmony_ci
478e41f4b71Sopenharmony_ci    The sample code is as follows:
479e41f4b71Sopenharmony_ci
480e41f4b71Sopenharmony_ci    ```
481e41f4b71Sopenharmony_ci    previewOutput.on('error', (BusinessError) => {
482e41f4b71Sopenharmony_ci
483e41f4b71Sopenharmony_ci    })
484e41f4b71Sopenharmony_ci    ```
485e41f4b71Sopenharmony_ci
486e41f4b71Sopenharmony_ci43. Changed the return modes of the **isMirrorSupported** API in PhotoOutput from asynchronous callback and asynchronous promise to the synchronous mode. Therefore, the original APIs **isMirrorSupported(callback: AsyncCallback<boolean>): void** and **isMirrorSupported(): Promise<boolean>** are changed to **isMirrorSupported(): boolean**.
487e41f4b71Sopenharmony_ci
488e41f4b71Sopenharmony_ci    The sample code is as follows:
489e41f4b71Sopenharmony_ci
490e41f4b71Sopenharmony_ci    ```
491e41f4b71Sopenharmony_ci    let isSupported = photoOutput.isMirrorSupported();
492e41f4b71Sopenharmony_ci    ```
493e41f4b71Sopenharmony_ci
494e41f4b71Sopenharmony_ci44. Changed the **on(type:'error') callback** type in PhotoOutput, from **ErrorCallback<PhotoOutputError>** to **ErrorCallback<BusinessError>**. Therefore, the original API **on(type: 'error', callback: ErrorCallback<PhotoOutputError>): void** is changed to **on(type: 'error', callback: ErrorCallback<BusinessError>): void**.
495e41f4b71Sopenharmony_ci
496e41f4b71Sopenharmony_ci    The sample code is as follows:
497e41f4b71Sopenharmony_ci
498e41f4b71Sopenharmony_ci    ```
499e41f4b71Sopenharmony_ci    PhotoOutput.on('error', (BusinessError) => {
500e41f4b71Sopenharmony_ci
501e41f4b71Sopenharmony_ci    })
502e41f4b71Sopenharmony_ci    ```
503e41f4b71Sopenharmony_ci
504e41f4b71Sopenharmony_ci45. Changed the **on(type:'error') callback** type in VideoOutput, from **ErrorCallback<VideoOutputError>** to **ErrorCallback<BusinessError>**. Therefore, the original API **on(type: 'error', callback: ErrorCallback<VideoOutputError>): void** is changed to **on(type: 'error', callback: ErrorCallback<BusinessError>): void**.
505e41f4b71Sopenharmony_ci
506e41f4b71Sopenharmony_ci    The sample code is as follows:
507e41f4b71Sopenharmony_ci
508e41f4b71Sopenharmony_ci    ```
509e41f4b71Sopenharmony_ci    VideoOutput.on('error', (BusinessError) => {
510e41f4b71Sopenharmony_ci
511e41f4b71Sopenharmony_ci    })
512e41f4b71Sopenharmony_ci    ```
513e41f4b71Sopenharmony_ci
514e41f4b71Sopenharmony_ci46. Changed the **on(type:'error') callback** type in MetadataOutput, from **ErrorCallback<MetadataOutputError>** to **ErrorCallback<BusinessError>**. Therefore, the original API **on(type: 'error', callback: ErrorCallback<MetadataOutputError>): void** is changed to **on(type: 'error', callback: ErrorCallback<BusinessError>): void**.
515e41f4b71Sopenharmony_ci
516e41f4b71Sopenharmony_ci    The sample code is as follows:
517e41f4b71Sopenharmony_ci
518e41f4b71Sopenharmony_ci    ```
519e41f4b71Sopenharmony_ci    MetadataOutput.on('error', (BusinessError) => {
520e41f4b71Sopenharmony_ci
521e41f4b71Sopenharmony_ci    })
522e41f4b71Sopenharmony_ci    ```