openharmony 鸿蒙 changelogs-camera

2023-02-03 浏览 (754)

媒体子系统JS API变更Changelog

OpenHarmony3.2 Beta4版本相较于OpenHarmony3.2 Beta3版本,媒体子系统camera部件API变更如下

camera接口变更

基于以下原因新增部分功能接口以及废弃部分接口:

  1. 提升开发者使用相机接口的便利。
  2. 帮助开发者快速掌握相机开发接口,快速投入到开发当中。
  3. 易于后续版本中框架功能的扩展,降低框架模块之间的耦合度。

具体参考下方变更内容,开发者需要根据以下说明对应用进行适配。

变更影响

影响API9版本的JS接口,应用需要进行适配才可以在新版本SDK环境正常实现功能。

关键的接口/组件变更

模块名类名方法/属性/枚举/常量变更类型
ohos.multimedia.cameraProfilereadonly format:CameraFormat;新增
ohos.multimedia.cameraProfilereadonly size: Size;新增
ohos.multimedia.cameraFrameRateRangereadonly min: number;新增
ohos.multimedia.cameraFrameRateRangereadonly max: number;新增
ohos.multimedia.cameraVideoProfilereadonly frameRateRange: FrameRateRange;新增
ohos.multimedia.cameraCameraOutputCapabilityreadonly previewProfiles: Array;新增
ohos.multimedia.cameraCameraOutputCapabilityreadonly photoProfiles: Array;新增
ohos.multimedia.cameraCameraOutputCapabilityreadonly videoProfiles: Array;新增
ohos.multimedia.cameraCameraOutputCapabilityreadonly supportedMetadataObjectTypes: Array;新增
ohos.multimedia.cameraCameraManagergetSupportedCameras(callback: AsyncCallback<Array>): void;
getSupportedCameras(): Promise<Array>;
新增
ohos.multimedia.cameraCameraManagergetSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback): void;
getSupportedOutputCapability(camera: CameraDevice): Promise;
新增
ohos.multimedia.cameraCameraManagerisCameraMuted(): boolean;新增
ohos.multimedia.cameraCameraManagerisCameraMuteSupported(): boolean;新增
ohos.multimedia.cameraCameraManagermuteCamera(mute: boolean): void;新增
ohos.multimedia.cameraCameraManagercreateCameraInput(camera: CameraDevice, callback: AsyncCallback): void;
createCameraInput(camera: CameraDevice): Promise;
新增
ohos.multimedia.cameraCameraManagercreatePreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void;
createPreviewOutput(profile: Profile, surfaceId: string): Promise;
新增
ohos.multimedia.cameraCameraManagercreatePhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void;
createPhotoOutput(profile: Profile, surfaceId: string): Promise;
新增
ohos.multimedia.cameraCameraManagercreateVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback): void;
createVideoOutput(profile: VideoProfile, surfaceId: string): Promise;
新增
ohos.multimedia.cameraCameraManagercreateMetadataOutput(metadataObjectTypes: Array, callback: AsyncCallback): void;
createMetadataOutput(metadataObjectTypes: Array): Promise;
新增
ohos.multimedia.cameraCameraManagercreateCaptureSession(callback: AsyncCallback): void;
createCaptureSession(): Promise;
新增
ohos.multimedia.cameraCameraManageron(type: 'cameraMute', callback: AsyncCallback): void;新增
ohos.multimedia.cameraCameraManagergetCameras(callback: AsyncCallback<Array>): void;
getCameras(): Promise<Array>;
废弃
ohos.multimedia.cameraCameraManagercreateCameraInput(cameraId: string, callback: AsyncCallback): void;
createCameraInput(cameraId: string): Promise;
废弃
ohos.multimedia.cameraCameraManagercreateCaptureSession(context: Context, callback: AsyncCallback): void;
createCaptureSession(context: Context): Promise;
废弃
ohos.multimedia.cameraCameraManagercreatePreviewOutput(surfaceId: string, callback: AsyncCallback): void;
createPreviewOutput(surfaceId: string): Promise;
废弃
ohos.multimedia.cameraCameraManagerCreatePhotoOutput(surfaceId: string, callback: AsyncCallback): void;
CreatePhotoOutput(surfaceId: string): Promise;
废弃
ohos.multimedia.cameraCameraManagercreateVideoOutput(surfaceId: string, callback: AsyncCallback): void;
createVideoOutput(surfaceId: string): Promise;
废弃
ohos.multimedia.cameraCameraManagercreateMetadataOutput(callback: AsyncCallback): void;
createVideoOutput(): Promise;
废弃
ohos.multimedia.cameraCameraStatusInfocamera: CameraDevice;新增
ohos.multimedia.cameraCameraStatusInfocamera: Camera;废弃
ohos.multimedia.cameraCameraDeviceinterface CameraDevice新增
ohos.multimedia.cameraCamerainterface Camera废弃
ohos.multimedia.cameraCameraInputopen(callback: AsyncCallback): void;
open(): Promise;
新增
ohos.multimedia.cameraCameraInputclose(callback: AsyncCallback): void;
close(): Promise;
新增
ohos.multimedia.cameraCameraInputon(type: 'error', camera: CameraDevice, callback: ErrorCallback): void;新增
ohos.multimedia.cameraCameraInputisFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void;
isFocusModeSupported(afMode: FocusMode): Promise;
废弃
ohos.multimedia.cameraCameraInputgetFocusMode(callback: AsyncCallback): void;
getFocusMode(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetFocusMode(afMode: FocusMode, callback: AsyncCallback): void;
setFocusMode(afMode: FocusMode): Promise;
废弃
ohos.multimedia.cameraCameraInputgetZoomRatioRange(callback: AsyncCallback<Array>): void;
getZoomRatioRange(): Promise<Array>;
废弃
ohos.multimedia.cameraCameraInputgetZoomRatio(callback: AsyncCallback): void;
getZoomRatio(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetZoomRatio(zoomRatio: number, callback: AsyncCallback): void;
setZoomRatio(zoomRatio: number): Promise;
废弃
ohos.multimedia.cameraCameraInputgetCameraId(callback: AsyncCallback): void;
getCameraId(): Promise;
废弃
ohos.multimedia.cameraCameraInputgetExposurePoint(callback: AsyncCallback): void;
getExposurePoint(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetExposurePoint(exposurePoint: Point, callback: AsyncCallback): void;
setExposurePoint(exposurePoint: Point): Promise;
废弃
ohos.multimedia.cameraCameraInputhasFlash(callback: AsyncCallback): void;
hasFlash(): Promise;
废弃
ohos.multimedia.cameraCameraInputisFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void;
isFlashModeSupported(flashMode: FlashMode): Promise;
废弃
ohos.multimedia.cameraCameraInputgetFlashMode(callback: AsyncCallback): void;
getFlashMode(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetFlashMode(flashMode: FlashMode, callback: AsyncCallback): void;
setFlashMode(flashMode: FlashMode): Promise;
废弃
ohos.multimedia.cameraCameraInputisExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback): void;
isExposureModeSupported(aeMode: ExposureMode): Promise;
废弃
ohos.multimedia.cameraCameraInputgetExposureMode(callback: AsyncCallback): void;
getExposureMode(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void;
setExposureMode(aeMode: ExposureMode): Promise;
废弃
ohos.multimedia.cameraCameraInputgetMeteringPoint(callback: AsyncCallback): void;
getMeteringPoint(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetMeteringPoint(point: Point, callback: AsyncCallback): void;
setMeteringPoint(point: Point): Promise;
废弃
ohos.multimedia.cameraCameraInputgetExposureBiasRange(callback: AsyncCallback<Array>): void;
getExposureBiasRange(): Promise<Array>;
废弃
ohos.multimedia.cameraCameraInputsetExposureBias(exposureBias: number, callback: AsyncCallback): void;
setExposureBias(exposureBias: number): Promise;
废弃
ohos.multimedia.cameraCameraInputgetExposureValue(callback: AsyncCallback): void;
getExposureValue(): Promise;
废弃
ohos.multimedia.cameraCameraInputisFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void;
isFocusModeSupported(afMode: FocusMode): Promise;
废弃
ohos.multimedia.cameraCameraInputgetFocusMode(callback: AsyncCallback): void;
getFocusMode(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetFocusMode(afMode: FocusMode, callback: AsyncCallback): void;
setFocusMode(afMode: FocusMode): Promise;
废弃
ohos.multimedia.cameraCameraInputsetFocusPoint(point: Point, callback: AsyncCallback): void;
setFocusPoint(point: Point): Promise;
废弃
ohos.multimedia.cameraCameraInputgetFocusPoint(callback: AsyncCallback): void;
getFocusPoint(): Promise;
废弃
ohos.multimedia.cameraCameraInputgetFocalLength(callback: AsyncCallback): void;
getFocalLength(): Promise;
废弃
ohos.multimedia.cameraCameraInputgetZoomRatioRange(callback: AsyncCallback<Array>): void;
getZoomRatioRange(): Promise<Array>;
废弃
ohos.multimedia.cameraCameraInputgetZoomRatio(callback: AsyncCallback): void;
getZoomRatio(): Promise;
废弃
ohos.multimedia.cameraCameraInputsetZoomRatio(zoomRatio: number, callback: AsyncCallback): void;
setZoomRatio(zoomRatio: number): Promise;
废弃
ohos.multimedia.cameraCameraInputon(type: 'focusStateChange', callback: AsyncCallback): void;废弃
ohos.multimedia.cameraCameraInputon(type: 'exposureStateChange', callback: AsyncCallback): void;废弃
ohos.multimedia.cameraCameraInputon(type: 'error', callback: ErrorCallback): void;废弃
ohos.multimedia.cameraCameraInputErrorCodeERROR_NO_PERMISSION = 0新增
ohos.multimedia.cameraCameraInputErrorCodeERROR_DEVICE_PREEMPTED = 1新增
ohos.multimedia.cameraCameraInputErrorCodeERROR_DEVICE_DISCONNECTED = 2新增
ohos.multimedia.cameraCameraInputErrorCodeERROR_DEVICE_IN_USE = 3新增
ohos.multimedia.cameraCameraInputErrorCodeERROR_DRIVER_ERROR = 4新增
ohos.multimedia.cameraCameraFormatCAMERA_FORMAT_RGBA_8888 = 3新增
ohos.multimedia.cameraExposureModeEXPOSURE_MODE_AUTO = 1新增
ohos.multimedia.cameraExposureModeEXPOSURE_MODE_CONTINUOUS_AUTO = 2新增
ohos.multimedia.cameraExposureModeEXPOSURE_MODE_AUTO废弃
ohos.multimedia.cameraExposureModeEXPOSURE_MODE_CONTINUOUS_AUTO废弃
ohos.multimedia.cameraVideoStabilizationModeLOW = 1新增
ohos.multimedia.cameraVideoStabilizationModeMIDDLE = 2新增
ohos.multimedia.cameraVideoStabilizationModeHIGH = 3新增
ohos.multimedia.cameraVideoStabilizationModeAUTO = 4新增
ohos.multimedia.cameraVideoStabilizationModeLOW废弃
ohos.multimedia.cameraVideoStabilizationModeMIDDLE废弃
ohos.multimedia.cameraVideoStabilizationModeHIGH废弃
ohos.multimedia.cameraVideoStabilizationModeAUTO废弃
ohos.multimedia.cameraCaptureSessionaddOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void;
addOutput(cameraOutput: CameraOutput): Promise;
新增
ohos.multimedia.cameraCaptureSessionremoveOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void;
removeOutput(cameraOutput: CameraOutput): Promise;
新增
ohos.multimedia.cameraCaptureSessionisVideoStabilizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback): void;
isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetActiveVideoStabilizationMode(callback: AsyncCallback): void;
getActiveVideoStabilizationMode(): Promise;
新增
ohos.multimedia.cameraCaptureSessionsetVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback): void;
setVideoStabilizationMode(mode: VideoStabilizationMode): Promise;
新增
ohos.multimedia.cameraCaptureSessionon(type: 'focusStateChange', callback: AsyncCallback): void;新增
ohos.multimedia.cameraCaptureSessionhasFlash(callback: AsyncCallback): void;
hasFlash(): Promise;
新增
ohos.multimedia.cameraCaptureSessionisFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void;
isFlashModeSupported(flashMode: FlashMode): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetFlashMode(callback: AsyncCallback): void;
getFlashMode(): Promise;
新增
ohos.multimedia.cameraCaptureSessionsetFlashMode(flashMode: FlashMode, callback: AsyncCallback): void;
setFlashMode(flashMode: FlashMode): Promise;
新增
ohos.multimedia.cameraCaptureSessionisExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback): void;
isExposureModeSupported(aeMode: ExposureMode): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetExposureMode(callback: AsyncCallback): void;
getExposureMode(): Promise;
新增
ohos.multimedia.cameraCaptureSessionsetExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void;
setExposureMode(aeMode: ExposureMode): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetMeteringPoint(callback: AsyncCallback): void;
getMeteringPoint(): Promise;
新增
ohos.multimedia.cameraCaptureSessionsetMeteringPoint(point: Point, callback: AsyncCallback): void;
setMeteringPoint(point: Point): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetExposureBiasRange(callback: AsyncCallback<Array>): void;
getExposureBiasRange(): Promise<Array>;
新增
ohos.multimedia.cameraCaptureSessionsetExposureBias(exposureBias: number, callback: AsyncCallback): void;
setExposureBias(exposureBias: number): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetExposureValue(callback: AsyncCallback): void;
getExposureValue(): Promise;
新增
ohos.multimedia.cameraCaptureSessionisFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void;
isFocusModeSupported(afMode: FocusMode): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetFocusMode(callback: AsyncCallback): void;
getFocusMode(): Promise;
新增
ohos.multimedia.cameraCaptureSessionsetFocusMode(afMode: FocusMode, callback: AsyncCallback): void;
setFocusMode(afMode: FocusMode): Promise;
新增
ohos.multimedia.cameraCaptureSessionsetFocusPoint(point: Point, callback: AsyncCallback): void;
setFocusPoint(point: Point): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetFocusPoint(callback: AsyncCallback): void;
getFocusPoint(): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetFocalLength(callback: AsyncCallback): void;
getFocalLength(): Promise;
新增
ohos.multimedia.cameraCaptureSessiongetZoomRatioRange(callback: AsyncCallback<Array>): void;
getZoomRatioRange(): Promise<Array>;
新增
ohos.multimedia.cameraCaptureSessiongetZoomRatio(callback: AsyncCallback): void;
getZoomRatio(): Promise;
新增
ohos.multimedia.cameraCaptureSessionsetZoomRatio(zoomRatio: number, callback: AsyncCallback): void;
setZoomRatio(zoomRatio: number): Promise;
新增
ohos.multimedia.cameraCaptureSessionaddOutput(previewOutput: PreviewOutput, callback: AsyncCallback): void;
addOutput(previewOutput: PreviewOutput): Promise;
addOutput(photoOutput: PhotoOutput, callback: AsyncCallback): void;
addOutput(photoOutput: PhotoOutput): Promise;
addOutput(videoOutput: VideoOutput, callback: AsyncCallback): void;
addOutput(videoOutput: VideoOutput): Promise;
废弃
ohos.multimedia.cameraCaptureSessionremoveOutput(previewOutput: PreviewOutput, callback: AsyncCallback): void;
removeOutput(previewOutput: PreviewOutput): Promise;
removeOutput(photoOutput: PhotoOutput, callback: AsyncCallback): void;
removeOutput(photoOutput: PhotoOutput): Promise;removeOutput(videoOutput: VideoOutput, callback: AsyncCallback): void;
removeOutput(videoOutput: VideoOutput): Promise;
removeOutput(metadataOutput: MetadataOutput, callback: AsyncCallback): void;
removeOutput(metadataOutput: MetadataOutput): Promise;
废弃
ohos.multimedia.cameraCaptureSessionErrorCodeERROR_INSUFFICIENT_RESOURCES = 0新增
ohos.multimedia.cameraCaptureSessionErrorCodeERROR_TIMEOUT = 1新增
ohos.multimedia.cameraCameraOutputrelease(callback: AsyncCallback): void;
release(): Promise;
新增
ohos.multimedia.cameraPreviewOutputstart(callback: AsyncCallback): void;
start(): Promise;
新增
ohos.multimedia.cameraPreviewOutputstop(callback: AsyncCallback): void;
stop(): Promise;
新增
ohos.multimedia.cameraPreviewOutputrelease(callback: AsyncCallback): void;
release(): Promise;
废弃
ohos.multimedia.cameraPhotoOutputrelease(callback: AsyncCallback): void;
release(): Promise;
废弃
ohos.multimedia.cameraVideoOutputrelease(callback: AsyncCallback): void;
release(): Promise;
废弃
ohos.multimedia.cameraPhotoCaptureSettingmirror?: boolean;新增
ohos.multimedia.cameraPhotoOutputErrorCodeERROR_DRIVER_ERROR = 0新增
ohos.multimedia.cameraPhotoOutputErrorCodeERROR_INSUFFICIENT_RESOURCES = 1新增
ohos.multimedia.cameraPhotoOutputErrorCodeERROR_TIMEOUT = 2新增
ohos.multimedia.cameraVideoOutputErrorCodeERROR_DRIVER_ERROR = 0新增
ohos.multimedia.cameraMetadataObjectTypeFACE_DETECTION = 0新增
ohos.multimedia.cameraMetadataObjectTypeFACE = 0废弃
ohos.multimedia.cameraMetadataOutputon(type: 'error', callback: ErrorCallback): void;新增
ohos.multimedia.cameraMetadataOutputsetCapturingMetadataObjectTypes(metadataObjectTypes: Array, callback: AsyncCallback): void;
setCapturingMetadataObjectTypes(metadataObjectTypes: Array): Promise;
废弃
ohos.multimedia.cameraMetadataOutputgetSupportedMetadataObjectTypes(callback: AsyncCallback<Array>): void;
getSupportedMetadataObjectTypes(): Promise<Array>;
废弃
ohos.multimedia.cameraMetadataOutputErrorCodeERROR_UNKNOWN = -1新增
ohos.multimedia.cameraMetadataOutputErrorCodeERROR_INSUFFICIENT_RESOURCES = 0新增
ohos.multimedia.cameraMetadataOutputErrorcode: MetadataOutputErrorCode;新增

适配指导

除新增接口,和废弃接口之外,开发者需要关注变更的接口的适配:

从Beta4版本开始,对以下接口进行调整:

新增接口

  1. Profile接口

    属性1:readonly format,类型:CameraFormat;

    属性2:readonly size,类型:Size;

  2. FrameRateRange接口

    属性1:readonly min,类型:number;

    属性2:readonly max,类型:number;

  3. VideoProfile接口,继承自Profile

    属性:readonly frameRateRange,类型:FrameRateRange;

  4. CameraOutputCapability接口

    属性1:readonly previewProfiles,类型:Array;

    属性2:readonly photoProfiles,类型:Array;

    属性3:readonly videoProfiles,类型:Array;

    属性4:readonly supportedMetadataObjectTypes,类型:Array;

  5. CameraManager中新增

    getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback): void;

    getSupportedOutputCapability(camera: CameraDevice): Promise;

    参考代码如下:

    cameraManager.getSupportedCameras().then((cameras) => {
        let cameraDevice = cameras[0];
        cameraManager.getSupportedOutputCapability(cameraDevice, (err, CameraOutputCapability) => {
            if (err) {
                console.error(`Failed to get the outputCapability. ${err.message}`);
                return;
            }
            console.log('Callback returned with an array of supported outputCapability');
        })
    })
    
    cameraManager.getSupportedCameras().then((cameras) => {
        let cameraDevice = cameras[0];
        cameraManager.getSupportedOutputCapability(cameraDevice).then((cameraoutputcapability) => {
            console.log('Promise returned with an array of supported outputCapability');
        })
    })
    
  6. CameraManager中新增isCameraMuted(): boolean;

    参考代码如下:

    let ismuted = cameraManager.isCameraMuted();
    
  7. CameraManager中新增isCameraMuteSupported(): boolean;

    参考代码如下:

    let ismutesuppotred = cameraManager.isCameraMuteSupported();
    
  8. CameraManager中新增muteCamera(mute: boolean): void;

    参考代码如下:

    let mute = true;
    cameraManager.muteCamera(mute);
    
  9. CameraManager中新增on(type: 'cameraMute', callback: AsyncCallback): void;

    参考代码如下:

    cameraManager.on('cameraMute', (err, curMuetd) => {
        if (err) {
            console.error(`Failed to get cameraMute callback. ${err.message}`);
            return;
        }
    })
    
  10. CameraInput中新增open(callback: AsyncCallback): void;以及open(): Promise;

参考代码如下:

cameraInput.open((err) => {
    if (err) {
        console.error(`Failed to open the camera. ${err.message}`);
        return;
    }
    console.log('Callback returned with camera opened.');
})
cameraInput.open().then(() => {
    console.log('Promise returned with camera opened.');
})
  1. CameraInput中新增close(callback: AsyncCallback): void;以及close(): Promise;

    参考代码如下:

    cameraInput.close((err) => {
        if (err) {
            console.error(`Failed to close the cameras. ${err.message}`);
            return;
        }
        console.log('Callback returned with camera closed.');
    })
    
    cameraInput.close().then(() => {
        console.log('Promise returned with camera closed.');
    })
    
  2. 枚举CameraInputErrorCode中新增

    枚举值名称:ERROR_NO_PERMISSION,值:0;

    枚举值名称:ERROR_DEVICE_PREEMPTED,值:1;

    枚举值名称:ERROR_DEVICE_DISCONNECTED,值:2;

    枚举值名称:ERROR_DEVICE_IN_USE,值:3;

    枚举值名称:ERROR_DRIVER_ERROR,值:4;

  3. 枚举CameraFormat中新增

    枚举值名称:CAMERA_FORMAT_RGBA_8888,值:3;

  4. CaptureSession中新增getMeteringPoint(callback: AsyncCallback): void;以及getMeteringPoint(): Promise;

    参考代码如下:

    captureSession.getMeteringPoint((err, exposurePoint) => {
        if (err) {
            console.log(`Failed to get the current exposure point ${err.message}`);
            return ;
        }
        console.log(`Callback returned with current exposure point: ${exposurePoint}`);
    })
    
    captureSession.getMeteringPoint().then((exposurePoint) => {
        console.log(`Promise returned with current exposure point : ${exposurePoint}`);
    })
    
  5. CaptureSession中新增setMeteringPoint(point: Point, callback: AsyncCallback): void;以及setMeteringPoint(point: Point): Promise;

    参考代码如下:

    const Point1 = {x: 1, y: 1};
    
    captureSession.setMeteringPoint(Point1,(err) => {
        if (err) {
            console.log(`Failed to set the exposure point ${err.message}`);
            return ;
        }
        console.log('Callback returned with the successful execution of setMeteringPoint');
    })
    
    const Point2 = {x: 2, y: 2};
    
    captureSession.setMeteringPoint(Point2).then(() => {
        console.log('Promise returned with the successful execution of setMeteringPoint');
    })
    
  6. 枚举CaptureSessionErrorCode中新增

    枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0;

    枚举值名称:ERROR_TIMEOUT,值:1;

  7. 新增接口CameraOutput,接口下有release(callback: AsyncCallback): void;以及release(): Promise;方法

    参考代码如下:用previewOutput做示例

    previewOutput.release((err) => {
        if (err) {
            console.error(`Failed to release the PreviewOutput instance ${err.message}`);
            return;
        }
        console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.');
    });
    
    previewOutput.release().then(() => {
        console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
    })
    
  8. PreviewOutput中新增start(callback: AsyncCallback): void;以及start(): Promise;

    参考代码如下

    previewOutput.start((err) => {
        if (err) {
            console.error(`Failed to start the previewOutput. ${err.message}`);
            return;
        }
        console.log('Callback returned with previewOutput started.');
    })
    
    previewOutput.start().then(() => {
        console.log('Promise returned with previewOutput started.');
    })
    
  9. PreviewOutput中新增stop(callback: AsyncCallback): void;以及stop(): Promise;

    参考代码如下

    previewOutput.stop((err) => {
        if (err) {
            console.error(`Failed to stop the previewOutput. ${err.message}`);
            return;
        }
        console.log('Callback returned with previewOutput stopped.');
    })
    
    previewOutput.stop().then(() => {
        console.log('Callback returned with previewOutput stopped.');
    })
    
  10. PhotoCaptureSetting接口

    属性1:mirror?,类型:boolean;

  11. 枚举PhotoOutputErrorCode中新增

    枚举值名称:ERROR_DRIVER_ERROR,值:0;

    枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:1;

    枚举值名称:ERROR_TIMEOUT,值:2;

  12. 枚举VideoOutputErrorCode中新增

    枚举值名称:ERROR_DRIVER_ERROR,值:0;

  13. MetadataOutput中新增on(type: 'error', callback: ErrorCallback): void;

    参考代码如下

    metadataOutput.on('error', (metadataOutputError) => {
        console.log(`Metadata output error code: ${metadataOutputError.code}`);
    })
    
  14. MetadataOutputErrorCode枚举

    枚举值名称:ERROR_UNKNOWN,值:-1;

    枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0;

  15. MetadataOutputError接口

    属性名称:code,值:MetadataOutputErrorCode

废弃接口

  1. CameraInput中废弃接口on(type: 'exposureStateChange', callback: AsyncCallback): void;

  2. previewOutput中废弃接口release(callback: AsyncCallback): void;以及release(): Promise;

  3. metadataOutput中废弃接口

    setCapturingMetadataObjectTypes(metadataObjectTypes: Array, callback: AsyncCallback): void;
    setCapturingMetadataObjectTypes(metadataObjectTypes: Array): Promise;

  4. metadataOutput中废弃接口

    getSupportedMetadataObjectTypes(callback: AsyncCallback<Array>): void;
    getSupportedMetadataObjectTypes(): Promise<Array>;

  5. PreviewOutput中废弃接口release(callback: AsyncCallback): void;以及release(): Promise;

  6. PhotoOutput中废弃接口release(callback: AsyncCallback): void;以及release(): Promise;

  7. VideoOutput中废弃接口release(callback: AsyncCallback): void;以及release(): Promise;

  8. CameraInput中废弃接口getCameraId(callback: AsyncCallback): void;以及getCameraId(): Promise;

  9. CameraInput中废弃接口getExposurePoint(callback: AsyncCallback): void;以及getExposurePoint(): Promise;

  10. CameraInput中废弃接口setExposurePoint(exposurePoint: Point, callback: AsyncCallback): void;以及setExposurePoint(exposurePoint: Point): Promise;

接口变更

  1. CameraManager中接口getCameras返回值由Array变更为Array,接口名由getCameras 更换为 getSupportedCameras,因此旧接口getCameras(callback: AsyncCallback<Array>): void;以及getCameras(): Promise<Array>;变更为getSupportedCameras(callback: AsyncCallback<Array>): void和getSupportedCameras(): Promise<Array>;

    参考代码如下:

    cameraManager.getSupportedCameras((err, cameras) => {
        if (err) {
            console.error(`Failed to get the cameras. ${err.message}`);
            return;
        }
        console.log(`Callback returned with an array of supported cameras: ${cameras.length}`);
    })
    
    cameraManager.getSupportedCameras().then((cameras) => {
        console.log(`Promise returned with an array of supported cameras: ${cameras.length}`);
    })
    
  2. CameraManager中接口createCameraInput传递参数由原来cameraId: string变更为camera: CameraDevice,因此旧接口createCameraInput(cameraId: string, callback: AsyncCallback): void;以及createCameraInput(cameraId: string): Promise;变更为createCameraInput(camera: CameraDevice, callback: AsyncCallback): void;和createCameraInput(camera: CameraDevice): Promise;

    参考代码如下:

    let cameraDevice = cameras[0];
    cameraManager.createCameraInput(cameraDevice, (err, cameraInput) => {
        if (err) {
            console.error(`Failed to create the CameraInput instance. ${err.message}`);
            return;
        }
        console.log('Callback returned with the CameraInput instance.');
    })
    
    let cameraDevice = cameras[0];
    cameraManager.createCameraInput(cameraDevice).then((cameraInput) => {
        console.log('Promise returned with the CameraInput instance');
    })
    
  3. CameraManager中接口createPreviewOutput新增传递参数profile: Profile,profile参数由getSupportedOutputCapability接口获取,因此旧接口createPreviewOutput(surfaceId: string, callback: AsyncCallback): void;以及createPreviewOutput(surfaceId: string): Promise;变更为createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void;createPreviewOutput(profile: Profile, surfaceId: string): Promise;

    参考代码如下:

    let profile = cameraoutputcapability.previewProfiles[0];
    cameraManager.createPreviewOutput(profile, surfaceId, (err, previewOutput) => {
        if (err) {
            console.error(`Failed to gcreate previewOutput. ${err.message}`);
            return;
        }
        console.log('Callback returned with previewOutput created.');
    })
    
    let profile = cameraoutputcapability.previewProfiles[0];
    cameraManager.createPreviewOutput(profile, surfaceId).then((previewOutput) => {
        console.log('Promise returned with previewOutput created.');
    })
    
  4. CameraManager中接口createPhotoOutput新增传递参数profile: Profile,profile参数由getSupportedOutputCapability接口获取,因此旧接口CreatePhotoOutput(surfaceId: string, callback: AsyncCallback): void;以及CreatePhotoOutput(surfaceId: string): Promise;变更为createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void;和createPhotoOutput(profile: Profile, surfaceId: string): Promise;

    参考代码如下:

    let profile = cameraoutputcapability.photoProfiles[0];
    cameraManager.createPhotoOutput(profile, surfaceId, (err, photoOutput) => {
        if (err) {
            console.error(`Failed to create photoOutput. ${err.message}`);
            return;
        }
        console.log('Callback returned with photoOutput created.');
    })
    
    let profile = cameraoutputcapability.photoProfiles[0];
    cameraManager.createPhotoOutput(profile, surfaceId).then((photoOutput) => {
        console.log('Promise returned with photoOutput created.');
    })
    
  5. CameraManager中接口createVideoOutput新增传递参数profile: Profile,profile参数由getSupportedOutputCapability接口获取,因此旧接口createVideoOutput(surfaceId: string, callback: AsyncCallback): void;以及createVideoOutput(surfaceId: string): Promise;变更为createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback): void;和createVideoOutput(profile: VideoProfile, surfaceId: string): Promise;

    参考代码如下:

    let profile = cameraoutputcapability.videoProfiles[0];
    cameraManager.createVideoOutput(profile, surfaceId, (err, videoOutput) => {
        if (err) {
            console.error(`Failed to create videoOutput. ${err.message}`);
            return;
        }
        console.log('Callback returned with an array of supported outputCapability' );
    })
    
    let profile = cameraoutputcapability.videoProfiles[0];
    cameraManager.createVideoOutput(profile, surfaceId).then((videoOutput) => {
        console.log('Promise returned with videoOutput created.');
    })
    
  6. CameraManager中接口createMetadataOutput新增传递参数metadataObjectTypes: Array,metadataObjectTypes参数由getSupportedOutputCapability接口获取,因此旧接口function createMetadataOutput(callback: AsyncCallback): void;以及function createMetadataOutput(): Promise;变更为createMetadataOutput(metadataObjectTypes: Array, callback: AsyncCallback): void;和createMetadataOutput(metadataObjectTypes: Array): Promise;

    参考代码如下:

    let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes;
    cameraManager.createMetadataOutput(metadataObjectTypes, (err, metadataOutput) => {
        if (err) {
            console.error(`Failed to create metadataOutput. ${err.message}`);
            return;
        }
        console.log('Callback returned with metadataOutput created.');
    })
    
    let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes;
    cameraManager.createMetadataOutput(metadataObjectTypes).then((metadataOutput) => {
        console.log('Promise returned with metadataOutput created.');
    })
    
  7. CameraManager中createCaptureSession不需要考虑context属性,因此旧接口createCaptureSession(context: Context, callback: AsyncCallback): void;以及createCaptureSession(context: Context): Promise;改为createCaptureSession(callback: AsyncCallback): void;和createCaptureSession(): Promise;

    参考代码如下:

    cameraManager.createCaptureSession((err, captureSession) => {
        if (err) {
            console.error(`Failed to create captureSession. ${err.message}`);
            return;
        }
        console.log('Callback returned with captureSession created.');
    })
    
    cameraManager.createCaptureSession().then((captureSession) => {
        console.log('Promise returned with captureSession created.');
    })
    
  8. CameraStatusInfo接口下属性camera类型由Camera变更为CameraDevice

  9. CameraInput中接口on(type: 'error')新增传递参数camera: CameraDevice,因此旧接口on(type: 'error', callback: ErrorCallback): void;变更为on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void;

    参考代码如下:

    let cameraDevice = cameras[0];
    cameraInput.on('error', cameraDevice, (cameraInputError) => {
        console.log(`Camera input error code: ${cameraInputError.code}`);
    })
    
  10. CameraInput中以下接口调整到CaptureSession中

    hasFlash(callback: AsyncCallback): void;
    hasFlash(): Promise;

    isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void;
    isFlashModeSupported(flashMode: FlashMode): Promise;

    getFlashMode(callback: AsyncCallback): void;
    getFlashMode(): Promise;

    setFlashMode(flashMode: FlashMode, callback: AsyncCallback): void;
    setFlashMode(flashMode: FlashMode): Promise;

    isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback): void;
    isExposureModeSupported(aeMode: ExposureMode): Promise;

    getExposureMode(callback: AsyncCallback): void;
    getExposureMode(): Promise;

    setExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void;
    setExposureMode(aeMode: ExposureMode): Promise;

    getMeteringPoint(callback: AsyncCallback): void;
    getMeteringPoint(): Promise;

    setMeteringPoint(point: Point, callback: AsyncCallback): void;
    setMeteringPoint(point: Point): Promise;

    getExposureBiasRange(callback: AsyncCallback<Array>): void;
    getExposureBiasRange(): Promise<Array>;

    setExposureBias(exposureBias: number, callback: AsyncCallback): void;
    setExposureBias(exposureBias: number): Promise;

    getExposureValue(callback: AsyncCallback): void;
    getExposureValue(): Promise;

    isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void;
    isFocusModeSupported(afMode: FocusMode): Promise;

    getFocusMode(callback: AsyncCallback): void;
    getFocusMode(): Promise;

    setFocusMode(afMode: FocusMode, callback: AsyncCallback): void;
    setFocusMode(afMode: FocusMode): Promise;

    setFocusPoint(point: Point, callback: AsyncCallback): void;
    setFocusPoint(point: Point): Promise;

    getFocusPoint(callback: AsyncCallback): void;
    getFocusPoint(): Promise;

    getFocalLength(callback: AsyncCallback): void;
    getFocalLength(): Promise;

    getZoomRatioRange(callback: AsyncCallback<Array>): void;
    getZoomRatioRange(): Promise<Array>;

    getZoomRatio(callback: AsyncCallback): void;
    getZoomRatio(): Promise;

    setZoomRatio(zoomRatio: number, callback: AsyncCallback): void;
    setZoomRatio(zoomRatio: number): Promise;

  11. CameraInput中接口on(type: 'focusStateChange', callback: AsyncCallback): void;调整到CaptureSession中,对应接口on(type: 'focusStateChange', callback: AsyncCallback): void;

    参考代码如下:

    captureSession.on('focusStateChange', (focusState) => {
        console.log(`Focus state  : ${focusState}`);
    })
    
  12. 枚举ExposureMode中

    枚举值名称:EXPOSURE_MODE_AUTO,初值由默认变更为1;

    枚举值名称:EXPOSURE_MODE_CONTINUOUS_AUTO,初值由默认变更为2;

  13. 枚举VideoStabilizationMode中

    枚举值名称:LOW,初值由默认变更为1;

    枚举值名称:MIDDLE,初值由默认变更为2;

    枚举值名称:HIGH,初值由默认变更为3;

    枚举值名称:AUTO,初值由默认变更为4;

  14. CaptureSession中接口addOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),变更后由原来8个接口缩减为2个接口。

    改变前接口为:

    addOutput(previewOutput: PreviewOutput, callback: AsyncCallback): void;
    addOutput(previewOutput: PreviewOutput): Promise;
    addOutput(photoOutput: PhotoOutput, callback: AsyncCallback): void;
    addOutput(photoOutput: PhotoOutput): Promise;
    addOutput(videoOutput: VideoOutput, callback: AsyncCallback): void;
    addOutput(videoOutput: VideoOutput): Promise;
    addOutput(metadataOutput: MetadataOutput, callback: AsyncCallback): void;
    addOutput(metadataOutput: MetadataOutput): Promise;

    改变后接口为:

    addOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void;
    addOutput(cameraOutput: CameraOutput): Promise;

    参考代码如下:以PreviewOutput为例

    captureSession.addOutput(previewOutput, (err) => {
        if (err) {
            console.error(`Failed to add output. ${err.message}`);
            return;
        }
        console.log('Callback returned with output added.');
    })
    
    captureSession.addOutput(previewOutput).then(() => {
        console.log('Promise returned with cameraOutput added.');
    })
    
  15. CaptureSession中接口removeOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),变更后由原来8个接口缩减为2个接口。

    改变前接口为:

    removeOutput(previewOutput: PreviewOutput, callback: AsyncCallback): void;
    removeOutput(previewOutput: PreviewOutput): Promise;
    removeOutput(photoOutput: PhotoOutput, callback: AsyncCallback): void;
    removeOutput(photoOutput: PhotoOutput): Promise;
    removeOutput(videoOutput: VideoOutput, callback: AsyncCallback): void;
    removeOutput(videoOutput: VideoOutput): Promise;
    removeOutput(metadataOutput: MetadataOutput, callback: AsyncCallback): void;
    removeOutput(metadataOutput: MetadataOutput): Promise;

    改变后接口为:

    removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback): void;
    removeOutput(cameraOutput: CameraOutput): Promise;

    参考代码如下:以PreviewOutput为例

    captureSession.removeOutput(previewOutput, (err) => {
        if (err) {
            console.error(`Failed to remove the CameraOutput instance. ${err.message}`);
            return;
        }
        console.log('Callback invoked to indicate that the CameraOutput instance is removed.');
    });
    
    captureSession.removeOutput(previewOutput).then(() => {
        console.log('Promise returned to indicate that the CameraOutput instance is removed.');
    })
    
  16. 枚举MetadataObjectType中

    枚举值名称由FACE变更为FACE_DETECTION;

  17. 接口Camera名称更改为CameraDevice

你可能感兴趣的鸿蒙文章

harmony 鸿蒙帐号子系统changeLog

harmony 鸿蒙设备管理changeLog

harmony 鸿蒙USB管理 changeLog

harmony 鸿蒙软总线子系统Changelog

harmony 鸿蒙文件管理子系统ChangeLog

harmony 鸿蒙全球化子系统ChangeLog

harmony 鸿蒙输入法框架changeLog

harmony 鸿蒙多模输入changeLog

harmony 鸿蒙电源子系统ChangeLog

harmony 鸿蒙上传下载子系统ChangeLog

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/c04a5c478b9b475dace12482f314648f