1# 媒体子系统JS API变更Changelog 2 3OpenHarmony3.2 Beta4版本相较于OpenHarmony3.2 Beta3版本,媒体子系统camera部件API变更如下 4 5## camera接口变更 6基于以下原因新增部分功能接口以及废弃部分接口: 71. 提升开发者使用相机接口的便利。 82. 帮助开发者快速掌握相机开发接口,快速投入到开发当中。 93. 易于后续版本中框架功能的扩展,降低框架模块之间的耦合度。 10 11具体参考下方变更内容,开发者需要根据以下说明对应用进行适配。 12 13 **变更影响** 14 15影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。 16 17**关键的接口/组件变更** 18 19| 模块名 | 类名 | 方法/属性/枚举/常量 | 变更类型 | 20| ---------------------- | ----------------------- | ------------------------------------------------------------ | -------- | 21| ohos.multimedia.camera | Profile | readonly format:CameraFormat; | 新增 | 22| ohos.multimedia.camera | Profile | readonly size: Size; | 新增 | 23| ohos.multimedia.camera | FrameRateRange | readonly min: number; | 新增 | 24| ohos.multimedia.camera | FrameRateRange | readonly max: number; | 新增 | 25| ohos.multimedia.camera | VideoProfile | readonly frameRateRange: FrameRateRange; | 新增 | 26| ohos.multimedia.camera | CameraOutputCapability | readonly previewProfiles: Array<Profile>; | 新增 | 27| ohos.multimedia.camera | CameraOutputCapability | readonly photoProfiles: Array<Profile>; | 新增 | 28| ohos.multimedia.camera | CameraOutputCapability | readonly videoProfiles: Array<VideoProfile>; | 新增 | 29| ohos.multimedia.camera | CameraOutputCapability | readonly supportedMetadataObjectTypes: Array<MetadataObjectType>; | 新增 | 30| ohos.multimedia.camera | CameraManager | getSupportedCameras(callback: AsyncCallback<Array<CameraDevice>>): void;<br/>getSupportedCameras(): Promise<Array<CameraDevice>>; | 新增 | 31| ohos.multimedia.camera | CameraManager | getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback<CameraOutputCapability>): void;<br/>getSupportedOutputCapability(camera: CameraDevice): Promise<CameraOutputCapability>; | 新增 | 32| ohos.multimedia.camera | CameraManager | isCameraMuted(): boolean; | 新增 | 33| ohos.multimedia.camera | CameraManager | isCameraMuteSupported(): boolean; | 新增 | 34| ohos.multimedia.camera | CameraManager | muteCamera(mute: boolean): void; | 新增 | 35| ohos.multimedia.camera | CameraManager | createCameraInput(camera: CameraDevice, callback: AsyncCallback<CameraInput>): void;<br/>createCameraInput(camera: CameraDevice): Promise<CameraInput>; | 新增 | 36| ohos.multimedia.camera | CameraManager | createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PreviewOutput>): void;<br/>createPreviewOutput(profile: Profile, surfaceId: string): Promise<PreviewOutput>; | 新增 | 37| ohos.multimedia.camera | CameraManager | createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PhotoOutput>): void;<br/>createPhotoOutput(profile: Profile, surfaceId: string): Promise<PhotoOutput>; | 新增 | 38| ohos.multimedia.camera | CameraManager | createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback<VideoOutput>): void;<br/>createVideoOutput(profile: VideoProfile, surfaceId: string): Promise<VideoOutput>; | 新增 | 39| ohos.multimedia.camera | CameraManager | createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<MetadataOutput>): void;<br/>createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): Promise<MetadataOutput>; | 新增 | 40| ohos.multimedia.camera | CameraManager | createCaptureSession(callback: AsyncCallback<CaptureSession>): void;<br/>createCaptureSession(): Promise<CaptureSession>; | 新增 | 41| ohos.multimedia.camera | CameraManager | on(type: 'cameraMute', callback: AsyncCallback<boolean>): void; | 新增 | 42| ohos.multimedia.camera | CameraManager | getCameras(callback: AsyncCallback<Array<Camera>>): void;<br/>getCameras(): Promise<Array<Camera>>; | 废弃 | 43| ohos.multimedia.camera | CameraManager | createCameraInput(cameraId: string, callback: AsyncCallback<CameraInput>): void;<br/>createCameraInput(cameraId: string): Promise<CameraInput>; | 废弃 | 44| ohos.multimedia.camera | CameraManager | createCaptureSession(context: Context, callback: AsyncCallback<CaptureSession>): void;<br/>createCaptureSession(context: Context): Promise<CaptureSession>; | 废弃 | 45| ohos.multimedia.camera | CameraManager | createPreviewOutput(surfaceId: string, callback: AsyncCallback<PreviewOutput>): void;<br/>createPreviewOutput(surfaceId: string): Promise<PreviewOutput>; | 废弃 | 46| ohos.multimedia.camera | CameraManager | CreatePhotoOutput(surfaceId: string, callback: AsyncCallback<PhotoOutput>): void;<br/>CreatePhotoOutput(surfaceId: string): Promise<PhotoOutput>; | 废弃 | 47| ohos.multimedia.camera | CameraManager | createVideoOutput(surfaceId: string, callback: AsyncCallback<VideoOutput>): void;<br/>createVideoOutput(surfaceId: string): Promise<VideoOutput>; | 废弃 | 48| ohos.multimedia.camera | CameraManager | createMetadataOutput(callback: AsyncCallback<MetadataOutput>): void;<br/>createVideoOutput(): Promise<MetadataOutput>; | 废弃 | 49| ohos.multimedia.camera | CameraStatusInfo | camera: CameraDevice; | 新增 | 50| ohos.multimedia.camera | CameraStatusInfo | camera: Camera; | 废弃 | 51| ohos.multimedia.camera | CameraDevice | interface CameraDevice | 新增 | 52| ohos.multimedia.camera | Camera | interface Camera | 废弃 | 53| ohos.multimedia.camera | CameraInput | open(callback: AsyncCallback<void>): void;<br/>open(): Promise<void>; | 新增 | 54| ohos.multimedia.camera | CameraInput | close(callback: AsyncCallback<void>): void;<br/>close(): Promise<void>; | 新增 | 55| ohos.multimedia.camera | CameraInput | on(type: 'error', camera: CameraDevice, callback: ErrorCallback<CameraInputError>): void; | 新增 | 56| ohos.multimedia.camera | CameraInput | isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void;<br/>isFocusModeSupported(afMode: FocusMode): Promise<boolean>; | 废弃 | 57| ohos.multimedia.camera | CameraInput | getFocusMode(callback: AsyncCallback<FocusMode>): void;<br/>getFocusMode(): Promise<FocusMode>; | 废弃 | 58| ohos.multimedia.camera | CameraInput | setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void;<br/>setFocusMode(afMode: FocusMode): Promise<void>; | 废弃 | 59| ohos.multimedia.camera | CameraInput | getZoomRatioRange(callback: AsyncCallback<Array<number>>): void;<br/>getZoomRatioRange(): Promise<Array<number>>; | 废弃 | 60| ohos.multimedia.camera | CameraInput | getZoomRatio(callback: AsyncCallback<number>): void;<br/>getZoomRatio(): Promise<number>; | 废弃 | 61| ohos.multimedia.camera | CameraInput | setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void;<br/>setZoomRatio(zoomRatio: number): Promise<void>; | 废弃 | 62| ohos.multimedia.camera | CameraInput | getCameraId(callback: AsyncCallback<string>): void;<br/>getCameraId(): Promise<string>; | 废弃 | 63| ohos.multimedia.camera | CameraInput | getExposurePoint(callback: AsyncCallback<Point>): void;<br/>getExposurePoint(): Promise<Point>; | 废弃 | 64| ohos.multimedia.camera | CameraInput | setExposurePoint(exposurePoint: Point, callback: AsyncCallback<void>): void;<br/>setExposurePoint(exposurePoint: Point): Promise<void>; | 废弃 | 65| ohos.multimedia.camera | CameraInput | hasFlash(callback: AsyncCallback<boolean>): void;<br/>hasFlash(): Promise<boolean>; | 废弃 | 66| ohos.multimedia.camera | CameraInput | isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean>): void;<br/>isFlashModeSupported(flashMode: FlashMode): Promise<boolean>; | 废弃 | 67| ohos.multimedia.camera | CameraInput | getFlashMode(callback: AsyncCallback<FlashMode>): void;<br/>getFlashMode(): Promise<FlashMode>; | 废弃 | 68| ohos.multimedia.camera | CameraInput | setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void>): void;<br/>setFlashMode(flashMode: FlashMode): Promise<void>; | 废弃 | 69| ohos.multimedia.camera | CameraInput | isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback<boolean>): void;<br/>isExposureModeSupported(aeMode: ExposureMode): Promise<boolean>; | 废弃 | 70| ohos.multimedia.camera | CameraInput | getExposureMode(callback: AsyncCallback<ExposureMode>): void;<br/>getExposureMode(): Promise<ExposureMode>; | 废弃 | 71| ohos.multimedia.camera | CameraInput | setExposureMode(aeMode: ExposureMode, callback: AsyncCallback<void>): void;<br/>setExposureMode(aeMode: ExposureMode): Promise<void>; | 废弃 | 72| ohos.multimedia.camera | CameraInput | getMeteringPoint(callback: AsyncCallback<Point>): void;<br/>getMeteringPoint(): Promise<Point>; | 废弃 | 73| ohos.multimedia.camera | CameraInput | setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setMeteringPoint(point: Point): Promise<void>; | 废弃 | 74| ohos.multimedia.camera | CameraInput | getExposureBiasRange(callback: AsyncCallback<Array<number>>): void;<br/>getExposureBiasRange(): Promise<Array<number>>; | 废弃 | 75| ohos.multimedia.camera | CameraInput | setExposureBias(exposureBias: number, callback: AsyncCallback<void>): void;<br/>setExposureBias(exposureBias: number): Promise<void>; | 废弃 | 76| ohos.multimedia.camera | CameraInput | getExposureValue(callback: AsyncCallback<number>): void;<br/>getExposureValue(): Promise<number>; | 废弃 | 77| ohos.multimedia.camera | CameraInput | isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void;<br/>isFocusModeSupported(afMode: FocusMode): Promise<boolean>; | 废弃 | 78| ohos.multimedia.camera | CameraInput | getFocusMode(callback: AsyncCallback<FocusMode>): void;<br/>getFocusMode(): Promise<FocusMode>; | 废弃 | 79| ohos.multimedia.camera | CameraInput | setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void;<br/>setFocusMode(afMode: FocusMode): Promise<void>; | 废弃 | 80| ohos.multimedia.camera | CameraInput | setFocusPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setFocusPoint(point: Point): Promise<void>; | 废弃 | 81| ohos.multimedia.camera | CameraInput | getFocusPoint(callback: AsyncCallback<Point>): void;<br/>getFocusPoint(): Promise<Point>; | 废弃 | 82| ohos.multimedia.camera | CameraInput | getFocalLength(callback: AsyncCallback<number>): void;<br/>getFocalLength(): Promise<number>; | 废弃 | 83| ohos.multimedia.camera | CameraInput | getZoomRatioRange(callback: AsyncCallback<Array<number>>): void;<br/>getZoomRatioRange(): Promise<Array<number>>; | 废弃 | 84| ohos.multimedia.camera | CameraInput | getZoomRatio(callback: AsyncCallback<number>): void;<br/>getZoomRatio(): Promise<number>; | 废弃 | 85| ohos.multimedia.camera | CameraInput | setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void;<br/>setZoomRatio(zoomRatio: number): Promise<void>; | 废弃 | 86| ohos.multimedia.camera | CameraInput | on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void; | 废弃 | 87| ohos.multimedia.camera | CameraInput | on(type: 'exposureStateChange', callback: AsyncCallback<ExposureState>): void; | 废弃 | 88| ohos.multimedia.camera | CameraInput | on(type: 'error', callback: ErrorCallback<CameraInputError>): void; | 废弃 | 89| ohos.multimedia.camera | CameraInputErrorCode | ERROR_NO_PERMISSION = 0 | 新增 | 90| ohos.multimedia.camera | CameraInputErrorCode | ERROR_DEVICE_PREEMPTED = 1 | 新增 | 91| ohos.multimedia.camera | CameraInputErrorCode | ERROR_DEVICE_DISCONNECTED = 2 | 新增 | 92| ohos.multimedia.camera | CameraInputErrorCode | ERROR_DEVICE_IN_USE = 3 | 新增 | 93| ohos.multimedia.camera | CameraInputErrorCode | ERROR_DRIVER_ERROR = 4 | 新增 | 94| ohos.multimedia.camera | CameraFormat | CAMERA_FORMAT_RGBA_8888 = 3 | 新增 | 95| ohos.multimedia.camera | ExposureMode | EXPOSURE_MODE_AUTO = 1 | 新增 | 96| ohos.multimedia.camera | ExposureMode | EXPOSURE_MODE_CONTINUOUS_AUTO = 2 | 新增 | 97| ohos.multimedia.camera | ExposureMode | EXPOSURE_MODE_AUTO | 废弃 | 98| ohos.multimedia.camera | ExposureMode | EXPOSURE_MODE_CONTINUOUS_AUTO | 废弃 | 99| ohos.multimedia.camera | VideoStabilizationMode | LOW = 1 | 新增 | 100| ohos.multimedia.camera | VideoStabilizationMode | MIDDLE = 2 | 新增 | 101| ohos.multimedia.camera | VideoStabilizationMode | HIGH = 3 | 新增 | 102| ohos.multimedia.camera | VideoStabilizationMode | AUTO = 4 | 新增 | 103| ohos.multimedia.camera | VideoStabilizationMode | LOW | 废弃 | 104| ohos.multimedia.camera | VideoStabilizationMode | MIDDLE | 废弃 | 105| ohos.multimedia.camera | VideoStabilizationMode | HIGH | 废弃 | 106| ohos.multimedia.camera | VideoStabilizationMode | AUTO | 废弃 | 107| ohos.multimedia.camera | CaptureSession | addOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>addOutput(cameraOutput: CameraOutput): Promise<void>; | 新增 | 108| ohos.multimedia.camera | CaptureSession | removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(cameraOutput: CameraOutput): Promise<void>; | 新增 | 109| ohos.multimedia.camera | CaptureSession | isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback<boolean>): void;<br/>isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): Promise<boolean>; | 新增 | 110| ohos.multimedia.camera | CaptureSession | getActiveVideoStabilizationMode(callback: AsyncCallback<VideoStabilizationMode>): void;<br/>getActiveVideoStabilizationMode(): Promise<VideoStabilizationMode>; | 新增 | 111| ohos.multimedia.camera | CaptureSession | setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback<void>): void;<br/>setVideoStabilizationMode(mode: VideoStabilizationMode): Promise<void>; | 新增 | 112| ohos.multimedia.camera | CaptureSession | on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void; | 新增 | 113| ohos.multimedia.camera | CaptureSession | hasFlash(callback: AsyncCallback<boolean>): void;<br/>hasFlash(): Promise<boolean>; | 新增 | 114| ohos.multimedia.camera | CaptureSession | isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean>): void;<br/>isFlashModeSupported(flashMode: FlashMode): Promise<boolean>; | 新增 | 115| ohos.multimedia.camera | CaptureSession | getFlashMode(callback: AsyncCallback<FlashMode>): void;<br/>getFlashMode(): Promise<FlashMode>; | 新增 | 116| ohos.multimedia.camera | CaptureSession | setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void>): void;<br/>setFlashMode(flashMode: FlashMode): Promise<void>; | 新增 | 117| ohos.multimedia.camera | CaptureSession | isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback<boolean>): void;<br/>isExposureModeSupported(aeMode: ExposureMode): Promise<boolean>; | 新增 | 118| ohos.multimedia.camera | CaptureSession | getExposureMode(callback: AsyncCallback<ExposureMode>): void;<br/>getExposureMode(): Promise<ExposureMode>; | 新增 | 119| ohos.multimedia.camera | CaptureSession | setExposureMode(aeMode: ExposureMode, callback: AsyncCallback<void>): void;<br/>setExposureMode(aeMode: ExposureMode): Promise<void>; | 新增 | 120| ohos.multimedia.camera | CaptureSession | getMeteringPoint(callback: AsyncCallback<Point>): void;<br/>getMeteringPoint(): Promise<Point>; | 新增 | 121| ohos.multimedia.camera | CaptureSession | setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setMeteringPoint(point: Point): Promise<void>; | 新增 | 122| ohos.multimedia.camera | CaptureSession | getExposureBiasRange(callback: AsyncCallback<Array<number>>): void;<br/>getExposureBiasRange(): Promise<Array<number>>; | 新增 | 123| ohos.multimedia.camera | CaptureSession | setExposureBias(exposureBias: number, callback: AsyncCallback<void>): void;<br/>setExposureBias(exposureBias: number): Promise<void>; | 新增 | 124| ohos.multimedia.camera | CaptureSession | getExposureValue(callback: AsyncCallback<number>): void;<br/>getExposureValue(): Promise<number>; | 新增 | 125| ohos.multimedia.camera | CaptureSession | isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void;<br/>isFocusModeSupported(afMode: FocusMode): Promise<boolean>; | 新增 | 126| ohos.multimedia.camera | CaptureSession | getFocusMode(callback: AsyncCallback<FocusMode>): void;<br/>getFocusMode(): Promise<FocusMode>; | 新增 | 127| ohos.multimedia.camera | CaptureSession | setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void;<br/>setFocusMode(afMode: FocusMode): Promise<void>; | 新增 | 128| ohos.multimedia.camera | CaptureSession | setFocusPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setFocusPoint(point: Point): Promise<void>; | 新增 | 129| ohos.multimedia.camera | CaptureSession | getFocusPoint(callback: AsyncCallback<Point>): void;<br/>getFocusPoint(): Promise<Point>; | 新增 | 130| ohos.multimedia.camera | CaptureSession | getFocalLength(callback: AsyncCallback<number>): void;<br/>getFocalLength(): Promise<number>; | 新增 | 131| ohos.multimedia.camera | CaptureSession | getZoomRatioRange(callback: AsyncCallback<Array<number>>): void;<br/>getZoomRatioRange(): Promise<Array<number>>; | 新增 | 132| ohos.multimedia.camera | CaptureSession | getZoomRatio(callback: AsyncCallback<number>): void;<br/>getZoomRatio(): Promise<number>; | 新增 | 133| ohos.multimedia.camera | CaptureSession | setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void;<br/>setZoomRatio(zoomRatio: number): Promise<void>; | 新增 | 134| ohos.multimedia.camera | CaptureSession | addOutput(previewOutput: PreviewOutput, callback: AsyncCallback<void>): void;<br/>addOutput(previewOutput: PreviewOutput): Promise<void>;<br/>addOutput(photoOutput: PhotoOutput, callback: AsyncCallback<void>): void;<br/>addOutput(photoOutput: PhotoOutput): Promise<void>;<br/>addOutput(videoOutput: VideoOutput, callback: AsyncCallback<void>): void;<br/>addOutput(videoOutput: VideoOutput): Promise<void>; | 废弃 | 135| ohos.multimedia.camera | CaptureSession | removeOutput(previewOutput: PreviewOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(previewOutput: PreviewOutput): Promise<void>;<br/>removeOutput(photoOutput: PhotoOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(photoOutput: PhotoOutput): Promise<void>;removeOutput(videoOutput: VideoOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(videoOutput: VideoOutput): Promise<void>;<br/>removeOutput(metadataOutput: MetadataOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(metadataOutput: MetadataOutput): Promise<void>; | 废弃 | 136| ohos.multimedia.camera | CaptureSessionErrorCode | ERROR_INSUFFICIENT_RESOURCES = 0 | 新增 | 137| ohos.multimedia.camera | CaptureSessionErrorCode | ERROR_TIMEOUT = 1 | 新增 | 138| ohos.multimedia.camera | CameraOutput | release(callback: AsyncCallback<void>): void;<br/>release(): Promise<void>; | 新增 | 139| ohos.multimedia.camera | PreviewOutput | start(callback: AsyncCallback<void>): void;<br/>start(): Promise<void>; | 新增 | 140| ohos.multimedia.camera | PreviewOutput | stop(callback: AsyncCallback<void>): void;<br/>stop(): Promise<void>; | 新增 | 141| ohos.multimedia.camera | PreviewOutput | release(callback: AsyncCallback<void>): void;<br/>release(): Promise<void>; | 废弃 | 142| ohos.multimedia.camera | PhotoOutput | release(callback: AsyncCallback<void>): void;<br/>release(): Promise<void>; | 废弃 | 143| ohos.multimedia.camera | VideoOutput | release(callback: AsyncCallback<void>): void;<br/>release(): Promise<void>; | 废弃 | 144| ohos.multimedia.camera | PhotoCaptureSetting | mirror?: boolean; | 新增 | 145| ohos.multimedia.camera | PhotoOutputErrorCode | ERROR_DRIVER_ERROR = 0 | 新增 | 146| ohos.multimedia.camera | PhotoOutputErrorCode | ERROR_INSUFFICIENT_RESOURCES = 1 | 新增 | 147| ohos.multimedia.camera | PhotoOutputErrorCode | ERROR_TIMEOUT = 2 | 新增 | 148| ohos.multimedia.camera | VideoOutputErrorCode | ERROR_DRIVER_ERROR = 0 | 新增 | 149| ohos.multimedia.camera | MetadataObjectType | FACE_DETECTION = 0 | 新增 | 150| ohos.multimedia.camera | MetadataObjectType | FACE = 0 | 废弃 | 151| ohos.multimedia.camera | MetadataOutput | on(type: 'error', callback: ErrorCallback<MetadataOutputError>): void; | 新增 | 152| ohos.multimedia.camera | MetadataOutput | setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<void>): void;<br/>setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>): Promise<void>; | 废弃 | 153| ohos.multimedia.camera | MetadataOutput | getSupportedMetadataObjectTypes(callback: AsyncCallback<Array<MetadataObjectType>>): void;<br/>getSupportedMetadataObjectTypes(): Promise<Array<MetadataObjectType>>; | 废弃 | 154| ohos.multimedia.camera | MetadataOutputErrorCode | ERROR_UNKNOWN = -1 | 新增 | 155| ohos.multimedia.camera | MetadataOutputErrorCode | ERROR_INSUFFICIENT_RESOURCES = 0 | 新增 | 156| ohos.multimedia.camera | MetadataOutputError | code: MetadataOutputErrorCode; | 新增 | 157 158**适配指导** 159 160除新增接口,和废弃接口之外,开发者需要关注变更的接口的适配: 161 162从Beta4版本开始,对以下接口进行调整: 163 164**新增接口** 165 1661. Profile接口 167 168 属性1:readonly format,类型:CameraFormat; 169 170 属性2:readonly size,类型:Size; 171 1722. FrameRateRange接口 173 174 属性1:readonly min,类型:number; 175 176 属性2:readonly max,类型:number; 177 1783. VideoProfile接口,继承自Profile 179 180 属性:readonly frameRateRange,类型:FrameRateRange; 181 1824. CameraOutputCapability接口 183 184 属性1:readonly previewProfiles,类型:Array<Profile>; 185 186 属性2:readonly photoProfiles,类型:Array<Profile>; 187 188 属性3:readonly videoProfiles,类型:Array<VideoProfile>; 189 190 属性4:readonly supportedMetadataObjectTypes,类型:Array<MetadataObjectType>; 191 1925. CameraManager中新增 193 194 getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback<CameraOutputCapability>): void; 195 196 getSupportedOutputCapability(camera: CameraDevice): Promise<CameraOutputCapability>; 197 198 参考代码如下: 199 200 ``` 201 cameraManager.getSupportedCameras().then((cameras) => { 202 let cameraDevice = cameras[0]; 203 cameraManager.getSupportedOutputCapability(cameraDevice, (err, CameraOutputCapability) => { 204 if (err) { 205 console.error(`Failed to get the outputCapability. ${err.message}`); 206 return; 207 } 208 console.log('Callback returned with an array of supported outputCapability'); 209 }) 210 }) 211 ``` 212 213 ``` 214 cameraManager.getSupportedCameras().then((cameras) => { 215 let cameraDevice = cameras[0]; 216 cameraManager.getSupportedOutputCapability(cameraDevice).then((cameraoutputcapability) => { 217 console.log('Promise returned with an array of supported outputCapability'); 218 }) 219 }) 220 ``` 221 2226. CameraManager中新增isCameraMuted(): boolean; 223 224 参考代码如下: 225 226 ``` 227 let ismuted = cameraManager.isCameraMuted(); 228 ``` 229 2307. CameraManager中新增isCameraMuteSupported(): boolean; 231 232 参考代码如下: 233 234 ``` 235 let ismutesuppotred = cameraManager.isCameraMuteSupported(); 236 ``` 237 2388. CameraManager中新增muteCamera(mute: boolean): void; 239 240 参考代码如下: 241 242 ``` 243 let mute = true; 244 cameraManager.muteCamera(mute); 245 ``` 246 2479. CameraManager中新增on(type: 'cameraMute', callback: AsyncCallback<boolean>): void; 248 249 参考代码如下: 250 251 ``` 252 cameraManager.on('cameraMute', (err, curMuetd) => { 253 if (err) { 254 console.error(`Failed to get cameraMute callback. ${err.message}`); 255 return; 256 } 257 }) 258 ``` 259 26010. CameraInput中新增open(callback: AsyncCallback<void>): void;以及open(): Promise<void>; 261 262参考代码如下: 263 264``` 265cameraInput.open((err) => { 266 if (err) { 267 console.error(`Failed to open the camera. ${err.message}`); 268 return; 269 } 270 console.log('Callback returned with camera opened.'); 271}) 272``` 273 274``` 275cameraInput.open().then(() => { 276 console.log('Promise returned with camera opened.'); 277}) 278``` 279 28011. CameraInput中新增close(callback: AsyncCallback<void>): void;以及close(): Promise<void>; 281 282 参考代码如下: 283 284 ``` 285 cameraInput.close((err) => { 286 if (err) { 287 console.error(`Failed to close the cameras. ${err.message}`); 288 return; 289 } 290 console.log('Callback returned with camera closed.'); 291 }) 292 ``` 293 294 ``` 295 cameraInput.close().then(() => { 296 console.log('Promise returned with camera closed.'); 297 }) 298 ``` 299 30012. 枚举CameraInputErrorCode中新增 301 302 枚举值名称:ERROR_NO_PERMISSION,值:0; 303 304 枚举值名称:ERROR_DEVICE_PREEMPTED,值:1; 305 306 枚举值名称:ERROR_DEVICE_DISCONNECTED,值:2; 307 308 枚举值名称:ERROR_DEVICE_IN_USE,值:3; 309 310 枚举值名称:ERROR_DRIVER_ERROR,值:4; 311 31213. 枚举CameraFormat中新增 313 314 枚举值名称:CAMERA_FORMAT_RGBA_8888,值:3; 315 31614. CaptureSession中新增getMeteringPoint(callback: AsyncCallback<Point>): void;以及getMeteringPoint(): Promise<Point>; 317 318 参考代码如下: 319 320 ``` 321 captureSession.getMeteringPoint((err, exposurePoint) => { 322 if (err) { 323 console.log(`Failed to get the current exposure point ${err.message}`); 324 return ; 325 } 326 console.log(`Callback returned with current exposure point: ${exposurePoint}`); 327 }) 328 ``` 329 330 ``` 331 captureSession.getMeteringPoint().then((exposurePoint) => { 332 console.log(`Promise returned with current exposure point : ${exposurePoint}`); 333 }) 334 ``` 335 33615. CaptureSession中新增setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;以及setMeteringPoint(point: Point): Promise<void>; 337 338 参考代码如下: 339 340 ``` 341 const Point1 = {x: 1, y: 1}; 342 343 captureSession.setMeteringPoint(Point1,(err) => { 344 if (err) { 345 console.log(`Failed to set the exposure point ${err.message}`); 346 return ; 347 } 348 console.log('Callback returned with the successful execution of setMeteringPoint'); 349 }) 350 ``` 351 352 ``` 353 const Point2 = {x: 2, y: 2}; 354 355 captureSession.setMeteringPoint(Point2).then(() => { 356 console.log('Promise returned with the successful execution of setMeteringPoint'); 357 }) 358 ``` 359 36016. 枚举CaptureSessionErrorCode中新增 361 362 枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0; 363 364 枚举值名称:ERROR_TIMEOUT,值:1; 365 36617. 新增接口CameraOutput,接口下有release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;方法 367 368 参考代码如下:用previewOutput做示例 369 370 ``` 371 previewOutput.release((err) => { 372 if (err) { 373 console.error(`Failed to release the PreviewOutput instance ${err.message}`); 374 return; 375 } 376 console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.'); 377 }); 378 ``` 379 380 ``` 381 previewOutput.release().then(() => { 382 console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.'); 383 }) 384 ``` 385 38618. PreviewOutput中新增start(callback: AsyncCallback<void>): void;以及start(): Promise<void>; 387 388 参考代码如下 389 390 ``` 391 previewOutput.start((err) => { 392 if (err) { 393 console.error(`Failed to start the previewOutput. ${err.message}`); 394 return; 395 } 396 console.log('Callback returned with previewOutput started.'); 397 }) 398 ``` 399 400 ``` 401 previewOutput.start().then(() => { 402 console.log('Promise returned with previewOutput started.'); 403 }) 404 ``` 405 40619. PreviewOutput中新增stop(callback: AsyncCallback<void>): void;以及stop(): Promise<void>; 407 408 参考代码如下 409 410 ``` 411 previewOutput.stop((err) => { 412 if (err) { 413 console.error(`Failed to stop the previewOutput. ${err.message}`); 414 return; 415 } 416 console.log('Callback returned with previewOutput stopped.'); 417 }) 418 ``` 419 420 ``` 421 previewOutput.stop().then(() => { 422 console.log('Callback returned with previewOutput stopped.'); 423 }) 424 ``` 425 42620. PhotoCaptureSetting接口 427 428 属性1:mirror?,类型:boolean; 429 43021. 枚举PhotoOutputErrorCode中新增 431 432 枚举值名称:ERROR_DRIVER_ERROR,值:0; 433 434 枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:1; 435 436 枚举值名称:ERROR_TIMEOUT,值:2; 437 43822. 枚举VideoOutputErrorCode中新增 439 440 枚举值名称:ERROR_DRIVER_ERROR,值:0; 441 44223. MetadataOutput中新增on(type: 'error', callback: ErrorCallback<MetadataOutputError>): void; 443 444 参考代码如下 445 446 ``` 447 metadataOutput.on('error', (metadataOutputError) => { 448 console.log(`Metadata output error code: ${metadataOutputError.code}`); 449 }) 450 ``` 451 45224. MetadataOutputErrorCode枚举 453 454 枚举值名称:ERROR_UNKNOWN,值:-1; 455 456 枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0; 457 45825. MetadataOutputError接口 459 460 属性名称:code,值:MetadataOutputErrorCode 461 462**废弃接口** 463 4641. CameraInput中废弃接口on(type: 'exposureStateChange', callback: AsyncCallback<ExposureState>): void; 465 4662. previewOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>; 467 4683. metadataOutput中废弃接口 469 470 setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<void>): void;<br/>setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>): Promise<void>; 471 4724. metadataOutput中废弃接口 473 474 getSupportedMetadataObjectTypes(callback: AsyncCallback<Array<MetadataObjectType>>): void;<br/>getSupportedMetadataObjectTypes(): Promise<Array<MetadataObjectType>>; 475 4765. PreviewOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>; 477 4786. PhotoOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>; 479 4807. VideoOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>; 481 4828. CameraInput中废弃接口getCameraId(callback: AsyncCallback<string>): void;以及getCameraId(): Promise<string>; 483 4849. CameraInput中废弃接口getExposurePoint(callback: AsyncCallback<Point>): void;以及getExposurePoint(): Promise<Point>; 485 48610. CameraInput中废弃接口setExposurePoint(exposurePoint: Point, callback: AsyncCallback<void>): void;以及setExposurePoint(exposurePoint: Point): Promise<void>; 487 488**接口变更** 489 4901. CameraManager中接口getCameras返回值由Array<Camera>变更为Array<CameraDevice>,接口名由getCameras 更换为 getSupportedCameras,因此旧接口getCameras(callback: AsyncCallback<Array<Camera>>): void;以及getCameras(): Promise<Array<Camera>>;变更为getSupportedCameras(callback: AsyncCallback<Array<CameraDevice>>): void和getSupportedCameras(): Promise<Array<CameraDevice>>; 491 492 参考代码如下: 493 494 ``` 495 cameraManager.getSupportedCameras((err, cameras) => { 496 if (err) { 497 console.error(`Failed to get the cameras. ${err.message}`); 498 return; 499 } 500 console.log(`Callback returned with an array of supported cameras: ${cameras.length}`); 501 }) 502 ``` 503 504 ``` 505 cameraManager.getSupportedCameras().then((cameras) => { 506 console.log(`Promise returned with an array of supported cameras: ${cameras.length}`); 507 }) 508 ``` 509 5102. CameraManager中接口createCameraInput传递参数由原来cameraId: string变更为camera: CameraDevice,因此旧接口createCameraInput(cameraId: string, callback: AsyncCallback<CameraInput>): void;以及createCameraInput(cameraId: string): Promise<CameraInput>;变更为createCameraInput(camera: CameraDevice, callback: AsyncCallback<CameraInput>): void;和createCameraInput(camera: CameraDevice): Promise<CameraInput>; 511 512 参考代码如下: 513 514 ``` 515 let cameraDevice = cameras[0]; 516 cameraManager.createCameraInput(cameraDevice, (err, cameraInput) => { 517 if (err) { 518 console.error(`Failed to create the CameraInput instance. ${err.message}`); 519 return; 520 } 521 console.log('Callback returned with the CameraInput instance.'); 522 }) 523 ``` 524 525 ``` 526 let cameraDevice = cameras[0]; 527 cameraManager.createCameraInput(cameraDevice).then((cameraInput) => { 528 console.log('Promise returned with the CameraInput instance'); 529 }) 530 ``` 531 5323. CameraManager中接口createPreviewOutput新增传递参数profile: Profile,profile参数由getSupportedOutputCapability接口获取,因此旧接口createPreviewOutput(surfaceId: string, callback: AsyncCallback<PreviewOutput>): void;以及createPreviewOutput(surfaceId: string): Promise<PreviewOutput>;变更为createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PreviewOutput>): void;createPreviewOutput(profile: Profile, surfaceId: string): Promise<PreviewOutput>; 533 534 参考代码如下: 535 536 ``` 537 let profile = cameraoutputcapability.previewProfiles[0]; 538 cameraManager.createPreviewOutput(profile, surfaceId, (err, previewOutput) => { 539 if (err) { 540 console.error(`Failed to gcreate previewOutput. ${err.message}`); 541 return; 542 } 543 console.log('Callback returned with previewOutput created.'); 544 }) 545 ``` 546 547 ``` 548 let profile = cameraoutputcapability.previewProfiles[0]; 549 cameraManager.createPreviewOutput(profile, surfaceId).then((previewOutput) => { 550 console.log('Promise returned with previewOutput created.'); 551 }) 552 ``` 553 5544. CameraManager中接口createPhotoOutput新增传递参数profile: Profile,profile参数由getSupportedOutputCapability接口获取,因此旧接口CreatePhotoOutput(surfaceId: string, callback: AsyncCallback<PhotoOutput>): void;以及CreatePhotoOutput(surfaceId: string): Promise<PhotoOutput>;变更为createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PhotoOutput>): void;和createPhotoOutput(profile: Profile, surfaceId: string): Promise<PhotoOutput>; 555 556 参考代码如下: 557 558 ``` 559 let profile = cameraoutputcapability.photoProfiles[0]; 560 cameraManager.createPhotoOutput(profile, surfaceId, (err, photoOutput) => { 561 if (err) { 562 console.error(`Failed to create photoOutput. ${err.message}`); 563 return; 564 } 565 console.log('Callback returned with photoOutput created.'); 566 }) 567 ``` 568 569 ``` 570 let profile = cameraoutputcapability.photoProfiles[0]; 571 cameraManager.createPhotoOutput(profile, surfaceId).then((photoOutput) => { 572 console.log('Promise returned with photoOutput created.'); 573 }) 574 ``` 575 5765. CameraManager中接口createVideoOutput新增传递参数profile: Profile,profile参数由getSupportedOutputCapability接口获取,因此旧接口createVideoOutput(surfaceId: string, callback: AsyncCallback<VideoOutput>): void;以及createVideoOutput(surfaceId: string): Promise<VideoOutput>;变更为createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback<VideoOutput>): void;和createVideoOutput(profile: VideoProfile, surfaceId: string): Promise<VideoOutput>; 577 578 参考代码如下: 579 580 ``` 581 let profile = cameraoutputcapability.videoProfiles[0]; 582 cameraManager.createVideoOutput(profile, surfaceId, (err, videoOutput) => { 583 if (err) { 584 console.error(`Failed to create videoOutput. ${err.message}`); 585 return; 586 } 587 console.log('Callback returned with an array of supported outputCapability' ); 588 }) 589 ``` 590 591 ``` 592 let profile = cameraoutputcapability.videoProfiles[0]; 593 cameraManager.createVideoOutput(profile, surfaceId).then((videoOutput) => { 594 console.log('Promise returned with videoOutput created.'); 595 }) 596 ``` 597 5986. CameraManager中接口createMetadataOutput新增传递参数metadataObjectTypes: Array<MetadataObjectType>,metadataObjectTypes参数由getSupportedOutputCapability接口获取,因此旧接口function createMetadataOutput(callback: AsyncCallback<MetadataOutput>): void;以及function createMetadataOutput(): Promise<MetadataOutput>;变更为createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<MetadataOutput>): void;和createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): Promise<MetadataOutput>; 599 600 参考代码如下: 601 602 ``` 603 let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes; 604 cameraManager.createMetadataOutput(metadataObjectTypes, (err, metadataOutput) => { 605 if (err) { 606 console.error(`Failed to create metadataOutput. ${err.message}`); 607 return; 608 } 609 console.log('Callback returned with metadataOutput created.'); 610 }) 611 ``` 612 613 ``` 614 let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes; 615 cameraManager.createMetadataOutput(metadataObjectTypes).then((metadataOutput) => { 616 console.log('Promise returned with metadataOutput created.'); 617 }) 618 ``` 619 6207. CameraManager中createCaptureSession不需要考虑context属性,因此旧接口createCaptureSession(context: Context, callback: AsyncCallback<CaptureSession>): void;以及createCaptureSession(context: Context): Promise<CaptureSession>;改为createCaptureSession(callback: AsyncCallback<CaptureSession>): void;和createCaptureSession(): Promise<CaptureSession>; 621 622 参考代码如下: 623 624 ```typescript 625 cameraManager.createCaptureSession((err, captureSession) => { 626 if (err) { 627 console.error(`Failed to create captureSession. ${err.message}`); 628 return; 629 } 630 console.log('Callback returned with captureSession created.'); 631 }) 632 ``` 633 634 ``` 635 cameraManager.createCaptureSession().then((captureSession) => { 636 console.log('Promise returned with captureSession created.'); 637 }) 638 ``` 639 6408. CameraStatusInfo接口下属性camera类型由Camera变更为CameraDevice 641 6429. CameraInput中接口on(type: 'error')新增传递参数camera: CameraDevice,因此旧接口on(type: 'error', callback: ErrorCallback<CameraInputError>): void;变更为on(type: 'error', camera: CameraDevice, callback: ErrorCallback<CameraInputError>): void; 643 644 参考代码如下: 645 646 ``` 647 let cameraDevice = cameras[0]; 648 cameraInput.on('error', cameraDevice, (cameraInputError) => { 649 console.log(`Camera input error code: ${cameraInputError.code}`); 650 }) 651 ``` 652 65310. CameraInput中以下接口调整到CaptureSession中 654 655 hasFlash(callback: AsyncCallback<boolean>): void;<br/>hasFlash(): Promise<boolean>;<br/> 656 657 isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean>): void;<br/>isFlashModeSupported(flashMode: FlashMode): Promise<boolean>;<br/> 658 659 getFlashMode(callback: AsyncCallback<FlashMode>): void;<br/>getFlashMode(): Promise<FlashMode>;<br/> 660 661 setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void>): void;<br/>setFlashMode(flashMode: FlashMode): Promise<void>;<br/> 662 663 isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback<boolean>): void;<br/>isExposureModeSupported(aeMode: ExposureMode): Promise<boolean>;<br/> 664 665 getExposureMode(callback: AsyncCallback<ExposureMode>): void;<br/>getExposureMode(): Promise<ExposureMode>;<br/> 666 667 setExposureMode(aeMode: ExposureMode, callback: AsyncCallback<void>): void;<br/>setExposureMode(aeMode: ExposureMode): Promise<void>;<br/> 668 669 getMeteringPoint(callback: AsyncCallback<Point>): void;<br/>getMeteringPoint(): Promise<Point>;<br/> 670 671 setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setMeteringPoint(point: Point): Promise<void>;<br/> 672 673 getExposureBiasRange(callback: AsyncCallback<Array<number>>): void;<br/>getExposureBiasRange(): Promise<Array<number>>;<br/> 674 675 setExposureBias(exposureBias: number, callback: AsyncCallback<void>): void;<br/>setExposureBias(exposureBias: number): Promise<void>;<br/> 676 677 getExposureValue(callback: AsyncCallback<number>): void;<br/>getExposureValue(): Promise<number>;<br/> 678 679 isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void;<br/>isFocusModeSupported(afMode: FocusMode): Promise<boolean>;<br/> 680 681 getFocusMode(callback: AsyncCallback<FocusMode>): void;<br/>getFocusMode(): Promise<FocusMode>;<br/> 682 683 setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void;<br/>setFocusMode(afMode: FocusMode): Promise<void>;<br/> 684 685 setFocusPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setFocusPoint(point: Point): Promise<void>;<br/> 686 687 getFocusPoint(callback: AsyncCallback<Point>): void;<br/>getFocusPoint(): Promise<Point>;<br/> 688 689 getFocalLength(callback: AsyncCallback<number>): void;<br/>getFocalLength(): Promise<number>;<br/> 690 691 getZoomRatioRange(callback: AsyncCallback<Array<number>>): void;<br/>getZoomRatioRange(): Promise<Array<number>>;<br/> 692 693 getZoomRatio(callback: AsyncCallback<number>): void;<br/>getZoomRatio(): Promise<number>;<br/> 694 695 setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void;<br/>setZoomRatio(zoomRatio: number): Promise<void>; 696 69711. CameraInput中接口on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;调整到CaptureSession中,对应接口on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void; 698 699 参考代码如下: 700 701 ``` 702 captureSession.on('focusStateChange', (focusState) => { 703 console.log(`Focus state : ${focusState}`); 704 }) 705 ``` 706 70712. 枚举ExposureMode中 708 709 枚举值名称:EXPOSURE_MODE_AUTO,初值由默认变更为1; 710 711 枚举值名称:EXPOSURE_MODE_CONTINUOUS_AUTO,初值由默认变更为2; 712 71313. 枚举VideoStabilizationMode中 714 715 枚举值名称:LOW,初值由默认变更为1; 716 717 枚举值名称:MIDDLE,初值由默认变更为2; 718 719 枚举值名称:HIGH,初值由默认变更为3; 720 721 枚举值名称:AUTO,初值由默认变更为4; 722 72314. CaptureSession中接口addOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),变更后由原来8个接口缩减为2个接口。 724 725 改变前接口为: 726 727 addOutput(previewOutput: PreviewOutput, callback: AsyncCallback<void>): void;<br/>addOutput(previewOutput: PreviewOutput): Promise<void>;<br/>addOutput(photoOutput: PhotoOutput, callback: AsyncCallback<void>): void;<br/>addOutput(photoOutput: PhotoOutput): Promise<void>;<br/>addOutput(videoOutput: VideoOutput, callback: AsyncCallback<void>): void;<br/>addOutput(videoOutput: VideoOutput): Promise<void>;<br/>addOutput(metadataOutput: MetadataOutput, callback: AsyncCallback<void>): void;<br/>addOutput(metadataOutput: MetadataOutput): Promise<void>; 728 729 改变后接口为: 730 731 addOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>addOutput(cameraOutput: CameraOutput): Promise<void>; 732 733 参考代码如下:以PreviewOutput为例 734 735 ``` 736 captureSession.addOutput(previewOutput, (err) => { 737 if (err) { 738 console.error(`Failed to add output. ${err.message}`); 739 return; 740 } 741 console.log('Callback returned with output added.'); 742 }) 743 ``` 744 745 ``` 746 captureSession.addOutput(previewOutput).then(() => { 747 console.log('Promise returned with cameraOutput added.'); 748 }) 749 ``` 750 75115. CaptureSession中接口removeOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),变更后由原来8个接口缩减为2个接口。 752 753 改变前接口为: 754 755 removeOutput(previewOutput: PreviewOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(previewOutput: PreviewOutput): Promise<void>;<br/>removeOutput(photoOutput: PhotoOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(photoOutput: PhotoOutput): Promise<void>;<br/>removeOutput(videoOutput: VideoOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(videoOutput: VideoOutput): Promise<void>;<br/>removeOutput(metadataOutput: MetadataOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(metadataOutput: MetadataOutput): Promise<void>; 756 757 改变后接口为: 758 759 removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(cameraOutput: CameraOutput): Promise<void>; 760 761 参考代码如下:以PreviewOutput为例 762 763 ``` 764 captureSession.removeOutput(previewOutput, (err) => { 765 if (err) { 766 console.error(`Failed to remove the CameraOutput instance. ${err.message}`); 767 return; 768 } 769 console.log('Callback invoked to indicate that the CameraOutput instance is removed.'); 770 }); 771 ``` 772 773 ``` 774 captureSession.removeOutput(previewOutput).then(() => { 775 console.log('Promise returned to indicate that the CameraOutput instance is removed.'); 776 }) 777 ``` 778 77916. 枚举MetadataObjectType中 780 781 枚举值名称由FACE变更为FACE_DETECTION; 782 78317. 接口Camera名称更改为CameraDevice 784