diff --git a/en/application-dev/reference/apis/js-apis-camera.md b/en/application-dev/reference/apis/js-apis-camera.md index 5a88150801a77616a6954139376edead865f55a8..78db0562f97cf687e26c210d870519c829b691ee 100644 --- a/en/application-dev/reference/apis/js-apis-camera.md +++ b/en/application-dev/reference/apis/js-apis-camera.md @@ -20,9 +20,9 @@ Obtains a **CameraManager** instance. This API uses an asynchronous callback to **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------- | ---- | ---------------------------- | -| context | Context | Yes | Application context. | +| Name | Type | Mandatory| Description | +| -------- | ----------------------------------------------- | ---- | ---------------------------------- | +| context | Context | Yes | Application context. | | callback | AsyncCallback<[CameraManager](#cameramanager)\> | Yes | Callback used to return the **CameraManager** instance.| **Example** @@ -30,7 +30,7 @@ Obtains a **CameraManager** instance. This API uses an asynchronous callback to ```js camera.getCameraManager(context, (err, cameraManager) => { if (err) { - console.error(`Failed to get the CameraManager instance ${err.message}`); + console.error('Failed to get the CameraManager instance ${err.message}'); return; } console.log('Callback returned with the CameraManager instance'); @@ -53,8 +53,8 @@ Obtains a **CameraManager** instance. This API uses a promise to return the resu **Return value** -| Type | Description | -| ----------------------------------------- | ----------------------------------- | +| Type | Description | +| ----------------------------------------- | ----------------------------------------- | | Promise<[CameraManager](#cameramanager)\> | Promise used to return the **CameraManager** instance.| **Example** @@ -78,1149 +78,947 @@ Enumerates the camera statuses. | CAMERA_STATUS_AVAILABLE | 2 | The camera is available. | | CAMERA_STATUS_UNAVAILABLE | 3 | The camera is unavailable.| -## Profile -Defines the camera profile. +## CameraPosition + +Enumerates the camera positions. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Type | Read only| Description | -| -------- | ----------------------------- |---- | ------------- | -| format | [CameraFormat](#cameraformat) | Yes | Output format. | -| size | [Size](#size) | Yes | Resolution. | +| Name | Value | Description | +| --------------------------- | ---- | ---------------- | +| CAMERA_POSITION_UNSPECIFIED | 0 | Unspecified position.| +| CAMERA_POSITION_BACK | 1 | Rear camera. | +| CAMERA_POSITION_FRONT | 2 | Front camera. | -## FrameRateRange +## CameraType - Defines the frame rate range. +Enumerates the camera types. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Type | Read only| Description | -| ------------------------- | ------ | ---- | ------------------- | -| min | number | Yes | Minimum rate, in fps. | -| max | number | Yes | Maximum rate, in fps. | +| Name | Value | Description | +| ----------------------- | ---- | ---------------- | +| CAMERA_TYPE_UNSPECIFIED | 0 | Unspecified camera type.| +| CAMERA_TYPE_WIDE_ANGLE | 1 | Wide camera. | +| CAMERA_TYPE_ULTRA_WIDE | 2 | Ultra wide camera. | +| CAMERA_TYPE_TELEPHOTO | 3 | Telephoto camera. | +| CAMERA_TYPE_TRUE_DEPTH | 4 | Camera with depth of field information. | + -## VideoProfile +## ConnectionType -Defines the video profile. +Enumerates the camera connection types. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Type | Read only| Description | -| ------------------------- | ----------------------------------------- | --- |------------ | -| frameRateRanges | [FrameRateRange](#frameraterange) | Yes | Frame rate range. | +| Name | Value | Description | +| ---------------------------- | ---- | ------------- | +| CAMERA_CONNECTION_BUILT_IN | 0 | Built-in camera. | +| CAMERA_CONNECTION_USB_PLUGIN | 1 | Camera connected using USB.| +| CAMERA_CONNECTION_REMOTE | 2 | Remote camera. | -## CameraOutputCapability +## Size -Defines the camera output capability. +Defines the image size that can be used in previewing, photographing, and video recording. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Type | Read only| Description | -| ----------------------------- | -------------------------------------------------- | --- |------------------- | -| previewProfiles | Array<[Profile](#profile)\> | Yes | Supported preview profiles. | -| photoProfiles | Array<[Profile](#profile)\> | Yes | Supported shooting profiles. | -| videoProfiles | Array<[VideoProfile](#videoprofile)\> | Yes | Supported video recording profiles. | -| supportedMetadataObjectTypes | Array<[MetadataObjectType](#metadataobjecttype)\> | Yes | Supported metadata object types.| +| Name | Type | Readable| Writable| Description | +| ------ | ------ | ---- | ---- | ------------ | +| height | string | Yes | Yes | Image height.| +| width | number | Yes | Yes | Image width.| ## CameraManager Implements camera management. Before calling any API in **CameraManager**, you must use **getCameraManager** to obtain a **CameraManager** instance. -### getSupportedCameras +### getCameras -getSupportedCameras(callback: AsyncCallback\>): void +getCameras(callback: AsyncCallback\>): void -Obtains supported cameras. This API uses an asynchronous callback to return the result. +Obtains all cameras supported by the device. This API uses an asynchronous callback to return the array of supported cameras. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------- | ---- | ------------------------------- | -| callback | AsyncCallback\> | Yes | Callback used to return the array of supported cameras.| +| Name | Type | Mandatory| Description | +| -------- | ----------------------------------------- | ---- | ------------------------------------ | +| callback | AsyncCallback\> | Yes | Callback used to return the array of supported cameras.| **Example** ```js -cameraManager.getSupportedCameras((err, cameras) => { +cameraManager.getCameras((err, cameras) => { if (err) { - console.error(`Failed to get the cameras. ${err.message}`); + console.error('Failed to get the cameras. ${err.message}'); return; } - console.log(`Callback returned with an array of supported cameras: ${cameras.length}`); + console.log('Callback returned with an array of supported cameras: ' + cameras.length); }) ``` -### getSupportedCameras +### getCameras -getSupportedCameras(): Promise\> +getCameras(): Promise\> -Obtains supported cameras. This API uses a promise to return the result. +Obtains all cameras supported by the device. This API uses a promise to return the array of supported cameras. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| ----------------------------------------------- | ------------------------- | -| Promise\> | Promise used to return the array of supported cameras.| +| Type | Description | +| ----------------------------------- | ----------------------------- | +| Promise\> | Promise used to return the array of supported cameras.| **Example** ```js -cameraManager.getSupportedCameras().then((cameraArray) => { - console.log(`Promise returned with an array of supported cameras: ${cameraArray.length}`); +cameraManager.getCameras().then((cameraArray) => { + console.log('Promise returned with an array of supported cameras: ' + cameraArray.length); }) ``` -### getSupportedOutputCapability +### createCameraInput + +createCameraInput(cameraId: string, callback: AsyncCallback): void -getSupportedOutputCapability(camera:CameraDevice, callback: AsyncCallback): void +Creates a **CameraInput** instance with the specified camera ID. This API uses an asynchronous callback to return the result. -Obtains the output capability supported by a camera. This API uses an asynchronous callback to return the result. +**Required permissions**: ohos.permission.CAMERA **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ---------------------------------------------------------------- | -- | -------------------------- | -| camera | [CameraDevice](#cameradevice) | Yes| **CameraDevice** object. | -| callback | AsyncCallback<[CameraOutputCapability](#cameraoutputcapability)\> | Yes| Callback used to return the output capability.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------- | ---- | ----------------------------------- | +| cameraId | string | Yes | ID of the target camera. | +| callback | AsyncCallback<[CameraInput](#camerainput)\> | Yes | Callback used to return the **CameraInput** instance.| **Example** ```js -cameraManager.getSupportedOutputCapability(cameraDevice, (err, cameras) => { +cameraManager.createCameraInput(cameraId, (err, cameraInput) => { if (err) { - console.error(`Failed to get the cameras. ${err.message}`); + console.error('Failed to create the CameraInput instance. ${err.message}'); return; } - console.log('Callback returned with an array of supported outputCapability'); + console.log('Callback returned with the CameraInput instance.'); }) ``` -### getSupportedOutputCapability +### createCameraInput + +createCameraInput(cameraId: string): Promise -getSupportedOutputCapability(camera:CameraDevice): Promise +Creates a **CameraInput** instance with the specified camera ID. This API uses a promise to return the result. -Obtains the output capability supported by a camera. This API uses a promise to return the result. +**Required permissions**: ohos.permission.CAMERA **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory | Description | -| -------- | --------------------------------- | ---- | ---------- | -| camera | [CameraDevice](#cameradevice) | Yes | **CameraDevice** object.| +| Name | Type | Mandatory| Description | +| -------- | ------ | ---- | ------------ | +| cameraId | string | Yes | ID of the target camera.| **Return value** -| Type | Description | -| -------------------------------------------------------------- | ----------------------------- | -| Promise<[CameraOutputCapability](#cameraoutputcapability)\> | Promise used to return the output capability.| - +| Type | Description | +| ------------------------------------- | ---------------------------------------- | +| Promise<[CameraInput](#camerainput)\> | Promise used to return the **CameraInput** instance.| **Example** ```js -cameraManager.getSupportedOutputCapability(cameraDevice).then((cameraoutputcapability) => { - console.log('Promise returned with an array of supported outputCapability'); +cameraManager.createCameraInput(cameraId).then((cameraInput) => { + console.log('Promise returned with the CameraInput instance'); }) ``` -### getSupportedMetadataObjectType +### createCameraInput + +createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback): void -getSupportedMetadataObjectType(callback: AsyncCallback\>): void +Creates a **CameraInput** instance with the specified camera position and type. This API uses an asynchronous callback to return the result. -Obtains the metadata object types supported by this camera. This API uses an asynchronous callback to return the result. +**Required permissions**: ohos.permission.CAMERA **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ---------------------------------------------------------------- | -- | -------------------------- | -| callback | AsyncCallback\> | Yes| Callback used to return the metadata object types.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------- | ---- | ----------------------------------- | +| position | [CameraPosition](#cameraposition) | Yes | Camera position. | +| type | [CameraType](#cameratype) | Yes | Camera type. | +| callback | AsyncCallback<[CameraInput](#camerainput)\> | Yes | Callback used to return the **CameraInput** instance.| **Example** ```js -cameraManager.getSupportedMetadataObjectType((err, metadataobject) => { +cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED, (err, cameraInput) => { if (err) { - console.error(`Failed to get the supported metadataObjectType. ${err.message}`); + console.error('Failed to create the CameraInput instance. ${err.message}'); return; } - console.log('Callback returned with an array of supported metadataObjectType.' ); + console.log('Callback returned with the CameraInput instance'); }) ``` -### getSupportedMetadataObjectType +### createCameraInput + +createCameraInput(position: CameraPosition, type: CameraType): Promise -getSupportedMetadataObjectType(camera:CameraDevice): Promise +Creates a **CameraInput** instance with the specified camera position and type. This API uses a promise to return the result. -Obtains the metadata object types supported by this camera. This API uses a promise to return the result. +**Required permissions**: ohos.permission.CAMERA **System capability**: SystemCapability.Multimedia.Camera.Core -**Return value** +**Parameters** -| Type | Description | -| -------------------------------------------------------------- | ----------------------------- | -| Promise\> | Promise used to return the metadata object types.| +| Name | Type | Mandatory| Description | +| -------- | --------------------------------- | ---- | ---------- | +| position | [CameraPosition](#cameraposition) | Yes | Camera position.| +| type | [CameraType](#cameratype) | Yes | Camera type.| + +**Return value** +| Type | Description | +| ------------------------------------- | ---------------------------------------- | +| Promise<[CameraInput](#camerainput)\> | Promise used to return the **CameraInput** instance.| **Example** ```js -cameraManager.getSupportedMetadataObjectType().then((metadataobject) => { - console.log('Promise returned with an array of supported metadataObjectType.' ); +cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED).then((cameraInput) => { + console.log('Promise returned with the CameraInput instance.'); }) ``` -### isCameraMuted +### on('cameraStatus') -isCameraMuted(callback: AsyncCallback): void +on(type: 'cameraStatus', callback: AsyncCallback): void -Checks whether this camera is muted. This API uses an asynchronous callback to return the result. +Listens for camera status changes. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ---------------------------------------- | ---- | ------------------------------------ | -| callback | AsyncCallback | Yes | Callback used to return the result. The value **true** means that the camera is muted, and **false** means the opposite.| +| Name | Type | Mandatory| Description | +| :------- | :---------------------------------------------------- | :--- | :--------------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **`cameraStatus`**, indicating the camera status change event.| +| callback | AsyncCallback<[CameraStatusInfo](#camerastatusinfo)\> | Yes | Callback used to return the camera status change. | **Example** ```js -cameraManager.isCameraMuted((err, status) => { +cameraManager.on('cameraStatus', (err, cameraStatusInfo) => { if (err) { - console.error(`Failed to get the cameraMuted status. ${err.message}`); + console.error('Failed to get cameraStatus callback. ${err.message}'); return; } - console.log('Callback returned with cameraMuted status'); + console.log('camera : ' + cameraStatusInfo.camera.cameraId); + console.log('status: ' + cameraStatusInfo.status); }) ``` -### isCameraMuted - -isCameraMuted(): Promise +## Camera -Checks whether this camera is muted. This API uses a promise to return the result. +After **[camera.getCameraManager](#cameragetcameramanager)** is called, a camera instance is returned, with camera-related metadata such as **cameraId**, **cameraPosition**, **cameraType**, and **connectionType**. **System capability**: SystemCapability.Multimedia.Camera.Core -**Return value** - -| Type | Description | -| ------------------------------------ | --------------------------------------------- | -| Promise | Promise used to return the result. The value **true** means that the camera is muted, and **false** means the opposite. | - +| Name | Type | Read only| Description | +| -------------- | --------------------------------- | ---- | -------------- | +| cameraId | string | Yes | Camera ID. | +| cameraPosition | [CameraPosition](#cameraposition) | Yes | Camera position. | +| cameraType | [CameraType](#cameratype) | Yes | Camera type. | +| connectionType | [ConnectionType](#connectiontype) | Yes | Camera connection type.| **Example** ```js -cameraManager.isCameraMuted().then((status) => { - console.log('Promise returned with the status whether camera is muted.'); -}) +async function getCameraInfo("cameraId") { + var cameraManager = await camera.getCameraManager(context); + var cameras = await cameraManager.getCameras(); + var cameraObj = cameras[0]; + var cameraId = cameraObj.cameraId; + var cameraPosition = cameraObj.cameraPosition; + var cameraType = cameraObj.cameraType; + var connectionType = cameraObj.connectionType; +} ``` -### isCameraMuteSupported +## CameraStatusInfo + +Describes the camera status information. + +**System capability**: SystemCapability.Multimedia.Camera.Core -isCameraMuteSupported(callback: AsyncCallback): void +| Name | Type | Description | +| ------ | ----------------------------- | ---------- | +| camera | [Camera](#camera) | Camera object.| +| status | [CameraStatus](#camerastatus) | Camera status.| -Checks whether this camera can be muted. This API uses an asynchronous callback to return the result. -This is a system API. +## CameraInput -**Required permissions**: ohos.permission.CAMERA +Implements a **CameraInput** instance. Before calling any API in **CameraInput**, you must create a **CameraInput** instance. + +### getCameraId + +getCameraId(callback: AsyncCallback\): void + +Obtains the camera ID based on which this **CameraInput** instance is created. This API uses an asynchronous callback to return the camera ID. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------------------------- | ---- | ------------------------------------ | -| callback | AsyncCallback | Yes | Callback used to return the result. The value **true** means that the camera can be muted, and **false** means the opposite. | +| Name | Type | Mandatory| Description | +| -------- | ---------------------- | ---- | -------------------------- | +| callback | AsyncCallback | Yes | Callback used to return the camera ID.| **Example** ```js -cameraManager.isCameraMuteSupported((err, status) => { +cameraInput.getCameraId((err, cameraId) => { if (err) { - console.error(`Failed to get the cameraMuteSupported. ${err.message}`); + console.error('Failed to get the camera ID. ${err.message}'); return; } - console.log('Callback returned with the status whether cameraMuteSupported.'); + console.log('Callback returned with the camera ID: ' + cameraId); }) ``` -### isCameraMuteSupported +### getCameraId -isCameraMuteSupported(): Promise +getCameraId(): Promise -Checks whether this camera can be muted. This API uses a promise to return the result. - -This is a system API. - -**Required permissions**: ohos.permission.CAMERA +Obtains the camera ID based on which this **CameraInput** instance is created. This API uses a promise to return the camera ID. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| --------------------- | ----------------------------- | -| Promise | Promise used to return the result. The value **true** means that the camera can be muted, and **false** means the opposite.| - +| Type | Description | +| ---------------- | ----------------------------- | +| Promise | Promise used to return the camera ID.| **Example** ```js -cameraManager.isCameraMuteSupported().then((status) => { - console.log('Promise returned with the status whether cameraMuteSupported.'); +cameraInput.getCameraId().then((cameraId) => { + console.log('Promise returned with the camera ID:' + cameraId); }) ``` -### muteCamera -muteCamera(mute:boolean, callback: AsyncCallback): void - -Mutes this camera. This API uses an asynchronous callback to return the result. +### hasFlash -This is a system API. +hasFlash(callback: AsyncCallback): void -**Required permissions**: ohos.permission.CAMERA +Checks whether the device has flash. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory | Description | -| -------- | ----------------------------------------- | ---- | ------------------------------------ | -| mute | boolean | Yes | Whether to mute the camera. The value **true** means to mute the camera, and **false** means the opposite. | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | ----------------------- | ---- | -------------------------------------- | +| callback | AsyncCallback | Yes | Callback used to return the flash support status. The value **true** means that the device has flash.| **Example** ```js -cameraManager.muteCamera(isMuted, (err) => { +cameraInput.hasFlash((err, status) => { if (err) { - console.error(`Failed to mute the camera. ${err.message}`); + console.error('Failed to check whether the device has flash light. ${err.message}'); return; } - console.log('Callback returned with the muteCamera.'); + console.log('Callback returned with flash light support status: ' + status); }) ``` -### muteCamera - -muteCamera(mute:boolean): Promise - -Mutes this camera. This API uses a promise to return the result. +### hasFlash -This is a system API. +hasFlash(): Promise -**Required permissions**: ohos.permission.CAMERA +Checks whether the device has flash. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------- | ---- | ------------ | -| mute | boolean | Yes | Whether to mute the camera. The value **true** means to mute the camera, and **false** means the opposite. | - **Return value** -| Type | Description | -| ----------------------------------- | ----------------------------- | -| Promise | Promise used to return the result.| - +| Type | Description | +| ----------------- | ------------------------------------------------------- | +| Promise | Promise used to return the flash support status. The value **true** means that the device has flash.| **Example** -```js -cameraManager.muteCamera(isMuted).then(() => { - console.log('Promise returned muteCamera.'); +```js +cameraInput.hasFlash().then((status) => { + console.log('Promise returned with the flash light support status:' + status); }) ``` -### createCameraInput - -createCameraInput(camera: CameraDevice, callback: AsyncCallback): void - -Creates a **CameraInput** instance with the specified **CameraDevice** object. This API uses an asynchronous callback to return the result. +### isFlashModeSupported -This is a system API. +isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void -**Required permissions**: ohos.permission.CAMERA +Checks whether a specified flash mode is supported. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------- | ---- | --------------------------------- | -| camera | [CameraDevice](#cameradevice) | Yes | **CameraDevice** object. | -| callback | AsyncCallback<[CameraInput](#camerainput)\> | Yes | Callback used to return the **CameraInput** instance. | +| Name | Type | Mandatory| Description | +| --------- | ----------------------- | ---- | ---------------------------------------- | +| flashMode | [FlashMode](#flashmode) | Yes | Flash mode. | +| callback | AsyncCallback | Yes | Callback used to return the flash mode support status. The value **true** means that the flash mode is supported, and **false** means the opposite.| **Example** ```js -cameraManager.createCameraInput(camera, (err, cameraInput) => { +cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO, (err, status) => { if (err) { - console.error(`Failed to create the CameraInput instance. ${err.message}`); + console.error('Failed to check whether the flash mode is supported. ${err.message}'); return; } - console.log('Callback returned with the CameraInput instance.'); + console.log('Callback returned with the flash mode support status: ' + status); }) ``` -### createCameraInput - -createCameraInput(camera: CameraDevice): Promise - -Creates a **CameraInput** instance with the specified **CameraDevice** object. This API uses a promise to return the result. +### isFlashModeSupported -This is a system API. +isFlashModeSupported(flashMode: FlashMode): Promise -**Required permissions**: ohos.permission.CAMERA +Checks whether a specified flash mode is supported. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------- | ---- | ---------- | -| camera | [CameraDevice](#cameradevice) | Yes | **CameraDevice** object.| +| Name | Type | Mandatory| Description | +| --------- | ----------------------- | ---- | ---------------- | +| flashMode | [FlashMode](#flashmode) | Yes | Flash mode.| **Return value** -| Type | Description | -| ------------------------------------- | ------------------------------------ | -| Promise<[CameraInput](#camerainput)\> | Promise used to return the **CameraInput** instance.| +| Type | Description | +| ----------------- | ------------------------------------------------------------ | +| Promise | Promise used to return the flash mode support status. The value **true** means that the flash mode is supported, and **false** means the opposite.| **Example** ```js -cameraManager.createCameraInput(camera).then((cameraInput) => { - console.log('Promise returned with the CameraInput instance'); +cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO).then((status) => { + console.log('Promise returned with flash mode support status.' + status); }) ``` -### createCameraInput +### setFlashMode -createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback): void +setFlashMode(flashMode: FlashMode, callback: AsyncCallback): void -Creates a **CameraInput** instance with the specified camera position and type. This API uses an asynchronous callback to return the result. +Sets the flash mode. This API uses an asynchronous callback to return the result. -This is a system API. +Before the setting, do the following checks: -**Required permissions**: ohos.permission.CAMERA +1. Use **[hasFlash](#hasflash)** to check whether the device has flash. +2. Use **[isFlashModeSupported](#isflashmodesupported)** to check whether the device supports the flash mode. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------- | ---- | --------------------------------- | -| position | [CameraPosition](#cameraposition) | Yes | Camera position. | -| type | [CameraType](#cameratype) | Yes | Camera type. | -| callback | AsyncCallback<[CameraInput](#camerainput)\> | Yes | Callback used to return the **CameraInput** instance. | +| Name | Type | Mandatory| Description | +| --------- | ----------------------- | ---- | ------------------------ | +| flashMode | [FlashMode](#flashmode) | Yes | Flash mode. | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED, (err, cameraInput) => { +cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO, (err) => { if (err) { - console.error(`Failed to create the CameraInput instance. ${err.message}`); + console.error('Failed to set the flash mode ${err.message}'); return; } - console.log('Callback returned with the CameraInput instance'); + console.log('Callback returned with the successful execution of setFlashMode.'); }) ``` -### createCameraInput +### setFlashMode -createCameraInput(position: CameraPosition, type:CameraType ): Promise +setFlashMode(flashMode: FlashMode): Promise -Creates a **CameraInput** instance with the specified camera position and type. This API uses a promise to return the result. +Sets a flash mode. This API uses a promise to return the result. -This is a system API. +Before the setting, do the following checks: -**Required permissions**: ohos.permission.CAMERA +1. Use **[hasFlash](#hasflash)** to check whether the device has flash. +2. Use **[isFlashModeSupported](#isflashmodesupported)** to check whether the device supports the flash mode. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------------------- | ---- | ------------ | -| position | [CameraPosition](#cameraposition) | Yes | Camera position. | -| type | [CameraType](#cameratype) | Yes | Camera type. | +| Name | Type | Mandatory| Description | +| --------- | ----------------------- | ---- | ---------------- | +| flashMode | [FlashMode](#flashmode) | Yes | Flash mode.| **Return value** -| Type | Description | -| ------------------------------------- | ------------------------------------ | -| Promise<[CameraInput](#camerainput)\> | Promise used to return the **CameraInput** instance.| +| Type | Description | +| -------------- | --------------------------- | +| Promise| Promise used to return the result.| **Example** ```js -cameraManager.createCameraInput(camera.CameraPosition.CAMERA_POSITION_BACK, camera.CameraType.CAMERA_TYPE_UNSPECIFIED).then((cameraInput) => { - console.log('Promise returned with the CameraInput instance'); +cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO).then(() => { + console.log('Promise returned with the successful execution of setFlashMode.'); }) ``` -### createPreviewOutput +### getFlashMode -createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void +getFlashMode(callback: AsyncCallback): void -Creates a **PreviewOutput** instance. This API uses an asynchronous callback to return the result. +Obtains the flash mode in use. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------- | ---- | ------------------------------- | -| profile | [Profile](#profile) | Yes | Supported preview profile. | -| surfaceId| string | Yes | Surface ID, which is obtained from **[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)** or **[ImageReceiver](js-apis-image.md#imagereceiver9)**.| -| callback | AsyncCallback<[PreviewOutput](#previewoutput)\> | Yes | Callback used to return the **PreviewOutput** instance.| +| Name | Type | Mandatory| Description | +| -------- | --------------------------------------- | ---- | ---------------------------------------- | +| callback | AsyncCallback<[FlashMode](#flashmode)\> | Yes | Callback used to return the flash mode.| **Example** ```js -cameraManager.createPreviewOutput(profile, surfaceId, (err, previewoutput) => { +cameraInput.getFlashMode((err, flashMode) => { if (err) { - console.error(`Failed to gcreate previewOutput. ${err.message}`); + console.error('Failed to get the flash mode ${err.message}'); return; } - console.log('Callback returned with previewOutput created.'); + console.log('Callback returned with current flash mode: ' + flashMode); }) ``` -### createPreviewOutput +### getFlashMode -createPreviewOutput(profile: Profile, surfaceId: string): Promise +getFlashMode(): Promise -Creates a **PreviewOutput** instance. This API uses a promise to return the result. +Obtains the flash mode in use. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ---------------------------------| ---- | ----------------- | -| profile | [Profile](#profile) | Yes | Supported preview profile. | -| surfaceId| string | Yes | Surface ID, which is obtained from **[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)** or **[ImageReceiver](js-apis-image.md#imagereceiver9)**.| - **Return value** -| Type | Description | -| ---------------------------------------- | ---------------------------------------- | -| Promise<[PreviewOutput](#previewoutput)\> | Promise used to return the **PreviewOutput** instance. | +| Type | Description | +| --------------------------------- | --------------------------------------- | +| Promise<[FlashMode](#flashmode)\> | Promise used to return the flash mode.| **Example** ```js -cameraManager.createPreviewOutput(profile, surfaceId).then((previewoutput) => { - console.log('Promise returned with previewOutput created.'); +cameraInput.getFlashMode().then((flashMode) => { + console.log('Promise returned with current flash mode : ' + flashMode); }) ``` -### createDeferredPreviewOutput +### isFocusModeSupported -createDeferredPreviewOutput(profile: Profile, callback: AsyncCallback): void +isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void -Creates a **PreviewOutput** instance without a surface ID. This API uses an asynchronous callback to return the result. +Checks whether a specified focus mode is supported. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------- | ---- | --------------------------------- | -| profile | [Profile](#profile) | Yes | Supported preview profile. | -| callback | AsyncCallback<[PreviewOutput](#previewoutput)\> | Yes | Callback used to return the **PreviewOutput** instance. | +| Name | Type | Mandatory| Description | +| -------- | ----------------------- | ---- | -------------------------------------- | +| afMode | [FocusMode](#focusmode) | Yes | Focus mode. | +| callback | AsyncCallback | Yes | Callback used to return the focus mode support status. The value **true** means that the focus mode is supported, and **false** means the opposite.| **Example** ```js -cameraManager.createDeferredPreviewOutput(profile, (err, previewoutput) => { +cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO, (err, status) => { if (err) { - console.error(`Failed to create deferredPreviewOutput. ${err.message}`); + console.error('Failed to check whether the focus mode is supported. ${err.message}'); return; } - console.log('Callback returned with deferredPreviewOutput created.'); + console.log('Callback returned with the focus mode support status: ' + status); }) ``` -### createDeferredPreviewOutput +### isFocusModeSupported -createDeferredPreviewOutput(profile: Profile): Promise +isFocusModeSupported(afMode: FocusMode): Promise -Creates a **PreviewOutput** instance without a surface ID. This API uses a promise to return the result. +Checks whether a specified focus mode is supported. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory | Description | -| -------- | ---------------------------------| ---- | ---------- | -| profile | [Profile](#profile) | Yes | Supported preview profile. | +| Name | Type | Mandatory| Description | +| ------ | ----------------------- | ---- | ---------------- | +| afMode | [FocusMode](#focusmode) | Yes | Focus mode.| **Return value** -| Type | Description | -| ----------------------------------------- | --------------------------------------- | -| Promise<[PreviewOutput](#previewoutput)\> | Promise used to return the **PreviewOutput** instance.| +| Type | Description | +| ----------------- | ----------------------------------------------------------- | +| Promise | Promise used to return the focus mode support status. The value **true** means that the focus mode is supported, and **false** means the opposite.| **Example** ```js -cameraManager.createDeferredPreviewOutput(profile).then((previewoutput) => { - console.log('Promise returned with DefeerredPreviewOutput created.'); +cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO).then((status) => { + console.log('Promise returned with focus mode support status.' + status); }) ``` -### createPhotoOutput +### setFocusMode -createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void +setFocusMode(afMode: FocusMode, callback: AsyncCallback): void -Creates a **PhotoOutput** instance. This API uses an asynchronous callback to return the result. +Sets a focus mode. This API uses an asynchronous callback to return the result. + +Before the setting, use **[isFocusModeSupported](#isfocusmodesupported)** to check whether the focus mode is supported. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------- | ---- | ----------------------------------- | -| profile | [Profile](#profile) | Yes | Supported shooting profile. | -| surfaceId| string | Yes | Surface ID, which is obtained from **[ImageReceiver](js-apis-image.md#imagereceiver9)**.| -| callback | AsyncCallback<[PhotoOutput](#photooutput)\> | Yes | Callback used to return the **PhotoOutput** instance. | +| Name | Type | Mandatory| Description | +| -------- | ----------------------- | ---- | ------------------------ | +| afMode | [FocusMode](#focusmode) | Yes | Focus mode. | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -cameraManager.createPhotoOutput(profile, surfaceId, (err, photooutput) => { +cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO, (err) => { if (err) { - console.error(`Failed to create photoOutput. ${err.message}`); + console.error('Failed to set the focus mode ${err.message}'); return; } - console.log('Callback returned with photoOutput created.'); + console.log('Callback returned with the successful execution of setFocusMode.'); }) ``` -### createPhotoOutput +### setFocusMode + +setFocusMode(afMode: FocusMode): Promise -createPhotoOutput(profile: Profile, surfaceId: string): Promise +Sets a focus mode. This API uses a promise to return the result. -Creates a **PhotoOutput** instance. This API uses a promise to return the result. +Before the setting, use **[isFocusModeSupported](#isfocusmodesupported)** to check whether the focus mode is supported. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ---------------------------------| ---- | ----------- | -| profile | [Profile](#profile) | Yes | Supported shooting profile. | -| surfaceId| string | Yes | Surface ID, which is obtained from **[ImageReceiver](js-apis-image.md#imagereceiver9)**.| +| Name | Type | Mandatory| Description | +| ------ | ----------------------- | ---- | ---------------- | +| afMode | [FocusMode](#focusmode) | Yes | Focus mode.| **Return value** -| Type | Description | -| ------------------------------------- | -------------------------------------- | -| Promise<[PhotoOutput](#photooutput)\> | Promise used to return the **PhotoOutput** instance. | +| Type | Description | +| -------------- | --------------------------- | +| Promise| Promise used to return the result.| **Example** ```js -cameraManager.createPhotoOutput(profile, surfaceId).then((photooutput) => { - console.log('Promise returned with photoOutput created.'); +cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO).then(() => { + console.log('Promise returned with the successful execution of setFocusMode.'); }) ``` -### createVideoOutput +### getFocusMode -createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback): void +getFocusMode(callback: AsyncCallback): void -Creates a **VideoOutput** instance. This API uses an asynchronous callback to return the result. +Obtains the focus mode in use. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------- | ---- | ------------------------------ | -| profile | [VideoProfile](#videoprofile) | Yes | Supported video recording profile. | -| surfaceId| string | Yes | Surface ID, which is obtained from **[VideoRecorder](js-apis-media.md#videorecorder9)**.| -| callback | AsyncCallback<[VideoOutput](#videooutput)\> | Yes | Callback used to return the **VideoOutput** instance.| +| Name | Type | Mandatory| Description | +| -------- | --------------------------------------- | ---- | -------------------------------------- | +| callback | AsyncCallback<[FocusMode](#focusmode)\> | Yes | Callback used to return the focus mode.| **Example** ```js -cameraManager.createVideoOutput(profile, surfaceId, (err, videooutput) => { +cameraInput.getFocusMode((err, afMode) => { if (err) { - console.error(`Failed to create videoOutput. ${err.message}`); + console.error('Failed to get the focus mode ${err.message}'); return; } - console.log('Callback returned with an array of supported outputCapability' ); + console.log('Callback returned with current focus mode: ' + afMode); }) ``` -### createVideoOutput +### getFocusMode -createVideoOutput(profile: VideoProfile, surfaceId: string): Promise +getFocusMode(): Promise -Creates a **VideoOutput** instance. This API uses a promise to return the result. +Obtains the focus mode in use. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ---------------------------------| ---- | ---------- | -| profile | [VideoProfile](#videoprofile) | Yes | Supported video recording profile. | -| surfaceId| string | Yes | Surface ID, which is obtained from **[VideoRecorder](js-apis-media.md#videorecorder9)**.| - **Return value** -| Type | Description | -| ------------------------------------- | -------------------------------------- | -| Promise<[VideoOutput](#videooutput)\> | Promise used to return the **VideoOutput** instance. | +| Type | Description | +| ------------------- | ------------------------------------- | +| Promise | Promise used to return the focus mode.| **Example** ```js -cameraManager.createVideoOutput(profile, surfaceId).then((videooutput) => { - console.log('Promise returned with videoOutput created.'); +cameraInput.getFocusMode().then((afMode) => { + console.log('Promise returned with current focus mode : ' + afMode); }) ``` -### createMetadataOutput +### getZoomRatioRange -createMetadataOutput(metadataObjectTypes: Array, callback: AsyncCallback): void +getZoomRatioRange\(callback: AsyncCallback\>\): void -Creates a **MetadataOutput** instance. This API uses an asynchronous callback to return the result. +Obtains the zoom ratio range. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------------------- | -------------------------------------------------- | --- | ---------------------------- | -| metadataObjectTypes | Array<[MetadataObjectType](#metadataobjecttype)\> | Yes | Supported metadata object types. | -| callback | AsyncCallback<[MetadataOutput](#metadataoutput)\> | Yes | Callback used to return the **MetadataOutput** instance. | +| Name | Type | Mandatory| Description | +| -------- | ------------------------------ | ---- | ------------------------ | +| callback | AsyncCallback\> | Yes | Callback used to return the result.| **Example** ```js -cameraManager.createMetadataOutput(metadataObjectTypes, (err, metadataoutput) => { +cameraInput.getZoomRatioRange((err, zoomRatioRange) => { if (err) { - console.error(`Failed to create metadataOutput. ${err.message}`); + console.error('Failed to get the zoom ratio range. ${err.message}'); return; } - console.log('Callback returned with metadataOutput created.'); + console.log('Callback returned with zoom ratio range: ' + zoomRatioRange.length); }) ``` -### createMetadataOutput +### getZoomRatioRange -createMetadataOutput(metadataObjectTypes: Array): Promise +getZoomRatioRange\(\): Promise\> -Creates a **MetadataOutput** instance. This API uses a promise to return the result. +Obtains the zoom ratio range. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -**Parameters** - -| Name | Type | Mandatory| Description | -| -------------------- | -------------------------------------------------- | --- | -------------- | -| metadataObjectTypes | Array<[MetadataObjectType](#metadataobjecttype)\> | Yes | Supported metadata object types.| - **Return value** -| Type | Description | -| ------------------------------------------ | ----------------------------------------- | -| Promise<[MetadataOutput](#metadataoutput)\> | Promise used to return the **MetadataOutput** instance.| +| Type | Description | +| ------------------------ | ------------------------------------------- | +| Promise\> | Promise used to return the zoom ratio range.| **Example** ```js -cameraManager.createMetadataOutput(metadataObjectTypes).then((metadataoutput) => { - console.log('Promise returned with metadataOutput created.'); +cameraInput.getZoomRatioRange().then((zoomRatioRange) => { + console.log('Promise returned with zoom ratio range: ' + zoomRatioRange.length); }) ``` -### createCaptureSession +### setZoomRatio -createCaptureSession(callback: AsyncCallback): void +setZoomRatio(zoomRatio: number, callback: AsyncCallback): void -Creates a **CaptureSession** instance. This API uses an asynchronous callback to return the result. +Sets a zoom ratio. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory | Description | -| -------------------- | ----------------------------------------- | ----------- | ---------------------------- | -| callback | AsyncCallback<[CaptureSession](#capturesession)\> | Yes | Callback used to return the **CaptureSession** instance.| +| Name | Type | Mandatory| Description | +| --------- | -------------------- | ---- | ------------------------ | +| zoomRatio | number | Yes | Zoom ratio. | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -cameraManager.createCaptureSession((err, capturesession) => { +cameraInput.setZoomRatio(1, (err) => { if (err) { - console.error(`Failed to create captureSession. ${err.message}`); + console.error('Failed to set the zoom ratio value ${err.message}'); return; } - console.log('Callback returned with captureSession created.'); -}) -``` - -### createCaptureSession - -createCaptureSession(): Promise - -Creates a **CaptureSession** instance. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ------------------------------------------- | ---------------------------------------- | -| Promise<[CaptureSession](#capturesession)\> | Promise used to return the **CaptureSession** instance.| - -**Example** - -```js -cameraManager.createCaptureSession().then((capturesession) => { - console.log('Promise returned with captureSession created.'); + console.log('Callback returned with the successful execution of setZoomRatio.'); }) ``` -### on('cameraStatus') +### setZoomRatio -on(type: 'cameraStatus', callback: AsyncCallback): void +setZoomRatio(zoomRatio: number): Promise -Listens for camera status changes. This API uses an asynchronous callback to return the result. +Sets a zoom ratio. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------- | ---- | --------- | -| type | string | Yes | Event type. The value is fixed at **'cameraStatus'**, indicating the camera status change event.| -| callback | AsyncCallback<[CameraStatusInfo](#camerastatusinfo)\> | Yes | Callback used to return the camera status change. | - -**Example** - -```js -cameraManager.on('cameraStatus', (err, cameraStatusInfo) => { - if (err) { - console.error(`Failed to get cameraStatus callback. ${err.message}`); - return; - } - console.log(`camera : ${cameraStatusInfo.camera.cameraId}`); - console.log(`status: ${cameraStatusInfo.status}`); -}) -``` - -### on('cameraMute') - -on(type: 'cameraMute', callback: AsyncCallback): void - -Listens for camera mute status changes. This API uses an asynchronous callback to return the result. - -This is a system API. - -**Required permissions**: ohos.permission.CAMERA - -**System capability**: SystemCapability.Multimedia.Camera.Core +| Name | Type | Mandatory| Description | +| --------- | ------ | ---- | ------------ | +| zoomRatio | number | Yes | Zoom ratio.| -**Parameters** +**Return value** -| Name | Type | Mandatory| Description | -| -------- | --------------------------------------- | ---- | ------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'cameraMute'**, indicating the camera mute status change event.| -| callback | AsyncCallback | Yes | Callback used to return the camera mute status. | +| Type | Description | +| -------------- | --------------------------- | +| Promise| Promise used to return the result.| **Example** ```js -cameraManager.on('cameraMute', (err, status) => { - if (err) { - console.error(`Failed to get cameraMute callback. ${err.message}`); - return; - } - console.log(`status: ${status}`); +cameraInput.setZoomRatio(1).then(() => { + console.log('Promise returned with the successful execution of setZoomRatio.'); }) ``` -## CameraStatusInfo - -Describes the camera status information. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Type | Description | -| ------ | ----------------------------- | ---------- | -| camera | [CameraDevice](#cameradevice) | Camera object.| -| status | [CameraStatus](#camerastatus) | Camera status.| - -## CameraPosition - -Enumerates the camera positions. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| --------------------------- | ---- | -------------- | -| CAMERA_POSITION_UNSPECIFIED | 0 | Unspecified position. | -| CAMERA_POSITION_BACK | 1 | Rear camera. | -| CAMERA_POSITION_FRONT | 2 | Front camera. | - -## CameraType - -Enumerates the camera types. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| ----------------------- | ---- | -------------- | -| CAMERA_TYPE_UNSPECIFIED | 0 | Unspecified camera type. | -| CAMERA_TYPE_WIDE_ANGLE | 1 | Wide camera. | -| CAMERA_TYPE_ULTRA_WIDE | 2 | Ultra wide camera. | -| CAMERA_TYPE_TELEPHOTO | 3 | Telephoto camera. | -| CAMERA_TYPE_TRUE_DEPTH | 4 | Camera with depth of field information.| - -## ConnectionType - -Enumerates the camera connection types. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| ---------------------------- | ---- | ------------- | -| CAMERA_CONNECTION_BUILT_IN | 0 | Built-in camera. | -| CAMERA_CONNECTION_USB_PLUGIN | 1 | Camera connected using USB.| -| CAMERA_CONNECTION_REMOTE | 2 | Remote camera.| - -## CameraDevice - -Defines the camera device information. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Type | Read only| Description | -| -------------- | --------------------------------- | ---- | ---------- | -| cameraId | string | Yes | **CameraDevice** object.| -| cameraPosition | [CameraPosition](#cameraposition) | Yes | Camera position. | -| cameraType | [CameraType](#cameratype) | Yes | Camera type. | -| connectionType | [ConnectionType](#connectiontype) | Yes | Camera connection type.| - -**Example** - -```js -async function getCameraInfo("cameraId") { - let cameraManager = await camera.getCameraManager(context); - let cameras = await cameraManager.getSupportedCameras(); - let cameraObj = cameras[0]; - let cameraId = cameraObj.cameraId; - let cameraPosition = cameraObj.cameraPosition; - let cameraType = cameraObj.cameraType; - let connectionType = cameraObj.connectionType; -} -``` - -## Size - -Enumerates the camera output capability. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Type | Readable| Writable| Description | -| ------ | ------ | ---- | ---- | ------------ | -| height | number | Yes | Yes | Image height, in pixels.| -| width | number | Yes | Yes | Image width, in pixels.| - -## Point - -Enumerates the point coordinates, which are used for focus and exposure configuration. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Type | Mandatory | Description | -| ------ | ------ | ---- | ------------ | -| x | number | Yes | X coordinate of a point. | -| y | number | Yes | Y coordinate of a point. | - -## CameraFormat - -Enumerates the camera output formats. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Default Value | Description | -| ----------------------- | --------- | ------------ | -| CAMERA_FORMAT_YUV_420_SP| 1003 | YUV 420 SP image. | -| CAMERA_FORMAT_JPEG | 2000 | JPEG image. | - -## CameraInput - -Provides camera information used in **[CaptureSession](#capturesession)**. - -### open +### getZoomRatio -open\(callback: AsyncCallback\): void +getZoomRatio(callback: AsyncCallback): void -Opens this camera. This API uses an asynchronous callback to return the result. +Obtains the zoom ratio in use. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | ---------------------- | ---- | ------------------------ | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -cameraInput.open((err) => { +cameraInput.getZoomRatio((err, zoomRatio) => { if (err) { - console.error(`Failed to open the camera. ${err.message}`); + console.error('Failed to get the zoom ratio ${err.message}'); return; } - console.log('Callback returned with camera opened.'); + console.log('Callback returned with current zoom ratio: ' + zoomRatio); }) ``` -### open +### getZoomRatio -open(): Promise +getZoomRatio(): Promise -Opens this camera. This API uses a promise to return the result. +Obtains the zoom ratio in use. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| +| Type | Description | +| ---------------- | --------------------------- | +| Promise | Promise used to return the zoom ratio.| **Example** ```js -cameraInput.open().then(() => { - console.log('Promise returned with camera opened.'); +cameraInput.getZoomRatio().then((zoomRatio) => { + console.log('Promise returned with current zoom ratio : ' + zoomRatio); }) ``` -### close +### release -close\(callback: AsyncCallback\): void +release\(callback: AsyncCallback\): void -Closes this camera. This API uses an asynchronous callback to return the result. +Releases this **CameraInput** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | | callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -cameraInput.close((err) => { +cameraInput.release((err) => { if (err) { - console.error(`Failed to close the cameras. ${err.message}`); + console.error('Failed to release the CameraInput instance ${err.message}'); return; } - console.log('Callback returned with camera closed.'); -}) + console.log('Callback invoked to indicate that the CameraInput instance is released successfully.'); +}); ``` -### close +### release -close(): Promise +release(): Promise -Closes this camera. This API uses a promise to return the result. +Releases this **CameraInput** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| -------------- | ----------------------- | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** ```js -cameraInput.close().then(() => { - console.log('Promise returned with camera closed.'); +cameraInput.release().then(() => { + console.log('Promise returned to indicate that the CameraInput instance is released successfully.'); }) ``` -### release +### on('focusStateChange') -release\(callback: AsyncCallback\): void +on(type: 'focusStateChange', callback: AsyncCallback): void -Releases this camera. This API uses an asynchronous callback to return the result. +Listens for focus state changes. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -cameraInput.release((err) => { - if (err) { - console.error(`Failed to release the CameraInput instance ${err.message}`); - return; - } - console.log('Callback invoked to indicate that the CameraInput instance is released successfully.'); -}); -``` - -### release - -release(): Promise - -Releases this camera. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| +| Name | Type | Mandatory| Description | +| :------- | :---------------------------------------- | :--- | :------------------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'focusStateChange'**, indicating the focus state change event.| +| callback | AsyncCallback<[FocusState](#focusstate)\> | Yes | Callback used to return the focus state change. | **Example** ```js -cameraInput.release().then(() => { - console.log('Promise returned to indicate that the CameraInput instance is released successfully.'); +cameraInput.on('focusStateChange', (focusState) => { + console.log('Focus state : ' + focusState); }) ``` @@ -1234,42 +1032,37 @@ Listens for **CameraInput** errors. This API uses a callback to return the resul **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------------------- | ---- | ------------------------------------------- | +| Name | Type | Mandatory| Description | +| :------- | :------------------------------- | :--- | :----------------------------------------------- | | type | string | Yes | Event type. The value is fixed at **'error'**, indicating the camera input error event.| -| callback | ErrorCallback<[CameraInputError](#camerainputerror)\> | Yes | Callback used to return the result. | +| callback | ErrorCallback<[CameraInputError](#camerainputerror)\> | Yes | Callback used to return the result. | **Example** ```js cameraInput.on('error', (cameraInputError) => { - console.log(`Camera input error code: ${cameraInputError.code}`); + console.log('Camera input error code: ' + cameraInputError.code); }) ``` -## CameraInputErrorCode +## CameraInputErrorCode -Enumerates the error codes used for camera input. +Enumerates the error codes used in a **CameraInput** instance. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| ------------------------- | ---- | ---------- | -| ERROR_UNKNOWN | -1 | Unknown error.| -| ERROR_NO_PERMISSION | 0 | You do not have the required permission.| -| ERROR_DEVICE_PREEMPTED | 1 | The camera is preempted.| -| ERROR_DEVICE_DISCONNECTED | 2 | The camera is disconnected.| -| ERROR_DEVICE_IN_USE | 3 | The camera is in use.| -| ERROR_DRIVER_ERROR | 4 | Driver error. | +| Name | Value | Description | +| ------------- | ---- | ---------- | +| ERROR_UNKNOWN | -1 | Unknown error.| -## CameraInputError +## CameraInputError -Defines an error object used for **[CameraInput](#camerainput)**. +Defines a **CameraInput** error. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name| Type | Description | -| ---- | --------------------------------------------- | --------------------- | +| Name| Type | Description | +| ---- | ------------------------------------------- | -------------------------- | | code | [CameraInputErrorCode](#camerainputerrorcode) | **CameraInput** error code.| @@ -1279,37 +1072,25 @@ Enumerates the flash modes. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| ---------------------- | ---- | ---------- | +| Name | Value | Description | +| ---------------------- | ---- | ------------ | | FLASH_MODE_CLOSE | 0 | The flash is off.| | FLASH_MODE_OPEN | 1 | The flash is on.| | FLASH_MODE_AUTO | 2 | The flash mode is auto, indicating that the flash fires automatically depending on the shooting conditions.| | FLASH_MODE_ALWAYS_OPEN | 3 | The flash is steady on.| -## ExposureMode - -Enumerates the exposure modes. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| ----------------------------- | ---- | ----------- | -| EXPOSURE_MODE_LOCKED | 0 | Exposure locked.| -| EXPOSURE_MODE_AUTO | 1 | Auto exposure.| -| EXPOSURE_MODE_CONTINUOUS_AUTO | 2 | Continuous auto exposure.| - ## FocusMode Enumerates the focus modes. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| -------------------------- | ---- | ------------ | +| Name | Value | Description | +| -------------------------- | ---- | ------------------ | | FOCUS_MODE_MANUAL | 0 | Manual focus. | | FOCUS_MODE_CONTINUOUS_AUTO | 1 | Continuous auto focus.| | FOCUS_MODE_AUTO | 2 | Auto focus. | -| FOCUS_MODE_LOCKED | 3 | Focus locked. | +| FOCUS_MODE_LOCKED | 3 | Focus locked. | ## FocusState @@ -1317,40 +1098,70 @@ Enumerates the focus states. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| --------------------- | ---- | --------- | -| FOCUS_STATE_SCAN | 0 | Focusing. | -| FOCUS_STATE_FOCUSED | 1 | Focused. | +| Name | Value | Description | +| --------------------- | ---- | ------------ | +| FOCUS_STATE_SCAN | 0 | Focusing. | +| FOCUS_STATE_FOCUSED | 1 | Focused.| | FOCUS_STATE_UNFOCUSED | 2 | Unfocused.| -## ExposureState +## camera.createCaptureSession + +createCaptureSession\(context: Context, callback: AsyncCallback\): void -Enumerates the exposure states. +Creates a **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| ------------------------- | ---- | -------- | -| EXPOSURE_STATE_SCAN | 0 | Exposing. | -| EXPOSURE_STATE_CONVERGED | 1 | Exposure converged.| +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------------- | ---- | -------------------------------------- | +| context | Context | Yes | Application context. | +| callback | AsyncCallback<[CaptureSession](#capturesession)\> | Yes | Callback used to return the **CaptureSession** instance.| + +**Example** + +```js +camera.createCaptureSession((context), (err, captureSession) => { + if (err) { + console.error('Failed to create the CaptureSession instance. ${err.message}'); + return; + } + console.log('Callback returned with the CaptureSession instance.' + captureSession); +}); +``` + +## camera.createCaptureSession -## VideoStabilizationMode +createCaptureSession(context: Context\): Promise; -Enumerates the video stabilization modes. +Creates a **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| --------- | ---- | ------------ | -| OFF | 0 | Video stabilization is disabled. | -| LOW | 1 | The basic video stabilization algorithm is used. | -| MIDDLE | 2 | A video stabilization algorithm with a stabilization effect better than that of the **LOW** type is used. | -| HIGH | 3 | A video stabilization algorithm with a stabilization effect better than that of the **MIDDLE** type is used. | -| AUTO | 4 | Automatic video stabilization is used. | +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | ------- | ---- | ------------ | +| context | Context | Yes | Application context.| + +**Return value** + +| Type | Description | +| ------------------------------------------- | ----------------------------------------- | +| Promise<[CaptureSession](#capturesession)\> | Promise used to return the **CaptureSession** instance.| + +**Example** + +```js +camera.createCaptureSession(context).then((captureSession) => { + console.log('Promise returned with the CaptureSession instance'); +}) +``` ## CaptureSession -Implements a shooting session, which saves all **[CameraInput](#camerainput)** and **[CameraOutput](#cameraoutput)** instances required to run the camera and requests the camera to complete shooting or video recording. +Implements a shooting session. ### beginConfig @@ -1362,8 +1173,8 @@ Starts configuration for this **CaptureSession** instance. This API uses an asyn **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------- | +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | | callback | AsyncCallback | Yes | Callback used to return the result.| **Example** @@ -1371,7 +1182,7 @@ Starts configuration for this **CaptureSession** instance. This API uses an asyn ```js captureSession.beginConfig((err) => { if (err) { - console.error(`Failed to start the configuration. ${err.message}`); + console.error('Failed to start the configuration. ${err.message}'); return; } console.log('Callback invoked to indicate the begin config success.'); @@ -1388,8 +1199,8 @@ Starts configuration for this **CaptureSession** instance. This API uses a promi **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| @@ -1411,8 +1222,8 @@ Commits the configuration for this **CaptureSession** instance. This API uses an **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | | callback | AsyncCallback | Yes | Callback used to return the result.| **Example** @@ -1420,7 +1231,7 @@ Commits the configuration for this **CaptureSession** instance. This API uses an ```js captureSession.commitConfig((err) => { if (err) { - console.error(`Failed to commit the configuration. ${err.message}`); + console.error('Failed to commit the configuration. ${err.message}'); return; } console.log('Callback invoked to indicate the commit config success.'); @@ -1437,8 +1248,8 @@ Commits the configuration for this **CaptureSession** instance. This API uses a **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** @@ -1449,529 +1260,546 @@ captureSession.commitConfig().then(() => { }) ``` -### canAddInput +### addInput -canAddInput(cameraInput: CameraInput, callback: AsyncCallback): void +addInput\(cameraInput: CameraInput, callback: AsyncCallback\): void -Checks whether a **[CameraInput](#camerainput)** instance can be added to this **CaptureSession**. This API uses an asynchronous callback to return the result. +Adds a **CameraInput** instance to this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ----------- | --------------------------- | ---- | ------------------------ | +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | | cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to add.| -| callback | AsyncCallback | Yes | Callback used to return the result. | +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.canAddInput(cameraInput, (err, status) => { +captureSession.addInput(cameraInput, (err) => { if (err) { - console.error(`Can not add cameraInput. ${err.message}`); + console.error('Failed to add the CameraInput instance. ${err.message}'); return; } - console.log('Callback returned with cameraInput can added.'); -}) + console.log('Callback invoked to indicate that the CameraInput instance is added.'); +}); ``` -### canAddInput +### addInput -canAddInput(cameraInput: CameraInput): Promise +addInput\(cameraInput: CameraInput\): Promise -Checks whether a **[CameraInput](#camerainput)** instance can be added to this **CaptureSession**. This API uses a promise to return the result. +Adds a **CameraInput** instance to this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ----------- | --------------------------- | ---- | ------------------------ | +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | | cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to add.| **Return value** -| Type | Description | -| -------------- | -------------------------- | -| Promise | Promise used to return the result.| +| Type | Description | +| -------------- | --------------------------- | +| Promise| Promise used to return the result.| **Example** ```js -captureSession.canAddInput(cameraInput).then(() => { - console.log('Promise returned with cameraInput can added.'); +captureSession.addInput(cameraInput).then(() => { + console.log('Promise used to indicate that the CameraInput instance is added.'); }) ``` -### addInput +### addOutput -addInput\(cameraInput: CameraInput, callback: AsyncCallback\): void +addOutput\(previewOutput: PreviewOutput, callback: AsyncCallback\): void -Adds a **[CameraInput](#camerainput)** instance to this **CaptureSession**. This API uses an asynchronous callback to return the result. +Adds a **PreviewOutput** instance to this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ----------- | --------------------------- | ---- | ------------------------ | -| cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to add.| -| callback | AsyncCallback | Yes | Callback used to return the result. | +| Name | Type | Mandatory| Description | +| ------------- | ------------------------------- | ---- | ----------------------------- | +| previewOutput | [PreviewOutput](#previewoutput) | Yes | **PreviewOutput** instance to add.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.addInput(cameraInput, (err) => { +captureSession.addOutput(previewOutput, (err) => { if (err) { - console.error(`Failed to add the CameraInput instance. ${err.message}`); + console.error('Failed to add the PreviewOutput instance ${err.message}'); return; } - console.log('Callback invoked to indicate that the CameraInput instance is added.'); + console.log('Callback invoked to indicate that the PreviewOutput instance is added.'); }); ``` -### addInput +### addOutput -addInput\(cameraInput: CameraInput\): Promise +addOutput\(previewOutput: PreviewOutput\): Promise -Adds a **[CameraInput](#camerainput)** instance to this **CaptureSession**. This API uses a promise to return the result. +Adds a **PreviewOutput** instance to this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ----------- | --------------------------- | ---- | ------------------------ | -| cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to add.| +| Name | Type | Mandatory| Description | +| ------------- | ------------------------------- | ---- | ----------------------------- | +| previewOutput | [PreviewOutput](#previewoutput) | Yes | **PreviewOutput** instance to add.| **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** ```js -captureSession.addInput(cameraInput).then(() => { - console.log('Promise used to indicate that the CameraInput instance is added.'); +captureSession.addOutput(previewOutput).then(() => { + console.log('Promise used to indicate that the PreviewOutput instance is added.'); }) ``` -### removeInput +### addOutput -removeInput\(cameraInput: CameraInput, callback: AsyncCallback\): void +addOutput\(photoOutput: PhotoOutput, callback: AsyncCallback\): void -Removes a **[CameraInput](#camerainput)** instance from this **CaptureSession**. This API uses an asynchronous callback to return the result. +Adds a **PhotoOutput** instance to this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ----------- | --------------------------- | ---- | ------------------------ | -| cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to remove.| +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| photoOutput | [PhotoOutput](#photooutput) | Yes | **PhotoOutput** instance to add.| | callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.removeInput(cameraInput, (err) => { +captureSession.addOutput(photoOutput, (err) => { if (err) { - console.error(`Failed to remove the CameraInput instance. ${err.message}`); + console.error('Failed to add the PhotoOutput instance ${err.message}'); return; } - console.log('Callback invoked to indicate that the cameraInput instance is removed.'); + console.log('Callback invoked to indicate that the PhotoOutput instance is added.'); }); ``` -### removeInput +### addOutput -removeInput\(cameraInput: CameraInput\): Promise +addOutput\(photoOutput: PhotoOutput\): Promise -Removes a **[CameraInput](#camerainput)** instance from this **CaptureSession**. This API uses a promise to return the result. +Adds a **PhotoOutput** instance to this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ----------- | --------------------------- | ---- | ------------------------ | -| cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to remove.| +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| photoOutput | [PhotoOutput](#photooutput) | Yes | **PhotoOutput** instance to add.| **Return value** -| Type | Description | -| -------------- | ------------------------- | -| Promise\ | Promise used to return the result.| +| Type | Description | +| -------------- | --------------------------- | +| Promise\ | Promise used to return the result.| **Example** ```js -captureSession.removeInput(cameraInput).then(() => { - console.log('Promise returned to indicate that the cameraInput instance is removed.'); +captureSession.addOutput(photoOutput).then(() => { + console.log('Promise used to indicate that the PhotoOutput instance is added.'); }) ``` -### canAddOutput +### addOutput -canAddOutput(cameraOutput: CameraOutput, callback: AsyncCallback\): void +addOutput\(videoOutput: VideoOutput, callback: AsyncCallback\): void -Checks whether a **[CameraOutput](#cameraoutput)** instance can be added to this **CaptureSession**. This API uses an asynchronous callback to return the result. +Adds a **VideoOutput** instance to this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ------------- | ------------------------------- | ---- | ------------------------- | -| cameraOutput | [CameraOutput](#cameraoutput) | Yes | **CameraOutput** instance to add.| -| callback | AsyncCallback | Yes | Callback used to return the result. | +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| videoOutput | [VideoOutput](#videooutput) | Yes | **VideoOutput** instance to add.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.canAddOutput(cameraOutput, (err, status) => { +captureSession.addOutput(videoOutput, (err) => { if (err) { - console.error(`Can not add cameraOutput. ${err.message}`); + console.error('Failed to add the VideoOutput instance ${err.message}'); return; } - console.log('Callback returned with cameraOutput can added.'); -}) + console.log('Callback invoked to indicate that the VideoOutput instance is added.'); +}); ``` -### canAddOutput +### addOutput -canAddOutput(cameraOutput: CameraOutput): Promise +addOutput\(videoOutput: VideoOutput\): Promise -Checks whether a **[CameraOutput](#cameraoutput)** instance can be added to this **CaptureSession**. This API uses a promise to return the result. +Adds a **VideoOutput** instance to this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ------------- | ------------------------------- | ---- | ------------------------- | -| cameraOutput | [CameraOutput](#cameraoutput) | Yes | **CameraOutput** instance to add.| - +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| videoOutput | [VideoOutput](#videooutput) | Yes | **VideoOutput** instance to add.| **Return value** -| Type | Description | +| Type | Description | | -------------- | --------------------------- | -| Promise | Promise used to return the result.| - +| Promise\ | Promise used to return the result.| **Example** ```js -captureSession.canAddOutput(cameraOutput).then(() => { - console.log('Promise returned with cameraOutput can added.'); +captureSession.addOutput(videoOutput).then(() => { + console.log('Promise used to indicate that the VideoOutput instance is added.'); }) ``` -### addOutput +### removeInput -addOutput\(cameraOutput: CameraOutput, callback: AsyncCallback\): void +removeInput\(cameraInput: CameraInput, callback: AsyncCallback\): void -Adds a **[CameraOutput](#cameraoutput)** instance to this **CaptureSession**. This API uses an asynchronous callback to return the result. +Removes a **CameraInput** instance from this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ------------- | ------------------------------- | ---- | ------------------------ | -| cameraOutput | [CameraOutput](#cameraoutput) | Yes | **CameraOutput** instance to add.| -| callback | AsyncCallback | Yes | Callback used to return the result. | +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to remove.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.addOutput(cameraOutput, (err) => { +captureSession.removeInput(cameraInput, (err) => { if (err) { - console.error(`Failed to add output. ${err.message}`); + console.error('Failed to remove the CameraInput instance. ${err.message}'); return; } - console.log('Callback returned with output added.'); -}) + console.log('Callback invoked to indicate that the cameraInput instance is removed.'); +}); ``` -### addOutput +### removeInput -addOutput\(cameraOutput: CameraOutput\): Promise +removeInput\(cameraInput: CameraInput\): Promise -Adds a **[CameraOutput](#cameraoutput)** instance to this **CaptureSession**. This API uses a promise to return the result. +Removes a **CameraInput** instance from this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ------------- | ------------------------------- | ---- | ------------------------- | -| cameraOutput | [CameraOutput](#cameraoutput) | Yes | **CameraOutput** instance to add.| +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| cameraInput | [CameraInput](#camerainput) | Yes | **CameraInput** instance to remove.| **Return value** -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| +| Type | Description | +| -------------- | --------------------------- | +| Promise\ | Promise used to return the result.| **Example** ```js -captureSession.addOutput(cameraOutput).then(() => { - console.log('Promise returned with cameraOutput added.'); +captureSession.removeInput(cameraInput).then(() => { + console.log('Promise returned to indicate that the cameraInput instance is removed.'); }) ``` ### removeOutput -removeOutput\(cameraOutput: CameraOutput, callback: AsyncCallback\): void +removeOutput\(previewOutput: PreviewOutput, callback: AsyncCallback\): void -Removes a **[CameraOutput](#cameraoutput)** instance from this **CaptureSession**. This API uses an asynchronous callback to return the result. +Removes a **PreviewOutput** instance from this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ------------- | ------------------------------- | ---- | ------------------------ | -| cameraOutput | [CameraOutput](#cameraoutput) | Yes | **CameraOutput** instance to remove.| +| Name | Type | Mandatory| Description | +| ------------- | ------------------------------- | ---- | ----------------------------- | +| previewOutput | [PreviewOutput](#previewoutput) | Yes | **PreviewOutput** instance to remove.| | callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.removeOutput(cameraOutput, (err) => { +captureSession.removeOutput(previewOutput, (err) => { if (err) { - console.error(`Failed to remove the CameraOutput instance. ${err.message}`); + console.error('Failed to remove the PreviewOutput instance. ${err.message}'); return; } - console.log('Callback invoked to indicate that the CameraOutput instance is removed.'); + console.log('Callback invoked to indicate that the PreviewOutput instance is removed.'); }); ``` ### removeOutput -removeOutput(cameraOutput: CameraOutput): Promise +removeOutput(previewOutput: PreviewOutput): Promise -Removes a **[CameraOutput](#cameraoutput)** instance from this **CaptureSession**. This API uses a promise to return the result. +Removes a **PreviewOutput** instance from this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| ------------- | ------------------------------- | ---- | ------------------------- | -| cameraOutput | [CameraOutput](#cameraoutput) | Yes | **CameraOutput** instance to remove.| +| Name | Type | Mandatory| Description | +| ------------- | ------------------------------- | ---- | ----------------------------- | +| previewOutput | [PreviewOutput](#previewoutput) | Yes | **PreviewOutput** instance to remove.| **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** ```js -captureSession.removeOutput(cameraOutput).then(() => { - console.log('Promise returned to indicate that the CameraOutput instance is removed.'); +captureSession.removeOutput(previewOutput).then(() => { + console.log('Promise returned to indicate that the PreviewOutput instance is removed.'); }) ``` -### start +### removeOutput -start\(callback: AsyncCallback\): void +removeOutput(photoOutput: PhotoOutput, callback: AsyncCallback): void -Starts this **CaptureSession**. This API uses an asynchronous callback to return the result. +Removes a **PhotoOutput** instance from this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| photoOutput | [PhotoOutput](#photooutput) | Yes | **PhotoOutput** instance to remove.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.start((err) => { +captureSession.removeOutput(photoOutput, (err) => { if (err) { - console.error(`Failed to start the session ${err.message}`); + console.error('Failed to remove the PhotoOutput instance. ${err.message}'); return; } - console.log('Callback invoked to indicate the session start success.'); + console.log('Callback invoked to indicate that the PhotoOutput instance is removed.'); }); ``` -### start +### removeOutput -start\(\): Promise +removeOutput(photoOutput: PhotoOutput): Promise -Starts this **CaptureSession**. This API uses a promise to return the result. +Removes a **PhotoOutput** instance from this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core +**Parameters** + +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| photoOutput | [PhotoOutput](#photooutput) | Yes | **PhotoOutput** instance to remove.| + + **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| + **Example** ```js -captureSession.start().then(() => { - console.log('Promise returned to indicate the session start success.'); +captureSession.removeOutput(photoOutput).then(() => { + console.log('Promise returned to indicate that the PhotoOutput instance is removed.'); }) ``` -### stop +### removeOutput -stop\(callback: AsyncCallback\): void +removeOutput(videoOutput: VideoOutput, callback: AsyncCallback): void -Stops this **CaptureSession**. This API uses an asynchronous callback to return the result. +Removes a **VideoOutput** instance from this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| videoOutput | [VideoOutput](#videooutput) | Yes | **VideoOutput** instance to remove.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -captureSession.stop((err) => { +captureSession.removeOutput(videoOutput, (err) => { if (err) { - console.error(`Failed to stop the session ${err.message}`); + console.error('Failed to remove the VideoOutput instance. ${err.message}'); return; } - console.log('Callback invoked to indicate the session stop success.'); + console.log('Callback invoked to indicate that the VideoOutput instance is removed.'); }); ``` -### stop +### removeOutput -stop(): Promise +removeOutput(videoOutput: VideoOutput): Promise -Stops this **CaptureSession**. This API uses a promise to return the result. +Removes a **VideoOutput** instance from this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core +**Parameters** + +| Name | Type | Mandatory| Description | +| ----------- | --------------------------- | ---- | --------------------------- | +| videoOutput | [VideoOutput](#videooutput) | Yes | **VideoOutput** instance to remove.| + + **Return value** -| Type | Description | -| -------------- | ----------------------- | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| + **Example** ```js -captureSession.stop().then(() => { - console.log('Promise returned to indicate the session stop success.'); +captureSession.removeOutput(videoOutput).then(() => { + console.log('Promise returned to indicate that the VideoOutput instance is removed.'); }) ``` -### lockForControl +### start -lockForControl(callback: AsyncCallback): void +start\(callback: AsyncCallback\): void -Requests to exclusively control the hardware attributes **[CameraInput](#camerainput)** of the camera device. This API uses an asynchronous callback to return the result. After the exclusive control is complete, you must call **[unlockForControl](#unlockforcontrol)** to release the exclusive control. +Starts this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------- | +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | | callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -captureSession.lockForControl((err) => { +captureSession.start((err) => { if (err) { - console.error(`Failed to lock. ${err.message}`); + console.error('Failed to start the session ${err.message}'); return; } - console.log('Locked.'); -}) + console.log('Callback invoked to indicate the session start success.'); +}); ``` -### lockForControl +### start -lockForControl(): Promise +start\(\): Promise -Requests to exclusively control the hardware attributes **[CameraInput](#camerainput)** of the camera device. This API uses a promise to return the result. After the exclusive control is complete, you must call **[unlockForControl](#unlockforcontrol)** to release the exclusive control. +Starts this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** ```js -captureSession.lockForControl().then(() => { - console.log('Locked.'); +captureSession.start().then(() => { + console.log('Promise returned to indicate the session start success.'); }) ``` -### unlockForControl +### stop -unlockForControl(callback: AsyncCallback): void +stop\(callback: AsyncCallback\): void -Releases the exclusive control on the device configuration. This API uses an asynchronous callback to return the result. +Stops this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | | callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -captureSession.unlockForControl((err) => { +captureSession.stop((err) => { if (err) { - console.error(`Failed to unlock. ${err.message}`); + console.error('Failed to stop the session ${err.message}'); return; } - console.log('Unlocked.'); -}) + console.log('Callback invoked to indicate the session stop success.'); +}); ``` -### unlockForControl +### stop -unlockForControl(): Promise +stop(): Promise -Releases the exclusive control on the device configuration. This API uses a promise to return the result. +Stops this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** ```js -captureSession.unlockForControl().then(() => { - console.log('Unlocked.'); +captureSession.stop().then(() => { + console.log('Promise returned to indicate the session stop success.'); }) ``` @@ -1979,14 +1807,14 @@ captureSession.unlockForControl().then(() => { release\(callback: AsyncCallback\): void -Releases this **CaptureSession**. This API uses an asynchronous callback to return the result. +Releases this **CaptureSession** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | | callback | AsyncCallback | Yes | Callback used to return the result.| **Example** @@ -1994,7 +1822,7 @@ Releases this **CaptureSession**. This API uses an asynchronous callback to retu ```js captureSession.release((err) => { if (err) { - console.error(`Failed to release the CaptureSession instance ${err.message}`); + console.error('Failed to release the CaptureSession instance ${err.message}'); return; } console.log('Callback invoked to indicate that the CaptureSession instance is released successfully.'); @@ -2005,14 +1833,14 @@ captureSession.release((err) => { release(): Promise -Releases this **CaptureSession**. This API uses a promise to return the result. +Releases this **CaptureSession** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** @@ -2023,2077 +1851,433 @@ captureSession.release().then(() => { }) ``` -### hasFlash +### on('error') -hasFlash(callback: AsyncCallback): void +on(type: 'error', callback: ErrorCallback): void -Checks whether the device has flash. This API uses an asynchronous callback to return the result. +Listens for **CaptureSession** errors. This API uses a callback to return the errors. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------- | ---- | -------------------------------- | -| callback | AsyncCallback | Yes | Callback used to return the flash support status. The value **true** means that the device has flash.| +| Name | Type | Mandatory| Description | +| :------- | :---------------------------------------------------------- | :--- | :-------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the capture session error event.| +| callback | ErrorCallback<[CaptureSessionError](#capturesessionerror)\> | Yes | Callback used to return the error information. | **Example** ```js -cameraInput.hasFlash((err, status) => { - if (err) { - console.error(`Failed to check whether the device has flash light. ${err.message}`); - return; - } - console.log(`Callback returned with flash light support status: ${status}`); +captureSession.on('error', (captureSessionError) => { + console.log('Capture session error code: ' + captureSessionError.code); }) ``` -### hasFlash - -hasFlash(): Promise +## CaptureSessionErrorCode -Checks whether the device has flash. This API uses a promise to return the result. +Enumerates the error codes used in a **CaptureSession** instance. **System capability**: SystemCapability.Multimedia.Camera.Core -**Return value** +| Name | Value | Description | +| ------------- | ---- | ---------- | +| ERROR_UNKNOWN | -1 | Unknown error.| -| Type | Description | -| ----------------- | ----------------------------------------------- | -| Promise | Promise used to return the flash support status. The value **true** means that the device has flash.| +## CaptureSessionError -**Example** +Defines a **CaptureSession** error. -```js -cameraInput.hasFlash().then((status) => { - console.log(`Promise returned with the flash light support status: ${status}`); -}) -``` +**System capability**: SystemCapability.Multimedia.Camera.Core -### isFlashModeSupported +| Name| Type | Description | +| ---- | ------------------------------------------- | -------------------------- | +| code | [CaptureSessionError](#capturesessionerror) | **CaptureSession** error code.| -isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void +## camera.createPreviewOutput -Checks whether a specified flash mode is supported. This API uses an asynchronous callback to return the result. +createPreviewOutput(surfaceId: string, callback: AsyncCallback): void + +Creates a **PreviewOutput** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| --------- | ----------------------- | ---- | --------------------------------- | -| flashMode | [FlashMode](#flashmode) | Yes | Flash mode. | -| callback | AsyncCallback | Yes | Callback used to return the flash mode support status. The value **true** means that the flash mode is supported, and **false** means the opposite.| +| Name | Type | Mandatory| Description | +| --------- | ----------------------------------------------- | ---- | ------------------------------------- | +| surfaceId | string | Yes | Surface ID, which is obtained from **XComponent**. | +| callback | AsyncCallback<[PreviewOutput](#previewoutput)\> | Yes | Callback used to return the **PreviewOutput** instance.| **Example** ```js -cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO, (err, status) => { +camera.createPreviewOutput(("surfaceId"), (err, previewOutput) => { if (err) { - console.error(`Failed to check whether the flash mode is supported. ${err.message}`); + console.error('Failed to create the PreviewOutput instance. ${err.message}'); return; } - console.log(`Callback returned with the flash mode support status: ${status}`); -}) + console.log('Callback returned with previewOutput instance'); +}); ``` -### isFlashModeSupported +## camera.createPreviewOutput -isFlashModeSupported(flashMode: FlashMode): Promise +createPreviewOutput(surfaceId: string): Promise\ -Checks whether a specified flash mode is supported. This API uses a promise to return the result. +Creates a **PreviewOutput** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| --------- | ----------------------- | ---- | ------------- | -| flashMode | [FlashMode](#flashmode) | Yes | Flash mode.| +| Name | Type | Mandatory| Description | +| --------- | ------ | ---- | ---------------------------------- | +| surfaceId | string | Yes | Surface ID, which is obtained from **XComponent**.| **Return value** -| Type | Description | -| ----------------- | ---------------------------------------------------- | -| Promise | Promise used to return the flash mode support status. The value **true** means that the flash mode is supported, and **false** means the opposite.| +| Type | Description | +| ----------------------------------------- | --------------------------- | +| Promise<[PreviewOutput](#previewoutput)\> | Promise used to return the result.| **Example** ```js -cameraInput.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO).then((status) => { - console.log(`Promise returned with flash mode support status.${status}`); +camera.createPreviewOutput("surfaceId").then((previewOutput) => { + console.log('Promise returned with the PreviewOutput instance'); }) ``` -### setFlashMode +## PreviewOutput -setFlashMode(flashMode: FlashMode, callback: AsyncCallback): void +Implements preview output. -Sets the flash mode. This API uses an asynchronous callback to return the result. +### release -Before the setting, do the following checks: +release(callback: AsyncCallback): void -1. Use **[hasFlash](#hasflash)** to check whether the device has flash. -2. Use **[isFlashModeSupported](#isflashmodesupported)** to check whether the device supports the flash mode. +Releases this **PreviewOutput** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| --------- | ----------------------- | ---- | --------------------- | -| flashMode | [FlashMode](#flashmode) | Yes | Flash mode. | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO, (err) => { +previewOutput.release((err) => { if (err) { - console.error(`Failed to set the flash mode ${err.message}`); + console.error('Failed to release the PreviewOutput instance ${err.message}'); return; } - console.log('Callback returned with the successful execution of setFlashMode.'); -}) + console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.'); +}); ``` -### setFlashMode - -setFlashMode(flashMode: FlashMode): Promise - -Sets a flash mode. This API uses a promise to return the result. +### release -Before the setting, do the following checks: +release(): Promise -1. Use **[hasFlash](#hasflash)** to check whether the device has flash. -2. Use **[isFlashModeSupported](#isflashmodesupported)** to check whether the device supports the flash mode. +Releases this **PreviewOutput** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -**Parameters** - -| Name | Type | Mandatory| Description | -| --------- | ----------------------- | ---- | ------------- | -| flashMode | [FlashMode](#flashmode) | Yes | Flash mode.| - **Return value** -| Type | Description | -| -------------- | ------------------------ | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| + **Example** ```js -cameraInput.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO).then(() => { - console.log('Promise returned with the successful execution of setFlashMode.'); +previewOutput.release().then(() => { + console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.'); }) ``` -### getFlashMode +### on('frameStart') -getFlashMode(callback: AsyncCallback): void +on(type: 'frameStart', callback: AsyncCallback): void -Obtains the flash mode in use. This API uses an asynchronous callback to return the result. +Listens for preview frame start events. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------------------------- | ---- | --------------------------------- | -| callback | AsyncCallback<[FlashMode](#flashmode)\> | Yes | Callback used to return the flash mode.| +| Name | Type | Mandatory| Description | +| :------- | :------------------- | :--- | :------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'frameStart'**, indicating the preview frame start event.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -cameraInput.getFlashMode((err, flashMode) => { - if (err) { - console.error(`Failed to get the flash mode ${err.message}`); - return; - } - console.log(`Callback returned with current flash mode: ${flashMode}`); +previewOutput.on('frameStart', () => { + console.log('Preview frame started'); }) ``` -### getFlashMode +### on('frameEnd') -getFlashMode(): Promise +on(type: 'frameEnd', callback: AsyncCallback): void -Obtains the flash mode in use. This API uses a promise to return the result. +Listens for preview frame end events. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -**Return value** +**Parameters** -| Type | Description | -| --------------------------------- | --------------------------------- | -| Promise<[FlashMode](#flashmode)\> | Promise used to return the flash mode.| +| Name | Type | Mandatory| Description | +| :------- | :------------------- | :--- | :----------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'frameEnd'**, indicating the preview frame end event.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -cameraInput.getFlashMode().then((flashMode) => { - console.log(`Promise returned with current flash mode : ${flashMode}`); +previewOutput.on('frameEnd', () => { + console.log('Preview frame ended'); }) ``` -### isExposureModeSupported +### on('error') -isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback): void; +on(type: 'error', callback: ErrorCallback): void -Checks whether a specified exposure mode is supported. This API uses an asynchronous callback to return the result. +Listens for **PreviewOutput** errors. This API uses a callback to return the errors. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory | Description | -| -------- | -------------------------------| ---- | ----------------------------- | -| aeMode | [ExposureMode](#exposuremode) | Yes | Exposure mode. | -| callback | AsyncCallback | Yes | Callback used to return the exposure mode support status. The value **true** means that the exposure mode is supported, and **false** means the opposite.| +| Name | Type | Mandatory| Description | +| :------- | :----------------------------------------------------------- | :--- | :-------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the preview output error event.| +| callback | ErrorCallback<[PreviewOutputErrorCode](#previewoutputerrorcode)\> | Yes | Callback used to return the error information. | **Example** ```js -cameraInput.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKEN,(err) => { - if (err) { - console.log(`Failed to check exposure mode supported ${err.message}`); - return ; - } - console.log('Callback returned with the successful execution of isExposureModeSupported'); +previewOutput.on('error', (previewOutputError) => { + console.log('Preview output error code: ' + previewOutputError.code); }) ``` -### isExposureModeSupported - -isExposureModeSupported(aeMode: ExposureMode): Promise +## PreviewOutputErrorCode -Checks whether a specified exposure mode is supported. This API uses a promise to return the result. +Enumerates the error codes used in a **PreviewOutput** instance. **System capability**: SystemCapability.Multimedia.Camera.Core -**Parameters** - -| Name | Type | Mandatory | Description | -| -------- | -------------------------------| ---- | ----------------------------- | -| aeMode | [ExposureMode](#exposuremode) | Yes | Exposure mode. | +| Name | Value | Description | +| ------------- | ---- | ---------- | +| ERROR_UNKNOWN | -1 | Unknown error.| -**Return value** +## PreviewOutputError -| Name | Description | -| ----------------- |--------------------------------- | -| Promise | Promise used to return the exposure mode support status. The value **true** means that the exposure mode is supported, and **false** means the opposite.| +Defines a **PreviewOutput** error. -**Example** +**System capability**: SystemCapability.Multimedia.Camera.Core -```js -cameraInput.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then((isSupported) => { - console.log(`Promise returned with exposure mode supported : ${isSupported}`); -}) -``` +| Name| Type | Description | +| ---- | ------------------------------------------------- | ---------------------- | +| code | [PreviewOutputErrorCode](#previewoutputerrorcode) | **PreviewOutput** error code.| -### getExposureMode +## camera.createPhotoOutput -getExposureMode(callback: AsyncCallback): void +createPhotoOutput(surfaceId: string, callback: AsyncCallback): void -Obtains the exposure mode in use. This API uses an asynchronous callback to return the result. +Creates a **PhotoOutput** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------------------| ---- | ---------------------------------------- | -| callback | AsyncCallback<[ExposureMode](#exposuremode)\> | Yes | Callback used to return the exposure mode.| +| Name | Type | Mandatory| Description | +| --------- | ------------------------------------------- | ---- | ----------------------------------- | +| surfaceId | string | Yes | Surface ID, which is obtained from **[ImageReceiver](js-apis-image.md#imagereceiver9)**. | +| callback | AsyncCallback<[PhotoOutput](#photooutput)\> | Yes | Callback used to return the **PhotoOutput** instance.| **Example** ```js -cameraInput.getExposureMode((err, exposureMode) => { +camera.createPhotoOutput(("surfaceId"), (err, photoOutput) => { if (err) { - console.log(`Failed to get the exposure mode ${err.message}`); - return ; + console.error('Failed to create the PhotoOutput instance. ${err.message}'); + return; } - console.log(`Callback returned with current exposure mode: ${exposureMode}`); -}) + console.log('Callback returned with the PhotoOutput instance.'); +}); ``` -### getExposureMode +## camera.createPhotoOutput -getExposureMode(): Promise +createPhotoOutput(surfaceId: string): Promise -Obtains the exposure mode in use. This API uses a promise to return the result. +Creates a **PhotoOutput** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core +**Parameters** + +| Name | Type | Mandatory| Description | +| --------- | ------ | ---- | --------------------------------- | +| surfaceId | string | Yes | Surface ID, which is obtained from **[ImageReceiver](js-apis-image.md#imagereceiver9)**.| + **Return value** -| Name | Description | -| --------------------------------------- |------------------------------- | -| Promise<[ExposureMode](#exposuremode)\> | Promise used to return the exposure mode.| +| Type | Description | +| ------------------------------------- | -------------------------------------- | +| Promise<[PhotoOutput](#photooutput)\> | Promise used to return the **PhotoOutput** instance.| **Example** ```js -cameraInput.getExposureMode().then((exposureMode) => { - console.log(`Promise returned with current exposure mode : ${exposureMode}`); +camera.createPhotoOutput("surfaceId").then((photoOutput) => { + console.log('Promise returned with PhotoOutput instance'); }) ``` +## ImageRotation -### setExposureMode - -setExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void - -Sets an exposure mode. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core +Enumerates the image rotation angles. -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------------------| ---- | ----------------------- | -| aeMode | [ExposureMode](#exposuremode) | Yes | Exposure mode. | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -cameraInput.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKEN,(err) => { - if (err) { - console.log(`Failed to set the exposure mode ${err.message}`); - return ; - } - console.log('Callback returned with the successful execution of setExposureMode'); -}) -``` - -### setExposureMode - -setExposureMode(aeMode: ExposureMode): Promise - -Sets an exposure mode. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Name | Description | -| ----------------- |---------------------------- | -| Promise | Promise used to return the result.| - -**Example** - -```js -cameraInput.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then(() => { - console.log('Promise returned with the successful execution of setExposureMode.'); -}) -``` - -### getMeteringPoint - -getMeteringPoint(callback: AsyncCallback): void - -Obtains the center of the metering area. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------------------| ---- | ------------------------ | -| callback | AsyncCallback<[Point](#point)\>| Yes | Callback used to return the center of the metering area.| - -**Example** - -```js -cameraInput.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}`); -}) -``` - -### getMeteringPoint - -getMeteringPoint(): Promise - -Obtains the center of the metering area. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Name | Description | -| ------------------------- |----------------------------- | -| Promise<[Point](#point)\> | Promise used to return the center of the metering area.| - -**Example** - -```js -cameraInput.getMeteringPoint().then((exposurePoint) => { - console.log(`Promise returned with current exposure point : ${exposurePoint}`); -}) -``` - -### setMeteringPoint - -setMeteringPoint(point: Point, callback: AsyncCallback): void - -Sets the center of the metering area. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------------- | -------------------------------| ---- | ------------------- | -| exposurePoint | [Point](#point) | Yes | Exposure point. | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -const Point1 = {x: 1, y: 1}; - -cameraInput.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'); -}) -``` - -### setMeteringPoint - -setMeteringPoint(point: Point): Promise - -Sets the center of the metering area. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------------- | -------------------------------| ---- | ------------------- | -| exposurePoint | [Point](#point) | Yes | Exposure point. | - -**Return value** - -| Name | Description | -| ----------------- |------------------------ | -| Promise | Promise used to return the center of the metering area.| - -**Example** - -```js -const Point2 = {x: 2, y: 2}; - -cameraInput.setMeteringPoint(Point2).then(() => { - console.log('Promise returned with the successful execution of setMeteringPoint'); -}) -``` - -### getExposureBiasRange - -getExposureBiasRange(callback: AsyncCallback\>): void - -Obtains the exposure compensation values. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------------------| ---- | ----------------------------- | -| callback | AsyncCallback\> | Yes | Callback used to return the array of compensation values.| - -**Example** - -```js -cameraInput.getExposureBiasRange((err, biasRangeArray) => { - if (err) { - console.log(`Failed to get the array of compenstation range ${err.message}`); - return ; - } - console.log('Callback returned with the array of compenstation range: ' + JSON.stringify(biasRangeArray)); -}) -``` - -### getExposureBiasRange - -getExposureBiasRange(): Promise\> - -Obtains the exposure compensation values. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Name | Description | -| ----------------- |-------------------------------------- | -| Promise\> | Promise used to return the array of compensation values.| - -**Example** - -```js -cameraInput.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then((isSupported) => { - console.log(`Promise returned with exposure mode supported : ${isSupported}`); -}) -``` - -### setExposureBias - -setExposureBias(exposureBias: number, callback: AsyncCallback): void - -Sets an exposure compensation value. This API uses an asynchronous callback to return the result. - -Before the setting, you are advised to use **[getExposureBiasRange](#getexposurebiasrange)** to obtain the supported values. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------------------| ---- | ------------------- | -| exposureBias | number | Yes | Compensation value. | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -cameraInput.setExposureBias(-4,(err) => { - if (err) { - console.log(`Failed to set the exposure bias ${err.message}`); - return ; - } - console.log('Callback returned with the successful execution of setExposureBias'); -}) -``` - -### setExposureBias - -setExposureBias(exposureBias: number): Promise - -Sets an exposure compensation value. This API uses a promise to return the result. - -Before the setting, you are advised to use **[getExposureBiasRange](#getexposurebiasrange)** to obtain the supported values. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------------- | --------- | ---- | --------- | -| exposureBias | number | Yes | Compensation value. | - -**Return value** - -| Name | Description | -| ----------------- |------------------------- | -| Promise | Promise used to return the result.| - -**Example** - -```js -cameraInput.setExposureBias(-4).then(() => { - console.log('Promise returned with the successful execution of setExposureBias.'); -}) -``` - -### getExposureValue - -getExposureValue(callback: AsyncCallback): void - -Obtains the exposure value in use. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------| ---- | --------------------- | -| callback | AsyncCallback | Yes | Callback used to the exposure value.| - -**Example** - -```js -cameraInput.getExposureValue((err, exposureValue) => { - if (err) { - console.log(`Failed to get the exposure value ${err.message}`); - return ; - } - console.log(`Callback returned with the exposure value: ${exposureValue}`); -}) -``` - -### getExposureValue - -getExposureValue(): Promise - -Obtains the exposure value in use. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Name | Description | -| ----------------- |-------------------------- | -| Promise | Promise used to the exposure value.| - -**Example** - -```js -cameraInput.getExposureValue().then((exposureValue) => { - console.log(`Promise returned with exposure value: ${exposureValude}`); -}) -``` - -### isFocusModeSupported - -isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void - -Checks whether a specified focus mode is supported. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------- | ---- | -------------------------------- | -| afMode | [FocusMode](#focusmode) | Yes | Focus mode. | -| callback | AsyncCallback | Yes | Callback used to return the focus mode support status. The value **true** means that the focus mode is supported, and **false** means the opposite.| - -**Example** - -```js -cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO, (err, status) => { - if (err) { - console.error(`Failed to check whether the focus mode is supported. ${err.message}`); - return; - } - console.log(`Callback returned with the focus mode support status: ${status}`); -}) -``` - -### isFocusModeSupported - -isFocusModeSupported(afMode: FocusMode): Promise - -Checks whether a specified focus mode is supported. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------ | ----------------------- | ---- | ------------- | -| afMode | [FocusMode](#focusmode) | Yes | Focus mode.| - -**Return value** - -| Type | Description | -| ----------------- | --------------------------------------------------- | -| Promise | Promise used to return the focus mode support status. The value **true** means that the focus mode is supported, and **false** means the opposite.| - -**Example** - -```js -cameraInput.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO).then((status) => { - console.log(`Promise returned with focus mode support status ${status}.`); -}) -``` - -### setFocusMode - -setFocusMode(afMode: FocusMode, callback: AsyncCallback): void - -Sets a focus mode. This API uses an asynchronous callback to return the result. - -Before the setting, use **[isFocusModeSupported](#isfocusmodesupported)** to check whether the focus mode is supported. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------- | ---- | ------------------- | -| afMode | [FocusMode](#focusmode) | Yes | Focus mode. | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO, (err) => { - if (err) { - console.error(`Failed to set the focus mode ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setFocusMode.'); -}) -``` - -### setFocusMode - -setFocusMode(afMode: FocusMode): Promise - -Sets a focus mode. This API uses a promise to return the result. - -Before the setting, use **[isFocusModeSupported](#isfocusmodesupported)** to check whether the focus mode is supported. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------ | ----------------------- | ---- | ------------- | -| afMode | [FocusMode](#focusmode) | Yes | Focus mode.| - -**Return value** - -| Type | Description | -| -------------- | ------------------------ | -| Promise| Promise used to return the result.| - -**Example** - -```js -cameraInput.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO).then(() => { - console.log('Promise returned with the successful execution of setFocusMode.'); -}) -``` - -### getFocusMode - -getFocusMode(callback: AsyncCallback): void - -Obtains the focus mode in use. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | --------------------------------------- | ---- | ------------------------------- | -| callback | AsyncCallback<[FocusMode](#focusmode)\> | Yes | Callback used to return the focus mode.| - -**Example** - -```js -cameraInput.getFocusMode((err, afMode) => { - if (err) { - console.error(`Failed to get the focus mode ${err.message}`); - return; - } - console.log(`Callback returned with current focus mode: ${afMode}`); -}) -``` - -### getFocusMode - -getFocusMode(): Promise - -Obtains the focus mode in use. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ------------------- | -------------------------------- | -| Promise | Promise used to return the focus mode.| - -**Example** - -```js -cameraInput.getFocusMode().then((afMode) => { - console.log(`Promise returned with current focus mode : ${afMode}`); -}) -``` - -### setFocusPoint - -setFocusPoint(point: Point, callback: AsyncCallback): void - -Sets a focus point. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------- | ---- | ------------------- | -| point | [Point](#point) | Yes | Focus point. | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -const Point1 = {x: 1, y: 1}; - -cameraInput.setFocusPoint(Point1, (err) => { - if (err) { - console.error(`Failed to set the focus point ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setFocusPoint.'); -}) -``` - -### setFocusPoint - -setFocusPoint(point: Point): Promise - -Sets a focal point. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------- | ---- | ------------------- | -| point | [Point](#point) | Yes | Focal point. | - -**Return value** - -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| - -**Example** - -```js -const Point2 = {x: 2, y: 2}; - -cameraInput.setFocusPoint(Point2).then(() => { - console.log('Promise returned with the successful execution of setFocusPoint.'); -}) -``` - -### getFocusPoint - -getFocusPoint(callback: AsyncCallback): void - -Obtains the focal point. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ---------------------------------- | ---- | ----------------------- | -| callback | AsyncCallback<[Point](#point)\> | Yes | Callback used to return the focal point.| - -**Example** - -```js -cameraInput.getFocusPoint((err, point) => { - if (err) { - console.error(`Failed to get the current focus point ${err.message}`); - return; - } - console.log('Callback returned with the current focus point: ' + JSON.stringify(point)); -}) -``` - -### getFocusPoint - -getFocusPoint(): Promise - -Obtains the focal point. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| --------------- | --------------------------- | -| Promise | Promise used to return the focal point.| - -**Example** - -```js -cameraInput.getFocusPoint().then((point) => { - console.log('Promise returned with the current focus point: ' + JSON.stringify(point)); -}) -``` - -### getFocalLength - -getFocalLength(callback: AsyncCallback): void - -Obtains the focal length. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------- | ---- | ----------------------- | -| callback | AsyncCallback | Yes | Callback used to return the focal length.| - -**Example** - -```js -cameraInput.getFocalLength((err, focalLength) => { - if (err) { - console.error(`Failed to get the current focal length ${err.message}`); - return; - } - console.log(`Callback returned with the current focal length: ${focalLength}`); -}) -``` - -### getFocalLength - -getFocalLength(): Promise - -Obtains the focal length. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ---------------- | ----------------------- | -| Promise | Promise used to return the focal length.| - -**Example** - -```js -cameraInput.getFocalLength().then((focalLength) => { - console.log(`Promise returned with the current focal length: ${focalLength}`); -}) -``` - -### getZoomRatioRange - -getZoomRatioRange\(callback: AsyncCallback\>\): void - -Obtains the zoom ratio range. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------------ | ---- | ------------------- | -| callback | AsyncCallback\> | Yes | Callback used to return the result.| - -**Example** - -```js -cameraInput.getZoomRatioRange((err, zoomRatioRange) => { - if (err) { - console.error(`Failed to get the zoom ratio range. ${err.message}`); - return; - } - console.log(`Callback returned with zoom ratio range: ${zoomRatioRange.length}`); -}) -``` - -### getZoomRatioRange - -getZoomRatioRange\(\): Promise\> - -Obtains the zoom ratio range. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ------------------------ | --------------------------- | -| Promise\> | Promise used to return the zoom ratio range.| - -**Example** - -```js -cameraInput.getZoomRatioRange().then((zoomRatioRange) => { - console.log(`Promise returned with zoom ratio range: ${zoomRatioRange.length}`); -}) -``` - -### setZoomRatio - -setZoomRatio(zoomRatio: number, callback: AsyncCallback): void - -Sets a zoom ratio. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| --------- | -------------------- | ---- | ------------------- | -| zoomRatio | number | Yes | Zoom ratio. | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -cameraInput.setZoomRatio(1, (err) => { - if (err) { - console.error(`Failed to set the zoom ratio value ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setZoomRatio.'); -}) -``` - -### setZoomRatio - -setZoomRatio(zoomRatio: number): Promise - -Sets a zoom ratio. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| --------- | ------ | ---- | --------- | -| zoomRatio | number | Yes | Zoom ratio.| - -**Return value** - -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| - -**Example** - -```js -cameraInput.setZoomRatio(1).then(() => { - console.log('Promise returned with the successful execution of setZoomRatio.'); -}) -``` - -### getZoomRatio - -getZoomRatio(callback: AsyncCallback): void - -Obtains the zoom ratio in use. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ---------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -cameraInput.getZoomRatio((err, zoomRatio) => { - if (err) { - console.error(`Failed to get the zoom ratio ${err.message}`); - return; - } - console.log(`Callback returned with current zoom ratio: ${zoomRatio}`); -}) -``` - -### getZoomRatio - -getZoomRatio(): Promise - -Obtains the zoom ratio in use. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ---------------- | ----------------------- | -| Promise | Promise used to return the zoom ratio.| - -**Example** - -```js -cameraInput.getZoomRatio().then((zoomRatio) => { - console.log(`Promise returned with current zoom ratio : ${zoomRatio}`); -}) -``` - -### isVideoStablizationModeSupported - -isVideoStablizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback): void - -Checks whether the specified video stabilization mode is supported. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------- | ---- | ------------------------------ | -| vsMode | [VideoStabilizationMode](#videostabilizationmode) | Yes | Video stabilization mode. | -| callback | AsyncCallback | Yes | Callback used to return whether the video stabilization mode is supported. The value **true** means that the video stabilization mode is supported, and **false** means the opposite. | - -**Example** - -```js -captureSession.isVideoStablizationModeSupported(camera.VideoStabilizationMode.OFF, (err, isSupported) => { - if (err) { - console.error(`Failed to check whether video stabilization mode supported. ${err.message}`); - return; - } - console.log(`Callback returned with the successful execution of isVideoStabilizationModeSupported: ${status}`); -}) -``` - -### isVideoStablizationModeSupported - -isVideoStablizationModeSupported(vsMode: VideoStabilizationMode): Promise - -Checks whether the specified video stabilization mode is supported. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ----------------- | --------------------------------------------- | -| Promise | Promise used to return whether the video stabilization mode is supported. The value **true** means that the video stabilization mode is supported, and **false** means the opposite.| - -**Example** - -```js -captureSession.isVideoStablizationModeSupported(camera.VideoStabilizationMode.OFF).then((isSupported) => { - console.log(`Promise returned with video stabilization mode supported: ${isSupported}`); -}) -``` - -### getActiveVideoStabilizationMode - -getActiveVideoStabilizationMode(callback: AsyncCallback): void - -Obtains the video stabilization mode in use. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------- | ---- | ------------------------------ | -| callback | AsyncCallback | Yes | Callback used to return the video stabilization mode. | - -**Example** - -```js -captureSession.getActiveVideoStabilizationMode((err, vsMode) => { - if (err) { - console.error(`Failed to get active video stabilization mode ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of getActiveVideoStabilizationMode.'); -}) -``` - -### getActiveVideoStabilizationMode - -getActiveVideoStabilizationMode(): Promise - -Obtains the video stabilization mode in use. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| -------------------------------- | ------------------------------------------------- | -| Promise | Promise used to return the video stabilization mode. | - -**Example** - -```js -captureSession.getActiveVideoStabilizationMode().then((vsMode) => { - console.log(`Promise returned with the current video stabilization mode: ${vsMode}`); -}) -``` - -### setVideoStabilizationMode - -setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback): void - -Sets a video stabilization mode. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------- | ---- | --------------------- | -| mode | [VideoStabilizationMode](#videostabilizationmode) | Yes | Video stabilization mode. | -| callback | AsyncCallback | Yes | Callback used to return the result. | - -**Example** - -```js -captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF, (err) => { - if (err) { - console.error(`Failed to set the video stabilization mode ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setVideoStabilizationMode.'); -}) -``` - -### setVideoStabilizationMode - -setVideoStabilizationMode(mode: VideoStabilizationMode): Promise - -Sets a video stabilization mode. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------- | ---- | --------------------- | -| mode | [VideoStabilizationMode](#videostabilizationmode) | Yes | Video stabilization mode. | - -**Return value** - -| Type | Description | -| -------------- | ------------------------------------------------- | -| Promise| Promise used to return the result. | - -**Example** - -```js -captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF).then(() => { - console.log('Promise returned with the successful execution of setVideoStabilizationMode.'); -}) -``` - -### on('focusStateChange') - -on(type: 'focusStateChange', callback: AsyncCallback): void - -Listens for focus state changes. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------- | ---- | ------------------------ | -| type | string | Yes | Event type. The value is fixed at **'focusStateChange'**, indicating the focus state change event.| -| callback | AsyncCallback<[FocusState](#focusstate)\> | Yes | Callback used to return the focus state change. | - -**Example** - -```js -cameraInput.on('focusStateChange', (focusState) => { - console.log(`Focus state : ${focusState}`); -}) -``` - -### on('exposureStateChange') - -on(type: 'exposureStateChange', callback: AsyncCallback): void - -Listens for exposure state changes. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------- | ---- | ---------------------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'exposureStateChange'**, indicating the exposure state change event.| -| callback | AsyncCallback<[ExposureState](#exposurestate)\> | Yes | Callback used to return the exposure state change. | - -**Example** - -```js -cameraInput.on('exposureStateChange', (exposureState) => { - console.log(`Exposuer state : ${exposureState}`); -}) -``` - -### on('error') - -on(type: 'error', callback: ErrorCallback): void - -Listens for **CaptureSession** errors. This API uses a callback to return the errors. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------------- | ---- | ------------------------------ | -| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the capture session error event.| -| callback | ErrorCallback<[CaptureSessionError](#capturesessionerror)\> | Yes | Callback used to return the error information. | - -**Example** - -```js -captureSession.on('error', (captureSessionError) => { - console.log(`Capture session error code: ${captureSessionError.code}`); -}) -``` - -## CaptureSessionErrorCode - -Enumerates the error codes used in a **CaptureSession**. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| ----------------------------- | ---- | -------- | -| ERROR_UNKNOWN | -1 | Unknown error.| -| ERROR_INSUFFICIENT_RESOURCES | 0 | Insufficient resources.| -| ERROR_TIMEOUT | 1 | Timeout.| - -## CaptureSessionError - -Defines a **CaptureSession** error. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name| Type | Description | -| ---- | ------------------------------------------- | -------------------------- | -| code | [CaptureSessionError](#capturesessionerror) | **CaptureSession** error code.| - -## CameraOutput - -Implements output information used in a **[CaptureSession](#capturesession)**. It is the base class of **output**. - -### release - -release(callback: AsyncCallback): void - -Releases output resources. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -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.'); -}); -``` - -### release - -release(): Promise - -Releases output resources. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| - -**Example** - -```js -previewOutput.release().then(() => { - console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.'); -}) -``` - -## PreviewOutput - -Implements preview output. It inherits **[CameraOutput](#cameraoutput)**. - -### addDeferredSurface - -addDeferredSurface(surfaceId: string, callback: AsyncCallback): void - -Adds a surface after a **PreviewOutput** instance is created. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------------------------------------------------------- | -| surfaceId| string | Yes | Surface ID, which is obtained from **[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)**.| -| callback | AsyncCallback | Yes | Callback used to return the result. | - -**Example** - -```js -previewOutput.addDeferredSurface('surfaceId', (err) => { - if (err) { - console.error(`Failed to add deferredSurface. ${err.message}`); - return; - } - console.log('Callback returned with deferredSurface added.'); -}) -``` - -### addDeferredSurface - -addDeferredSurface(surfaceId: string): Promise - -Adds a surface after a **PreviewOutput** instance is created. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -----------| ---- | ------------------------------------------------------------------------------ | -| surfaceId| string | Yes | Surface ID, which is obtained from **[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)**.| - -**Return value** - -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| - -**Example** - -```js -previewOutput.addDeferredSurface('surfaceId').then(() => { - console.log('Promise returned with deferredSurface added.'); -}) -``` - -### start - -start(callback: AsyncCallback): void - -Starts to output preview streams. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -previewOutput.start((err) => { - if (err) { - console.error(`Failed to start the previewOutput. ${err.message}`); - return; - } - console.log('Callback returned with previewOutput started.'); -}) -``` - -### start - -start(): Promise - -Starts to output preview streams. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| -------------- | ----------------------- | -| Promise| Promise used to return the result.| - -**Example** - -```js -previewOutput.start().then(() => { - console.log('Promise returned with previewOutput started.'); -}) -``` - -### stop - -stop(callback: AsyncCallback): void - -Stops outputting preview streams. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -previewOutput.stop((err) => { - if (err) { - console.error(`Failed to stop the previewOutput. ${err.message}`); - return; - } - console.log('Callback returned with previewOutput stopped.'); -}) -``` - -### stop - -stop(): Promise - -Stops outputting preview streams. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| -------------- | ------------------------ | -| Promise| Promise used to return the result.| - -**Example** - -```js -previewOutput.stop().then(() => { - console.log('Callback returned with previewOutput stopped.'); -}) -``` - -### on('frameStart') - -on(type: 'frameStart', callback: AsyncCallback): void - -Listens for preview frame start events. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | --------------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'frameStart'**, indicating the preview frame start event.| -| callback | AsyncCallback | Yes | Callback used to return the result. | - -**Example** - -```js -previewOutput.on('frameStart', () => { - console.log('Preview frame started'); -}) -``` - -### on('frameEnd') - -on(type: 'frameEnd', callback: AsyncCallback): void - -Listens for preview frame end events. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'frameEnd'**, indicating the preview frame end event.| -| callback | AsyncCallback | Yes | Callback used to return the result. | - -**Example** - -```js -previewOutput.on('frameEnd', () => { - console.log('Preview frame ended'); -}) -``` - -### on('error') - -on(type: 'error', callback: ErrorCallback): void - -Listens for **PreviewOutput** errors. This API uses a callback to return the errors. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------------------- | ---- | ------------------------ | -| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the preview output error event.| -| callback | ErrorCallback<[PreviewOutputErrorCode](#previewoutputerrorcode)\> | Yes | Callback used to return the error information. | - -**Example** - -```js -previewOutput.on('error', (previewOutputError) => { - console.log(`Preview output error code: ${previewOutputError.code}`); -}) -``` - -## PreviewOutputErrorCode - -Enumerates the error codes used for preview output. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| ------------- | ---- | -------- | -| ERROR_UNKNOWN | -1 | Unknown error.| - -## PreviewOutputError - -Defines the preview output error. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name| Type | Description | -| ---- | ------------------------------------------------- | ---------------------- | -| code | [PreviewOutputErrorCode](#previewoutputerrorcode) | **PreviewOutput** error code.| - -## ImageRotation - -Enumerates the image rotation angles. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| ------------ | ---- | ------------- | -| ROTATION_0 | 0 | The image rotates 0 degrees. | -| ROTATION_90 | 90 | The image rotates 90 degrees. | -| ROTATION_180 | 180 | The image rotates 180 degrees.| -| ROTATION_270 | 270 | The image rotates 270 degrees.| - -## Location - -Defines geolocation information. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Type | Mandatory|Description | -| ------------ | ------ | --- |------------ | -| latitude | number | Yes |Latitude, in degrees. | -| longitude | number | Yes |Longitude, in degrees. | -| altitude | number | Yes |Altitude, in meters. | - -## QualityLevel - -Enumerates the image quality levels. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Value | Description | -| -------------------- | ---- | ------------ | -| QUALITY_LEVEL_HIGH | 0 | High image quality. | -| QUALITY_LEVEL_MEDIUM | 1 | Medium image quality.| -| QUALITY_LEVEL_LOW | 2 | Low image quality. | - - -## PhotoCaptureSetting - -Defines the settings for photo capture. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -| Name | Type | Mandatory | Default Value | Description | -| -------- | ------------------------------- | ---- | ----------------- | -----------------| -| quality | [QualityLevel](#qualitylevel) | No | QUALITY_LEVEL_HIGH| Photo quality. | -| rotation | [ImageRotation](#imagerotation) | No | ROTATION_0 | Rotation angle of the photo. | -| location | [Location](#location) | No | (0,0,0) | Geolocation information of the photo. | -| mirror | boolean | No | false |Whether mirroring is enabled. By default, mirroring is disabled.| - -## PhotoOutput - -Implements output information used in a **CaptureSession**. - -### getDefaultCaptureSetting - -getDefaultCaptureSetting(callback: AsyncCallback): void - -Obtains the default shooting parameters. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------------- | ---- | -------------------- | -| callback | AsyncCallback<[PhotoCaptureSetting](#photocapturesetting)\> | Yes | Callback used to return the result.| - -**Example** - -```js -photoOutput.getDefaultCaptureSetting((err, photocapturesetting) => { - if (err) { - console.error(`Failed to get the defaultCaptureSetting. ${err.message}`); - return; - } - console.log('Callback returned with an array of defaultCaptureSetting.'); -}) -``` - -### getDefaultCaptureSetting - -getDefaultCaptureSetting(): Promise - -Obtains the default shooting parameters. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ----------------------------------------------------- | ----------------------- | -| Promise<[PhotoCaptureSetting](#photocapturesetting)\> | Promise used to return the result.| - -**Example** - -```js -photoOutput.getDefaultCaptureSetting().then((photocapturesetting) => { - console.log('Callback returned with an array of defaultCaptureSetting.'); -}) -``` - -### capture - -capture(callback: AsyncCallback): void - -Captures a photo with the default shooting parameters. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| - -**Example** - -```js -photoOutput.capture((err) => { - if (err) { - console.error(`Failed to capture the photo ${err.message}`); - return; - } - console.log('Callback invoked to indicate the photo capture request success.'); -}); -``` - -### capture - -capture(setting: PhotoCaptureSetting, callback: AsyncCallback): void - -Captures a photo with the specified shooting parameters. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------- | ---- | -------------------- | -| setting | [PhotoCaptureSetting](#photocapturesetting) | Yes | Shooting settings. | -| callback | AsyncCallback | Yes | Callback used to return the result. | - -**Example** - -```js -let settings:PhotoCaptureSetting = { - quality = 1, - rotation = 0 -} -photoOutput.capture(settings, (err) => { - if (err) { - console.error(`Failed to capture the photo ${err.message}`); - return; - } - console.log('Callback invoked to indicate the photo capture request success.'); -}); -``` - -### capture - -capture(setting?: PhotoCaptureSetting): Promise - -Captures a photo with the specified shooting parameters. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------- | ------------------------------------------- | ---- | -------- | -| setting | [PhotoCaptureSetting](#photocapturesetting) | No | Shooting settings.| - -**Return value** - -| Type | Description | -| -------------- | ------------------------ | -| Promise| Promise used to return the result.| - - -**Example** - -```js -photoOutput.capture().then(() => { - console.log('Promise returned to indicate that photo capture request success.'); -}) -``` - -### isMirrorSupported - -isMirrorSupported(callback: AsyncCallback): void - -Checks whether mirroring is supported. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------- | ---- | -------------------------- | -| callback | AsyncCallback | Yes | Callback used to return the mirroring support status. The value **true** means that mirroring is supported, and **false** means the opposite. | - -**Example** - -```js -captureSession.isMirrorSupported((err, isSupported) => { - if (err) { - console.error(`Failed to check mirror is supported ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of isMirrorSupported.'); -}) -``` - -### isMirrorSupported - -isMirrorSupported(): Promise - -Checks whether mirroring is supported. This API uses a promise to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Return value** - -| Type | Description | -| ----------------- | ------------------------------------------- | -| Promise | Promise used to return the mirroring support status. The value **true** means that mirroring is supported, and **false** means the opposite. | - -**Example** - -```js -captureSession.isMirrorSupported().then((isSupported) => { - console.log(`Promise returned with mirror supported: ${isSupported}`); -}) -``` - -### on('captureStart') - -on(type: 'captureStart', callback: AsyncCallback): void - -Listens for shooting start events. This API uses an asynchronous callback to return the capture ID. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ---------------------- | ---- | ------------------------------------------ | -| type | string | Yes | Event type. The value is fixed at **'captureStart'**, indicating the shooting start event.| -| callback | AsyncCallback | Yes | Callback used to return the capture ID. | - -**Example** - -```js -photoOutput.on('captureStart', (err, captureId) => { - console.log(`photo capture stated, captureId : ${captureId}`); -}) -``` - -### on('frameShutter') - -on(type: 'frameShutter', callback: AsyncCallback): void - -Listens for frame shutter events. This API uses an asynchronous callback to return the event information. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------- | --- | ------------------------------------ | -| type | string | Yes | Event type. The value is fixed at **'frameShutter'**, indicating the frame shutter event.| -| callback | AsyncCallback<[FrameShutterInfo](#frameshutterinfo)\> | Yes | Callback used to return the result. | - -**Example** - -```js -photoOutput.on('frameShutter', (err, frameShutterInfo) => { - console.log(`photo capture end, captureId : ${frameShutterInfo.captureId}`); - console.log(`Timestamp for frame : ${frameShutterInfo.timestamp}`); -}) -``` - -### on('captureEnd') - -on(type: 'captureEnd', callback: AsyncCallback): void - -Listens for shooting end events. This API uses an asynchronous callback to return the event information. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------- | ---- | ---------------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'captureEnd'**, indicating the shooting end event.| -| callback | AsyncCallback<[CaptureEndInfo](#captureendinfo)\> | Yes | Callback used to return the result. | - -**Example** - -```js -photoOutput.on('captureEnd', (err, captureEndInfo) => { - console.log(`photo capture end, captureId : ${captureEndInfo.captureId}`); - console.log(`frameCount : ${captureEndInfo.frameCount}`); -}) -``` - -### on('error') - -on(type: 'error', callback: ErrorCallback): void - -Listens for **PhotoOutput** errors. This API uses a callback to return the errors. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------- | ---- | ----------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the photo output error event.| -| callback | ErrorCallback<[PhotoOutputError](#photooutputerror)\> | Yes | Callback used to return the error information. | - -**Example** - -```js -photoOutput.on('error', (err, photoOutputError) => { - console.log(`Photo output error code: ${photoOutputError.code}`); -}) -``` +**System capability**: SystemCapability.Multimedia.Camera.Core -## FrameShutterInfo +| Name | Value | Description | +| ------------ | ---- | --------------- | +| ROTATION_0 | 0 | The image rotates 0 degrees. | +| ROTATION_90 | 90 | The image rotates 90 degrees. | +| ROTATION_180 | 180 | The image rotates 180 degrees.| +| ROTATION_270 | 270 | The image rotates 270 degrees.| -Defines the frame shutter information. +## QualityLevel + +Enumerates the image quality levels. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Type | Mandatory| Description | -| --------- | ------ | ---- | ---------- | -| captureId | number | Yes | ID of this capture action. | -| timestamp | number | Yes | Timestamp when the frame shutter event is triggered.| +| Name | Value | Description | +| -------------------- | ---- | -------------- | +| QUALITY_LEVEL_HIGH | 0 | High image quality. | +| QUALITY_LEVEL_MEDIUM | 1 | Medium image quality.| +| QUALITY_LEVEL_LOW | 2 | Low image quality. | -## CaptureEndInfo -Defines the capture end information. +## PhotoCaptureSetting + +Defines the settings for photo capture. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Type | Mandatory| Description | -| ---------- | ------ | ---- | ---------| -| captureId | number | Yes | ID of this capture action.| -| frameCount | number | Yes | Number of frames captured. | +| Name | Type | Mandatory| Description | +| -------- | ------------------------------- | ---- | -------------- | +| quality | [QualityLevel](#qualitylevel) | No | Photo quality. | +| rotation | [ImageRotation](#imagerotation) | No | Rotation angle of the photo.| -## PhotoOutputErrorCode -Enumerates the error codes used for photo output. +## PhotoOutput -**System capability**: SystemCapability.Multimedia.Camera.Core +Implements photo output. -| Name | Value | Description | -| ----------------------------- | ---- | --------------- | -| ERROR_UNKNOWN | -1 | Unknown error. | -| ERROR_DRIVER_ERROR | 0 | The driver or hardware is faulty.| -| ERROR_INSUFFICIENT_RESOURCES | 1 | Insufficient resources. | -| ERROR_TIMEOUT | 2 | Timeout. | +### capture -## PhotoOutputError +capture(callback: AsyncCallback): void -Defines a photo output error. +Captures a photo with the default shooting settings. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name| Type | Description | -| ---- | ------------------------------------- | ----------------------- | -| code | [PhotoOutputError](#photooutputerror) | **PhotoOutput** error code.| +**Parameters** -## VideoOutput +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback | Yes | Callback used to return the result.| -Implements output information used in a video recording session. +**Example** -### start +```js +photoOutput.capture((err) => { + if (err) { + console.error('Failed to capture the photo ${err.message}'); + return; + } + console.log('Callback invoked to indicate the photo capture request success.'); +}); +``` -start(callback: AsyncCallback): void +### capture -Starts video recording. This API uses an asynchronous callback to return the result. +capture(setting: PhotoCaptureSetting, callback: AsyncCallback): void + +Captures a photo with the specified shooting settings. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------------- | ---- | ------------------------ | +| setting | [PhotoCaptureSetting](#photocapturesetting) | Yes | Shooting settings. | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -videoOutput.start((err) => { +let settings:PhotoCaptureSetting = { + quality = 1, + rotation = 0 +} +photoOutput.capture(settings, (err) => { if (err) { - console.error(`Failed to start the video output ${err.message}`); + console.error('Failed to capture the photo ${err.message}'); return; } - console.log('Callback invoked to indicate the video output start success.'); + console.log('Callback invoked to indicate the photo capture request success.'); }); ``` -### start +### capture -start(): Promise +capture(setting?: PhotoCaptureSetting): Promise -Starts video recording. This API uses a promise to return the result. +Captures a photo with the specified shooting settings. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core +**Parameters** + +| Name | Type | Mandatory| Description | +| ------- | ------------------------------------------- | ---- | ---------- | +| setting | [PhotoCaptureSetting](#photocapturesetting) | No | Shooting settings.| + **Return value** -| Type | Description | -| -------------- | ----------------------- | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| **Example** ```js -videoOutput.start().then(() => { - console.log('Promise returned to indicate that start method execution success.'); +photoOutput.capture().then(() => { + console.log('Promise returned to indicate that photo capture request success.'); }) ``` -### stop +### release -stop(callback: AsyncCallback): void +release(callback: AsyncCallback): void -Stops video recording. This API uses an asynchronous callback to return the result. +Releases this **PhotoOutput** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core @@ -4106,465 +2290,465 @@ Stops video recording. This API uses an asynchronous callback to return the resu **Example** ```js -videoOutput.stop((err) => { +photoOutput.release((err) => { if (err) { - console.error(`Failed to stop the video output ${err.message}`); + console.error('Failed to release the PhotoOutput instance ${err.message}'); return; } - console.log('Callback invoked to indicate the video output stop success.'); + console.log('Callback invoked to indicate that the PhotoOutput instance is released successfully.'); }); ``` -### stop +### release -stop(): Promise +release(): Promise -Stops video recording. This API uses a promise to return the result. +Releases this **PhotoOutput** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| -------------- | ----------------------- | +| Type | Description | +| -------------- | --------------------------- | | Promise| Promise used to return the result.| + **Example** ```js -videoOutput.stop().then(() => { - console.log('Promise returned to indicate that stop method execution success.'); +photoOutput.release().then(() => { + console.log('Promise returned to indicate that the PhotoOutput instance is released successfully.'); }) -``` +``` -### on('frameStart') +### on('captureStart') -on(type: 'frameStart', callback: AsyncCallback): void +on(type: 'captureStart', callback: AsyncCallback): void -Listens for video recording start events. This API uses an asynchronous callback to return the result. +Listens for shooting start events. This API uses an asynchronous callback to return the capture ID. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ----------------------------------------- | -| type | string | Yes | Event type. The value is fixed at **frameStart**, indicating the video recording start event.| -| callback | AsyncCallback | Yes | Callback used to return the result. | +| Name | Type | Mandatory| Description | +| :------- | :--------------------- | :--- | :----------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'captureStart'**, indicating the shooting start event.| +| callback | AsyncCallback | Yes | Callback used to return the capture ID. | **Example** ```js -videoOutput.on('frameStart', () => { - console.log('Video frame started'); +photoOutput.on('captureStart', (err, captureId) => { + console.log('photo capture stated, captureId : ' + captureId); }) ``` -### on('frameEnd') +### on('frameShutter') -on(type: 'frameEnd', callback: AsyncCallback): void +on(type: 'frameShutter', callback: AsyncCallback): void -Listens for video recording stop events. This API uses an asynchronous callback to return the result. +Listens for frame shutter events. This API uses an asynchronous callback to return the event information. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------------------------------------ | -| type | string | Yes | Event type. The value is fixed at **'frameEnd'**, indicating the video recording stop event.| -| callback | AsyncCallback | Yes | Callback used to return the result. | +| Name | Type | Mandatory| Description | +| :------- | :---------------------------------------------------- | :--- | :--------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'frameShutter'**, indicating the frame shutter event.| +| callback | AsyncCallback<[FrameShutterInfo](#frameshutterinfo)\> | Yes | Callback used to return the result. | **Example** ```js -videoOutput.on('frameEnd', () => { - console.log('Video frame ended'); +photoOutput.on('frameShutter', (err, frameShutterInfo) => { + console.log('photo capture end, captureId : ' + frameShutterInfo.captureId); + console.log('Timestamp for frame : ' + frameShutterInfo.timestamp); }) ``` -### on('error') +### on('captureEnd') -on(type: 'error', callback: ErrorCallback): void +on(type: 'captureEnd', callback: AsyncCallback): void -Listens for errors that occur during video recording. This API uses a callback to return the result. +Listens for shooting end events. This API uses an asynchronous callback to return the event information. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------ | ---- | -------------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the video output error event.| -| callback | Callback<[VideoOutputError](#videooutputerror)\> | Yes | Callback used to return the error information. | +| Name | Type | Mandatory| Description | +| :------- | :------------------------------------------------ | :--- | :--------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'captureEnd'**, indicating the shooting end event.| +| callback | AsyncCallback<[CaptureEndInfo](#captureendinfo)\> | Yes | Callback used to return the result. | **Example** ```js -videoOutput.on('error', (VideoOutputError) => { - console.log(`Video output error code: ${VideoOutputError.code}`); +photoOutput.on('captureEnd', (err, captureEndInfo) => { + console.log('photo capture end, captureId : ' + captureEndInfo.captureId); + console.log('frameCount : ' + captureEndInfo.frameCount); }) ``` -## VideoOutputErrorCode +### on('error') + +on(type: 'error', callback: ErrorCallback): void -Enumerates the error codes used for video recording. +Listens for **PhotoOutput** errors. This API uses a callback to return the errors. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| --------------------- | ---- | ------------ | -| ERROR_UNKNOWN | -1 | Unknown error. | -| ERROR_DRIVER_ERROR | 0 | The driver or hardware is faulty.| +**Parameters** + +| Name | Type | Mandatory| Description | +| :------- | :---------------------------------------------------- | :--- | :---------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the photo output error event.| +| callback | ErrorCallback<[PhotoOutputError](#photooutputerror)\> | Yes | Callback used to return the error information. | + +**Example** -## VideoOutputError +```js +photoOutput.on('error', (err, photoOutputError) => { + console.log('Photo output error code: ' + photoOutputError.code); +}) +``` -Defines a video output error. +## FrameShutterInfo + +Defines the frame shutter information. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name| Type | Description | -| ---- | ------------------------------------- | ----------------------- | -| code | [PhotoOutputError](#photooutputerror) | **VideoOutput** error code.| +| Name | Type | Mandatory| Description | +| --------- | ------ | ---- | ----------------------------- | +| captureId | number | Yes | ID of this capture action.| +| timestamp | number | Yes | Timestamp when the frame shutter event is triggered. | -## MetadataObjectType +## CaptureEndInfo -Enumerates metadata streams. +Defines the capture end information. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| ------------------------- | ---- | ----------------- | -| FACE_DETECTION | 0 | Metadata object type.| +| Name | Type | Mandatory| Description | +| ---------- | ------ | ---- | ----------------------------- | +| captureId | number | Yes | ID of this capture action.| +| frameCount | number | Yes | Number of frames captured. | -## Rect +## PhotoOutputErrorCode -Defines a rectangle. +Enumerates the error codes used in a **PhotoOutput** instance. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Type | Description | -| -------- | ------ | -------------------- | -| topLeftX | number | X-axis coordinate of the upper left corner of the rectangle. | -| topLeftY | number | Y-axis coordinate of the upper left corner of the rectangle. | -| width | number | Width of the rectangle. | -| height | number | Height of the rectangle. | +| Name | Value | Description | +| ------------- | ---- | ---------- | +| ERROR_UNKNOWN | -1 | Unknown error.| + +## PhotoOutputError + +Defines a **PhotoOutput** error. -## MetadataObject +**System capability**: SystemCapability.Multimedia.Camera.Core -Implements camera metadata, which is the data source of **[CameraInput](#camerainput)**. +| Name| Type | Description | +| ---- | ------------------------------------- | ----------------------- | +| code | [PhotoOutputError](#photooutputerror) | **PhotoOutput** error code.| -### getType +## camera.createVideoOutput -getType(callback: AsyncCallback): void +createVideoOutput(surfaceId: string, callback: AsyncCallback): void -Obtains the metadata object type. This API uses an asynchronous callback to return the result. +Creates a **VideoOutput** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------------------------------------------- | --- | -------------------- | -| callback | AsyncCallback<[MetadataObjectType](#metadataobjecttype)\> | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| --------- | ------------------------------------------- | ---- | ----------------------------------- | +| surfaceId | string | Yes | Surface ID, which is obtained from **VideoRecorder**. | +| callback | AsyncCallback<[VideoOutput](#videooutput)\> | Yes | Callback used to return the **VideoOutput** instance.| **Example** ```js -metadataObject.getType((err, metadataObjectType) => { +camera.createVideoOutput(("surfaceId"), (err, videoOutput) => { if (err) { - console.error(`Failed to get type. ${err.message}`); + console.error('Failed to create the VideoOutput instance. ${err.message}'); return; } - console.log('Callback returned with an array of metadataObjectType.'); -}) + console.log('Callback returned with the VideoOutput instance'); +}); ``` -### getType +## camera.createVideoOutput -getType(): Promise +createVideoOutput(surfaceId: string): Promise -Obtains the metadata object type. This API uses a promise to return the result. +Creates a **VideoOutput** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core +**Parameters** + +| Name | Type | Mandatory| Description | +| --------- | ------ | ---- | --------------------------------- | +| surfaceId | string | Yes | Surface ID, which is obtained from **VideoRecorder**.| + **Return value** -| Type | Description | -| --------------------------------------------------- | --------------------------- | -| Promise<[MetadataObjectType](#metadataobjecttype)\> | Promise used to return the result.| +| Type | Description | +| ------------------------------------- | -------------------------------------- | +| Promise<[VideoOutput](#videooutput)\> | Promise used to return the **VideoOutput** instance.| **Example** ```js -metadataObject.getType().then((metadataObjectType) => { - console.log('Callback returned with an array of metadataObjectType.'); +camera.createVideoOutput("surfaceId" +).then((videoOutput) => { + console.log('Promise returned with the VideoOutput instance'); }) ``` -### getTimestamp +## VideoOutput + +Implements output information used in a video recording session. + +### start -getTimestamp(callback: AsyncCallback): void +start(callback: AsyncCallback): void -Obtains the metadata timestamp. This API uses an asynchronous callback to return the result. +Starts video recording. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------------- | ---- | ------------------------ | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -metadataObject.getTimestamp((err) => { +videoOutput.start((err) => { if (err) { - console.error(`Failed to get timestamp. ${err.message}`); + console.error('Failed to start the video output ${err.message}'); return; } - console.log('Callback returned with timestamp getted.'); -}) + console.log('Callback invoked to indicate the video output start success.'); +}); ``` -### getTimestamp +### start -getTimestamp(): Promise +start(): Promise -Obtains the metadata timestamp. This API uses a promise to return the result. +Starts video recording. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| ---------------- | --------------------------- | -| Promise | Promise used to return the result.| +| Type | Description | +| -------------- | --------------------------- | +| Promise| Promise used to return the result.| + **Example** ```js -metadataObject.getTimestamp().then(() => { - console.log('Callback returned with timestamp getted.'); +videoOutput.start().then(() => { + console.log('Promise returned to indicate that start method execution success.'); }) ``` -### getBoundingBox +### stop -getBoundingBox(callback: AsyncCallback): void +stop(callback: AsyncCallback): void -Obtains the bounding box of metadata. This API uses an asynchronous callback to return the result. +Stops video recording. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------------- | ---- | ------------------------ | -| callback | AsyncCallback<[Rect](#rect)\> | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -metadataObject.getBoundingBox((err, rect) => { +videoOutput.stop((err) => { if (err) { - console.error(`Failed to get boundingBox. ${err.message}`); + console.error('Failed to stop the video output ${err.message}'); return; } - console.log('Callback returned with boundingBox getted.'); -}) + console.log('Callback invoked to indicate the video output stop success.'); +}); ``` -### getBoundingBox +### stop -getBoundingBox(): Promise +stop(): Promise -Obtains the bounding box of metadata. This API uses a promise to return the result. +Stops video recording. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| ---------------------- | --------------------------- | -| Promise<[Rect](#rect)\> | Promise used to return the result.| +| Type | Description | +| -------------- | --------------------------- | +| Promise| Promise used to return the result.| **Example** ```js -metadataObject.getBoundingBox().then((rect) => { - console.log('Callback returned with boundingBox getted.'); +videoOutput.start().then(() => { + console.log('Promise returned to indicate that stop method execution success.'); }) ``` -## MetadataFaceObject - -Implements the face object of metadata. It inherits [MetadataObject](#metadataobject). - -## MetadataOutput - -Implements metadata streams. It inherits **[CameraOutput](#cameraoutput)**. - -### start +### release -start(callback: AsyncCallback): void +release(callback: AsyncCallback): void -Starts to output metadata. This API uses an asynchronous callback to return the result. +Releases this **VideoOutput** instance. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -metadataOutput.start((err) => { +videoOutput.release((err) => { if (err) { - console.error(`Failed to start metadataOutput. ${err.message}`); + console.error('Failed to release the VideoOutput instance ${err.message}'); return; } - console.log('Callback returned with metadataOutput started.'); -}) + console.log('Callback invoked to indicate that the VideoOutput instance is released successfully.'); +}); ``` -### start +### release -start(): Promise +release(): Promise -Starts to output metadata. This API uses a promise to return the result. +Releases this **VideoOutput** instance. This API uses a promise to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Return value** -| Type | Description | -| ---------------------- | ------------------------ | -| Promise | Promise used to return the result.| - -**Example** - -```js -metadataOutput.start().then(() => { - console.log('Callback returned with metadataOutput started.'); -}) -``` - -### stop - -stop(callback: AsyncCallback): void - -Stops outputting metadata. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Multimedia.Camera.Core - -**Parameters** +| Type | Description | +| -------------- | --------------------------- | +| Promise| Promise used to return the result.| -| Name | Type | Mandatory| Description | -| -------- | -------------------------- | ---- | ------------------- | -| callback | AsyncCallback | Yes | Callback used to return the result.| **Example** ```js -metadataOutput.stop((err) => { - if (err) { - console.error(`Failed to stop the metadataOutput. ${err.message}`); - return; - } - console.log('Callback returned with metadataOutput stopped.'); +videoOutput.release().then(() => { + console.log('Promise returned to indicate that the VideoOutput instance is released successfully.'); }) ``` -### stop +### on('frameStart') -stop(): Promise +on(type: 'frameStart', callback: AsyncCallback): void -Stops outputting metadata. This API uses a promise to return the result. +Listens for video recording start events. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core -**Return value** +**Parameters** -| Type | Description | -| ---------------------- | --------------------------- | -| Promise | Promise used to return the result.| +| Name | Type | Mandatory| Description | +| :------- | :------------------- | :--- | :----------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **`frameStart`**, indicating the video recording start event.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -metadataOutput.stop().then(() => { - console.log('Callback returned with metadataOutput stopped.'); +videoOutput.on('frameStart', () => { + console.log('Video frame started'); }) ``` -### on('metadataObjectsAvailable') +### on('frameEnd') -on(type: 'metadataObjectsAvailable', callback: AsyncCallback\>): void +on(type: 'frameEnd', callback: AsyncCallback): void -Listens for metadata objects. This API uses an asynchronous callback to return the result. +Listens for video recording end events. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------------------------------------- - | ---- | ------------------------------------ | -| type | string | Yes | Event type. The value is fixed at **'metadataObjectsAvailable'**, that is, the metadata object.| -| callback | Callback\> | Yes | Callback used to return the error information. | +| Name | Type | Mandatory| Description | +| :------- | :------------------- | :--- | :--------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **`frameEnd`**, indicating the video frame end event.| +| callback | AsyncCallback | Yes | Callback used to return the result. | **Example** ```js -metadataOutput.on('metadataObjectsAvailable', (metadataObject) => { - console.log(`metadata output error code: ${metadataObject.code}`); +videoOutput.on('frameEnd', () => { + console.log('Video frame ended'); }) ``` ### on('error') -on(tuype: 'error', callback: ErrorCallback): void +on(type: 'error', callback: ErrorCallback): void -Listens for metadata errors. This API uses an asynchronous callback to return the result. +Listens for **VideoOutput** errors. This API uses a callback to return the result. **System capability**: SystemCapability.Multimedia.Camera.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------------------------------ | ---- | --------------------------------------- | -| type | string | Yes | Event type. The value is fixed at **'error'**, that is, the metadata error.| -| callback | Callback<[MetadataOutputError](#metadataoutputerror)\> | Yes | Callback used to return the error information. | +| Name | Type | Mandatory| Description | +| :------- | :----------------------------------------------- | :--- | :-------------------------------------------- | +| type | string | Yes | Event type. The value is fixed at **'error'**, indicating the video output error event.| +| callback | Callback<[VideoOutputError](#videooutputerror)\> | Yes | Callback used to return the error information. | **Example** ```js -metadataOutput.on('error', (metadataOutputError) => { - console.log(`Metadata output error code: ${metadataOutputError.code}`); +videoOutput.on('error', (VideoOutputError) => { + console.log('Video output error code: ' + VideoOutputError.code); }) ``` -## MetadataOutputErrorCode +## VideoOutputErrorCode -Enumerates the codes used for metadata output errors. +Enumerates the error codes used in a **VideoOutput** instance. **System capability**: SystemCapability.Multimedia.Camera.Core -| Name | Value | Description | -| ------------------------------- | ---- | -------- | -| ERROR_UNKNOWN | -1 | Unknown error.| -| ERROR_INSUFFICIENT_RESOURCES | 0 | Insufficient resources.| +| Name | Value | Description | +| ------------- | ---- | ---------- | +| ERROR_UNKNOWN | -1 | Unknown error.| -## MetadataOutputError +## VideoOutputError -Defines a metadata output error. +Defines a **VideoOutput** error. **System capability**: SystemCapability.Multimedia.Camera.Core | Name| Type | Description | | ---- | ------------------------------------- | ----------------------- | -| code | [MetadataOutputErrorCode](#metadataoutputerrorcode) | **MetadataOutput** error code.| +| code | [PhotoOutputError](#photooutputerror) | **VideoOutput** error code.|