提交 1f57986f 编写于 作者: M mali

Improve the description of interface change of beta3 to beta4 cameras-03

Signed-off-by: Nmali <mali81@huawei.com>
上级 5c4a5f54
...@@ -158,627 +158,625 @@ OpenHarmony3.2 Beta4版本相较于OpenHarmony3.2 Beta3版本,媒体子系统c ...@@ -158,627 +158,625 @@ OpenHarmony3.2 Beta4版本相较于OpenHarmony3.2 Beta3版本,媒体子系统c
除新增接口,和废弃接口之外,开发者需要关注变更的接口的适配: 除新增接口,和废弃接口之外,开发者需要关注变更的接口的适配:
**接口变更**
从Beta4版本开始,对以下接口进行调整: 从Beta4版本开始,对以下接口进行调整:
1. CameraManager中接口getCameras返回值由Array<Camera>变更为Array<CameraDevice>,因此旧接口getCameras(callback: AsyncCallback<Array<Camera>>): void;以及getCameras(): Promise<Array<Camera>>;变更为getSupportedCameras(callback: AsyncCallback<Array<CameraDevice>>): void和getSupportedCameras(): Promise<Array<CameraDevice>>; **新增接口**
参考代码如下: 1. Profile接口
``` 属性1:readonly format,类型:CameraFormat;
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}`);
})
```
``` 属性2:readonly size,类型:Size;
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<CameraInput>): void;以及createCameraInput(cameraId: string): Promise<CameraInput>;变更为createCameraInput(camera: CameraDevice, callback: AsyncCallback<CameraInput>): void;和createCameraInput(camera: CameraDevice): Promise<CameraInput>; 2. FrameRateRange接口
参考代码如下: 属性1:readonly min,类型:number;
``` 属性2:readonly max,类型:number;
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.');
})
```
``` 3. VideoProfile接口,继承自Profile
let cameraDevice = cameras[0];
cameraManager.createCameraInput(cameraDevice).then((cameraInput) => {
console.log('Promise returned with the CameraInput instance');
})
```
3. CameraManager中接口createPreviewOutput新增传递参数profile: Profile,因此旧接口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>; 属性:readonly frameRateRange,类型:FrameRateRange;
参考代码如下: 4. CameraOutputCapability接口
``` 属性1:readonly previewProfiles,类型:Array<Profile>;
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.');
})
```
``` 属性2:readonly photoProfiles,类型:Array<Profile>;
let profile = cameraoutputcapability.previewProfiles[0];
cameraManager.createPreviewOutput(profile, surfaceId).then((previewOutput) => {
console.log('Promise returned with previewOutput created.');
})
```
4. CameraManager中接口createPhotoOutput新增传递参数profile: Profile,因此旧接口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>; 属性3:readonly videoProfiles,类型:Array<VideoProfile>;
参考代码如下: 属性4:readonly supportedMetadataObjectTypes,类型:Array<MetadataObjectType>;
``` 5. CameraManager中新增
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.');
})
```
``` getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback<CameraOutputCapability>): void;
let profile = cameraoutputcapability.photoProfiles[0];
cameraManager.createPhotoOutput(profile, surfaceId).then((photoOutput) => {
console.log('Promise returned with photoOutput created.');
})
```
5. CameraManager中接口createVideoOutput新增传递参数profile: Profile,因此旧接口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>; getSupportedOutputCapability(camera: CameraDevice): Promise<CameraOutputCapability>;
参考代码如下: 参考代码如下:
``` ```
let profile = cameraoutputcapability.videoProfiles[0]; cameraManager.getSupportedCameras().then((cameras) => {
cameraManager.createVideoOutput(profile, surfaceId, (err, videoOutput) => { let cameraDevice = cameras[0];
if (err) { cameraManager.getSupportedOutputCapability(cameraDevice, (err, CameraOutputCapability) => {
console.error(`Failed to create videoOutput. ${err.message}`); if (err) {
return; console.error(`Failed to get the outputCapability. ${err.message}`);
} return;
console.log('Callback returned with an array of supported outputCapability' ); }
console.log('Callback returned with an array of supported outputCapability');
})
}) })
``` ```
``` ```
let profile = cameraoutputcapability.videoProfiles[0]; cameraManager.getSupportedCameras().then((cameras) => {
cameraManager.createVideoOutput(profile, surfaceId).then((videoOutput) => { let cameraDevice = cameras[0];
console.log('Promise returned with videoOutput created.'); cameraManager.getSupportedOutputCapability(cameraDevice).then((cameraoutputcapability) => {
console.log('Promise returned with an array of supported outputCapability');
})
}) })
``` ```
6. CameraManager中接口createMetadataOutput新增传递参数metadataObjectTypes: Array<MetadataObjectType>,因此旧接口createMetadataOutput(callback: AsyncCallback<MetadataOutput>): void;以及createVideoOutput(): Promise<MetadataOutput>;变更为createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<MetadataOutput>): void;和createMetadataOutput(metadataObjectTypes: Array<MetadataObjectType>): Promise<MetadataOutput>; 6. CameraManager中新增isCameraMuted(): boolean;
参考代码如下: 参考代码如下:
``` ```
let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes; let ismuted = cameraManager.isCameraMuted();
cameraManager.createMetadataOutput(metadataObjectTypes, (err, metadataOutput) => {
if (err) {
console.error(`Failed to create metadataOutput. ${err.message}`);
return;
}
console.log('Callback returned with metadataOutput created.');
})
``` ```
``` 7. CameraManager中新增isCameraMuteSupported(): boolean;
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<CaptureSession>): void;以及createCaptureSession(context: Context): Promise<CaptureSession>;改为createCaptureSession(callback: AsyncCallback<CaptureSession>): void;和createCaptureSession(): Promise<CaptureSession>;
参考代码如下: 参考代码如下:
```typescript
cameraManager.createCaptureSession((err, captureSession) => {
if (err) {
console.error(`Failed to create captureSession. ${err.message}`);
return;
}
console.log('Callback returned with captureSession created.');
})
``` ```
let ismutesuppotred = cameraManager.isCameraMuteSupported();
```
8. CameraManager中新增muteCamera(mute: boolean): void;
参考代码如下:
``` ```
cameraManager.createCaptureSession().then((captureSession) => { let mute = true;
console.log('Promise returned with captureSession created.'); cameraManager.muteCamera(mute);
})
``` ```
8. CameraStatusInfo接口下属性camera类型由Camera变更为CameraDevice 9. CameraManager中新增on(type: 'cameraMute', callback: AsyncCallback<boolean>): void;
9. CameraInput中接口on(type: 'error')新增传递参数camera: CameraDevice,因此旧接口on(type: 'error', callback: ErrorCallback<CameraInputError>): void;变更为on(type: 'error', camera: CameraDevice, callback: ErrorCallback<CameraInputError>): void;
参考代码如下: 参考代码如下:
``` ```
let cameraDevice = cameras[0]; cameraManager.on('cameraMute', (err, curMuetd) => {
cameraInput.on('error', cameraDevice, (cameraInputError) => { if (err) {
console.log(`Camera input error code: ${cameraInputError.code}`); console.error(`Failed to get cameraMute callback. ${err.message}`);
return;
}
}) })
``` ```
10. CameraInput中以下接口调整到CaptureSession中
hasFlash(callback: AsyncCallback<boolean>): void;<br/>hasFlash(): Promise<boolean>;<br/> 10. CameraInput中新增open(callback: AsyncCallback<void>): void;以及open(): Promise<void>;
isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean>): void;<br/>isFlashModeSupported(flashMode: FlashMode): Promise<boolean>;<br/> 参考代码如下:
getFlashMode(callback: AsyncCallback<FlashMode>): void;<br/>getFlashMode(): Promise<FlashMode>;<br/> ```
cameraInput.open((err) => {
if (err) {
console.error(`Failed to open the camera. ${err.message}`);
return;
}
console.log('Callback returned with camera opened.');
})
```
setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void>): void;<br/>setFlashMode(flashMode: FlashMode): Promise<void>;<br/> ```
cameraInput.open().then(() => {
console.log('Promise returned with camera opened.');
})
```
isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback<boolean>): void;<br/>isExposureModeSupported(aeMode: ExposureMode): Promise<boolean>;<br/> 11. CameraInput中新增close(callback: AsyncCallback<void>): void;以及close(): Promise<void>;
getExposureMode(callback: AsyncCallback<ExposureMode>): void;<br/>getExposureMode(): Promise<ExposureMode>;<br/> 参考代码如下:
setExposureMode(aeMode: ExposureMode, callback: AsyncCallback<void>): void;<br/>setExposureMode(aeMode: ExposureMode): Promise<void>;<br/> ```
cameraInput.close((err) => {
if (err) {
console.error(`Failed to close the cameras. ${err.message}`);
return;
}
console.log('Callback returned with camera closed.');
})
```
getMeteringPoint(callback: AsyncCallback<Point>): void;<br/>getMeteringPoint(): Promise<Point>;<br/> ```
cameraInput.close().then(() => {
console.log('Promise returned with camera closed.');
})
```
setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setMeteringPoint(point: Point): Promise<void>;<br/> 12. 枚举CameraInputErrorCode中新增
getExposureBiasRange(callback: AsyncCallback<Array<number>>): void;<br/>getExposureBiasRange(): Promise<Array<number>>;<br/> 枚举值名称:ERROR_NO_PERMISSION,值:0;
setExposureBias(exposureBias: number, callback: AsyncCallback<void>): void;<br/>setExposureBias(exposureBias: number): Promise<void>;<br/> 枚举值名称:ERROR_DEVICE_PREEMPTED,值:1;
getExposureValue(callback: AsyncCallback<number>): void;<br/>getExposureValue(): Promise<number>;<br/> 枚举值名称:ERROR_DEVICE_DISCONNECTED,值:2;
isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void;<br/>isFocusModeSupported(afMode: FocusMode): Promise<boolean>;<br/> 枚举值名称:ERROR_DEVICE_IN_USE,值:3;
getFocusMode(callback: AsyncCallback<FocusMode>): void;<br/>getFocusMode(): Promise<FocusMode>;<br/> 枚举值名称:ERROR_DRIVER_ERROR,值:4;
setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void;<br/>setFocusMode(afMode: FocusMode): Promise<void>;<br/> 13. 枚举CameraFormat中新增
setFocusPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setFocusPoint(point: Point): Promise<void>;<br/> 枚举值名称:CAMERA_FORMAT_RGBA_8888,值:3;
getFocusPoint(callback: AsyncCallback<Point>): void;<br/>getFocusPoint(): Promise<Point>;<br/> 14. CaptureSession中新增getMeteringPoint(callback: AsyncCallback<Point>): void;以及getMeteringPoint(): Promise<Point>;
getFocalLength(callback: AsyncCallback<number>): void;<br/>getFocalLength(): Promise<number>;<br/> 参考代码如下:
getZoomRatioRange(callback: AsyncCallback<Array<number>>): void;<br/>getZoomRatioRange(): Promise<Array<number>>;<br/> ```
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}`);
})
```
getZoomRatio(callback: AsyncCallback<number>): void;<br/>getZoomRatio(): Promise<number>;<br/> ```
captureSession.getMeteringPoint().then((exposurePoint) => {
console.log(`Promise returned with current exposure point : ${exposurePoint}`);
})
```
setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void;<br/>setZoomRatio(zoomRatio: number): Promise<void>; 15. CaptureSession中新增setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;以及setMeteringPoint(point: Point): Promise<void>;
11. CameraInput中接口on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;调整到CaptureSession中,对应接口on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
参考代码如下: 参考代码如下:
``` ```
captureSession.on('focusStateChange', (focusState) => { const Point1 = {x: 1, y: 1};
console.log(`Focus state : ${focusState}`);
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');
}) })
``` ```
12. 枚举ExposureMode中 ```
const Point2 = {x: 2, y: 2};
captureSession.setMeteringPoint(Point2).then(() => {
console.log('Promise returned with the successful execution of setMeteringPoint');
})
```
枚举值名称:EXPOSURE_MODE_AUTO,初值由默认变更为1; 16. 枚举CaptureSessionErrorCode中新增
枚举值名称:EXPOSURE_MODE_CONTINUOUS_AUTO,初值由默认变更为2; 枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0;
13. 枚举VideoStabilizationMode中 枚举值名称:ERROR_TIMEOUT,值:1;
枚举值名称:LOW,初值由默认变更为1; 17. 新增接口CameraOutput,接口下有release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;方法
枚举值名称:MIDDLE,初值由默认变更为2; 参考代码如下:用previewOutput做示例
枚举值名称:HIGH,初值由默认变更为3; ```
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.');
});
```
枚举值名称:AUTO,初值由默认变更为4; ```
previewOutput.release().then(() => {
console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
})
```
14. CaptureSession中接口addOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),由原来8个接口改变之后只有2个接口 18. PreviewOutput中新增start(callback: AsyncCallback<void>): void;以及start(): Promise<void>;
改变前接口为: 参考代码如下
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>; ```
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.');
})
```
addOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>addOutput(cameraOutput: CameraOutput): Promise<void>; 19. PreviewOutput中新增stop(callback: AsyncCallback<void>): void;以及stop(): Promise<void>;
参考代码如下:以PreviewOutput为例 参考代码如下
``` ```
captureSession.addOutput(previewOutput, (err) => { previewOutput.stop((err) => {
if (err) { if (err) {
console.error(`Failed to add output. ${err.message}`); console.error(`Failed to stop the previewOutput. ${err.message}`);
return; return;
} }
console.log('Callback returned with output added.'); console.log('Callback returned with previewOutput stopped.');
}) })
``` ```
``` ```
captureSession.addOutput(previewOutput).then(() => { previewOutput.stop().then(() => {
console.log('Promise returned with cameraOutput added.'); console.log('Callback returned with previewOutput stopped.');
}) })
``` ```
15. CaptureSession中接口removeOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),由原来8个接口改变之后只有2个接口 20. PhotoCaptureSetting接口
改变前接口为: 属性1:mirror?,类型:boolean;
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>; 21. 枚举PhotoOutputErrorCode中新增
改变后接口为: 枚举值名称:ERROR_DRIVER_ERROR,值:0;
removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(cameraOutput: CameraOutput): Promise<void>; 枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:1;
参考代码如下:以PreviewOutput为例 枚举值名称:ERROR_TIMEOUT,值:2;
``` 22. 枚举VideoOutputErrorCode中新增
captureSession.removeOutput(previewOutput, (err) => {
if (err) { 枚举值名称:ERROR_DRIVER_ERROR,值:0;
console.error(`Failed to remove the CameraOutput instance. ${err.message}`);
return; 23. MetadataOutput中新增on(type: 'error', callback: ErrorCallback<MetadataOutputError>): void;
}
console.log('Callback invoked to indicate that the CameraOutput instance is removed.'); 参考代码如下
});
```
``` ```
captureSession.removeOutput(previewOutput).then(() => { metadataOutput.on('error', (metadataOutputError) => {
console.log('Promise returned to indicate that the CameraOutput instance is removed.'); console.log(`Metadata output error code: ${metadataOutputError.code}`);
}) })
``` ```
16. 枚举MetadataObjectType中 24. MetadataOutputErrorCode枚举
枚举值名称由FACE变更为FACE_DETECTION; 枚举值名称:ERROR_UNKNOWN,值:-1;
17. 接口Camera名称更改为CameraDevice 枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0;
**新增接口** 25. MetadataOutputError接口
1. Profile接口 属性名称:code,值:MetadataOutputErrorCode
属性1:readonly format,类型:CameraFormat; **废弃接口**
属性2:readonly size,类型:Size; 1. CameraInput中废弃接口on(type: 'exposureStateChange', callback: AsyncCallback<ExposureState>): void;
2. FrameRateRange接口 2. previewOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
属性1:readonly min,类型:number; 3. metadataOutput中废弃接口
属性2:readonly max,类型:number; setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<void>): void;<br/>setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>): Promise<void>;
3. VideoProfile接口,继承自Profile 4. metadataOutput中废弃接口
属性:readonly frameRateRange,类型:FrameRateRange; getSupportedMetadataObjectTypes(callback: AsyncCallback<Array<MetadataObjectType>>): void;<br/>getSupportedMetadataObjectTypes(): Promise<Array<MetadataObjectType>>;
4. CameraOutputCapability接口 5. PreviewOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
属性1:readonly previewProfiles,类型:Array<Profile>; 6. PhotoOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
属性2:readonly photoProfiles,类型:Array<Profile>; 7. VideoOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
属性3:readonly videoProfiles,类型:Array<VideoProfile>; 8. CameraInput中废弃接口getCameraId(callback: AsyncCallback<string>): void;以及getCameraId(): Promise<string>;
属性4:readonly supportedMetadataObjectTypes,类型:Array<MetadataObjectType>; 9. CameraInput中废弃接口getExposurePoint(callback: AsyncCallback<Point>): void;以及getExposurePoint(): Promise<Point>;
5. CameraManager中新增 10. CameraInput中废弃接口setExposurePoint(exposurePoint: Point, callback: AsyncCallback<void>): void;以及setExposurePoint(exposurePoint: Point): Promise<void>;
getSupportedOutputCapability(camera: CameraDevice, callback: AsyncCallback<CameraOutputCapability>): void; **接口变更**
getSupportedOutputCapability(camera: CameraDevice): Promise<CameraOutputCapability>; 1. 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>>;
参考代码如下: 参考代码如下:
``` ```
cameraManager.getSupportedCameras().then((cameras) => { cameraManager.getSupportedCameras((err, cameras) => {
let cameraDevice = cameras[0]; if (err) {
cameraManager.getSupportedOutputCapability(cameraDevice, (err, CameraOutputCapability) => { console.error(`Failed to get the cameras. ${err.message}`);
if (err) { return;
console.error(`Failed to get the outputCapability. ${err.message}`); }
return; console.log(`Callback returned with an array of supported cameras: ${cameras.length}`);
}
console.log('Callback returned with an array of supported outputCapability');
})
}) })
``` ```
``` ```
cameraManager.getSupportedCameras().then((cameras) => { cameraManager.getSupportedCameras().then((cameras) => {
let cameraDevice = cameras[0]; console.log(`Promise returned with an array of supported cameras: ${cameras.length}`);
cameraManager.getSupportedOutputCapability(cameraDevice).then((cameraoutputcapability) => {
console.log('Promise returned with an array of supported outputCapability');
})
}) })
``` ```
6. CameraManager中新增isCameraMuted(): boolean; 2. 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>;
参考代码如下: 参考代码如下:
``` ```
let ismuted = cameraManager.isCameraMuted(); 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.');
})
``` ```
7. CameraManager中新增isCameraMuteSupported(): boolean; ```
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<PreviewOutput>): void;以及createPreviewOutput(surfaceId: string): Promise<PreviewOutput>;变更为createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PreviewOutput>): void;createPreviewOutput(profile: Profile, surfaceId: string): Promise<PreviewOutput>;
参考代码如下: 参考代码如下:
``` ```
let ismutesuppotred = cameraManager.isCameraMuteSupported(); 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.');
})
``` ```
8. CameraManager中新增muteCamera(mute: boolean): void; ```
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<PhotoOutput>): void;以及CreatePhotoOutput(surfaceId: string): Promise<PhotoOutput>;变更为createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback<PhotoOutput>): void;和createPhotoOutput(profile: Profile, surfaceId: string): Promise<PhotoOutput>;
参考代码如下:
```
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<VideoOutput>): void;以及createVideoOutput(surfaceId: string): Promise<VideoOutput>;变更为createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback<VideoOutput>): void;和createVideoOutput(profile: VideoProfile, surfaceId: string): Promise<VideoOutput>;
参考代码如下:
```
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<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>;
参考代码如下:
```
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<CaptureSession>): void;以及createCaptureSession(context: Context): Promise<CaptureSession>;改为createCaptureSession(callback: AsyncCallback<CaptureSession>): void;和createCaptureSession(): Promise<CaptureSession>;
参考代码如下: 参考代码如下:
```typescript
cameraManager.createCaptureSession((err, captureSession) => {
if (err) {
console.error(`Failed to create captureSession. ${err.message}`);
return;
}
console.log('Callback returned with captureSession created.');
})
``` ```
let mute = true;
cameraManager.muteCamera(mute); ```
cameraManager.createCaptureSession().then((captureSession) => {
console.log('Promise returned with captureSession created.');
})
``` ```
9. CameraManager中新增on(type: 'cameraMute', callback: AsyncCallback<boolean>): void; 8. CameraStatusInfo接口下属性camera类型由Camera变更为CameraDevice
9. CameraInput中接口on(type: 'error')新增传递参数camera: CameraDevice,因此旧接口on(type: 'error', callback: ErrorCallback<CameraInputError>): void;变更为on(type: 'error', camera: CameraDevice, callback: ErrorCallback<CameraInputError>): void;
参考代码如下: 参考代码如下:
``` ```
cameraManager.on('cameraMute', (err, curMuetd) => { let cameraDevice = cameras[0];
if (err) { cameraInput.on('error', cameraDevice, (cameraInputError) => {
console.error(`Failed to get cameraMute callback. ${err.message}`); console.log(`Camera input error code: ${cameraInputError.code}`);
return;
}
}) })
``` ```
10. CameraInput中以下接口调整到CaptureSession中
10. CameraInput中新增open(callback: AsyncCallback<void>): void;以及open(): Promise<void>; hasFlash(callback: AsyncCallback<boolean>): void;<br/>hasFlash(): Promise<boolean>;<br/>
参考代码如下:
``` isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback<boolean>): void;<br/>isFlashModeSupported(flashMode: FlashMode): Promise<boolean>;<br/>
cameraInput.open((err) => {
if (err) {
console.error(`Failed to open the camera. ${err.message}`);
return;
}
console.log('Callback returned with camera opened.');
})
```
``` getFlashMode(callback: AsyncCallback<FlashMode>): void;<br/>getFlashMode(): Promise<FlashMode>;<br/>
cameraInput.open().then(() => {
console.log('Promise returned with camera opened.');
})
```
setFlashMode(flashMode: FlashMode, callback: AsyncCallback<void>): void;<br/>setFlashMode(flashMode: FlashMode): Promise<void>;<br/>
11. CameraInput中新增close(callback: AsyncCallback<void>): void;以及close(): Promise<void>; 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/>
cameraInput.close((err) => {
if (err) {
console.error(`Failed to close the cameras. ${err.message}`);
return;
}
console.log('Callback returned with camera closed.');
})
```
``` getMeteringPoint(callback: AsyncCallback<Point>): void;<br/>getMeteringPoint(): Promise<Point>;<br/>
cameraInput.close().then(() => {
console.log('Promise returned with camera closed.');
})
```
12. 枚举CameraInputErrorCode中新增 setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setMeteringPoint(point: Point): Promise<void>;<br/>
枚举值名称:ERROR_NO_PERMISSION,值:0; getExposureBiasRange(callback: AsyncCallback<Array<number>>): void;<br/>getExposureBiasRange(): Promise<Array<number>>;<br/>
枚举值名称:ERROR_DEVICE_PREEMPTED,值:1; setExposureBias(exposureBias: number, callback: AsyncCallback<void>): void;<br/>setExposureBias(exposureBias: number): Promise<void>;<br/>
枚举值名称:ERROR_DEVICE_DISCONNECTED,值:2; getExposureValue(callback: AsyncCallback<number>): void;<br/>getExposureValue(): Promise<number>;<br/>
枚举值名称:ERROR_DEVICE_IN_USE,值:3; isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback<boolean>): void;<br/>isFocusModeSupported(afMode: FocusMode): Promise<boolean>;<br/>
枚举值名称:ERROR_DRIVER_ERROR,值:4; getFocusMode(callback: AsyncCallback<FocusMode>): void;<br/>getFocusMode(): Promise<FocusMode>;<br/>
13. 枚举CameraFormat中新增 setFocusMode(afMode: FocusMode, callback: AsyncCallback<void>): void;<br/>setFocusMode(afMode: FocusMode): Promise<void>;<br/>
枚举值名称:CAMERA_FORMAT_RGBA_8888,值:3; setFocusPoint(point: Point, callback: AsyncCallback<void>): void;<br/>setFocusPoint(point: Point): Promise<void>;<br/>
14. CaptureSession中新增getMeteringPoint(callback: AsyncCallback<Point>): void;以及getMeteringPoint(): Promise<Point>; 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/>
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}`);
})
```
``` getZoomRatio(callback: AsyncCallback<number>): void;<br/>getZoomRatio(): Promise<number>;<br/>
captureSession.getMeteringPoint().then((exposurePoint) => {
console.log(`Promise returned with current exposure point : ${exposurePoint}`);
})
```
15. CaptureSession中新增setMeteringPoint(point: Point, callback: AsyncCallback<void>): void;以及setMeteringPoint(point: Point): Promise<void>; setZoomRatio(zoomRatio: number, callback: AsyncCallback<void>): void;<br/>setZoomRatio(zoomRatio: number): Promise<void>;
11. CameraInput中接口on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;调整到CaptureSession中,对应接口on(type: 'focusStateChange', callback: AsyncCallback<FocusState>): void;
参考代码如下: 参考代码如下:
``` ```
const Point1 = {x: 1, y: 1}; captureSession.on('focusStateChange', (focusState) => {
console.log(`Focus state : ${focusState}`);
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');
}) })
``` ```
``` 12. 枚举ExposureMode中
const Point2 = {x: 2, y: 2};
captureSession.setMeteringPoint(Point2).then(() => {
console.log('Promise returned with the successful execution of setMeteringPoint');
})
```
16. 枚举CaptureSessionErrorCode中新增 枚举值名称:EXPOSURE_MODE_AUTO,初值由默认变更为1;
枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0; 枚举值名称:EXPOSURE_MODE_CONTINUOUS_AUTO,初值由默认变更为2;
枚举值名称:ERROR_TIMEOUT,值:1; 13. 枚举VideoStabilizationMode中
17. 新增接口CameraOutput,接口下有release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;方法 枚举值名称:LOW,初值由默认变更为1;
参考代码如下:用previewOutput做示例 枚举值名称:MIDDLE,初值由默认变更为2;
``` 枚举值名称:HIGH,初值由默认变更为3;
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.');
});
```
``` 枚举值名称:AUTO,初值由默认变更为4;
previewOutput.release().then(() => {
console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.');
})
```
18. PreviewOutput中新增start(callback: AsyncCallback<void>): void;以及start(): Promise<void>; 14. CaptureSession中接口addOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),由原来8个接口改变之后只有2个接口
参考代码如下 改变前接口为:
``` 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>;
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.');
})
```
19. PreviewOutput中新增stop(callback: AsyncCallback<void>): void;以及stop(): Promise<void>; addOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>addOutput(cameraOutput: CameraOutput): Promise<void>;
参考代码如下 参考代码如下:以PreviewOutput为例
``` ```
previewOutput.stop((err) => { captureSession.addOutput(previewOutput, (err) => {
if (err) { if (err) {
console.error(`Failed to stop the previewOutput. ${err.message}`); console.error(`Failed to add output. ${err.message}`);
return; return;
} }
console.log('Callback returned with previewOutput stopped.'); console.log('Callback returned with output added.');
}) })
``` ```
``` ```
previewOutput.stop().then(() => { captureSession.addOutput(previewOutput).then(() => {
console.log('Callback returned with previewOutput stopped.'); console.log('Promise returned with cameraOutput added.');
}) })
``` ```
20. PhotoCaptureSetting接口 15. CaptureSession中接口removeOutput参数由原来子类类型(PreviewOutput,PhotoOutput,VideoOutput,MetadataOutput)统一修改为基类类型(CameraOutput),由原来8个接口改变之后只有2个接口
属性1:mirror?,类型:boolean;
21. 枚举PhotoOutputErrorCode中新增
枚举值名称:ERROR_DRIVER_ERROR,值:0;
枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:1; 改变前接口为:
枚举值名称:ERROR_TIMEOUT,值:2; 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>;
22. 枚举VideoOutputErrorCode中新增 改变后接口为:
枚举值名称:ERROR_DRIVER_ERROR,值:0; removeOutput(cameraOutput: CameraOutput, callback: AsyncCallback<void>): void;<br/>removeOutput(cameraOutput: CameraOutput): Promise<void>;
23. MetadataOutput中新增on(type: 'error', callback: ErrorCallback<MetadataOutputError>): void; 参考代码如下:以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.');
});
```
``` ```
metadataOutput.on('error', (metadataOutputError) => { captureSession.removeOutput(previewOutput).then(() => {
console.log(`Metadata output error code: ${metadataOutputError.code}`); console.log('Promise returned to indicate that the CameraOutput instance is removed.');
}) })
``` ```
24. MetadataOutputErrorCode枚举 16. 枚举MetadataObjectType中
枚举值名称:ERROR_UNKNOWN,值:-1;
枚举值名称:ERROR_INSUFFICIENT_RESOURCES,值:0;
25. MetadataOutputError接口
属性名称:code,值:MetadataOutputErrorCode
**接口废弃**
1. CameraInput中废弃接口on(type: 'exposureStateChange', callback: AsyncCallback<ExposureState>): void;
2. previewOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
3. metadataOutput中废弃接口
setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>, callback: AsyncCallback<void>): void;<br/>setCapturingMetadataObjectTypes(metadataObjectTypes: Array<MetadataObjectType>): Promise<void>;
4. metadataOutput中废弃接口
getSupportedMetadataObjectTypes(callback: AsyncCallback<Array<MetadataObjectType>>): void;<br/>getSupportedMetadataObjectTypes(): Promise<Array<MetadataObjectType>>;
5. PreviewOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
6. PhotoOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
7. VideoOutput中废弃接口release(callback: AsyncCallback<void>): void;以及release(): Promise<void>;
8. CameraInput中废弃接口getCameraId(callback: AsyncCallback<string>): void;以及getCameraId(): Promise<string>;
9. CameraInput中废弃接口getExposurePoint(callback: AsyncCallback<Point>): void;以及getExposurePoint(): Promise<Point>; 枚举值名称由FACE变更为FACE_DETECTION;
10. CameraInput中废弃接口setExposurePoint(exposurePoint: Point, callback: AsyncCallback<void>): void;以及setExposurePoint(exposurePoint: Point): Promise<void>; 17. 接口Camera名称更改为CameraDevice
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册