openharmony 鸿蒙 arkts-apis-camera-CameraInput

2026-08-25 浏览 (1)

Interface (CameraInput)

CameraInput defines the camera input object.

It provides camera device information used in Session.

NOTE

The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.

Modules to Import

import { camera } from '@kit.CameraKit';

open

open(callback: AsyncCallback<void>): void

Opens this camera device. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<void>YesCallback used to return the result. If the camera device is opened successfully, err is undefined; otherwise, err is an error object with an error code defined in CameraErrorCode.

Error codes

For details about the error codes, see Camera Error Codes.

IDError Message
7400107Can not use camera cause of conflict.
7400108Camera disabled cause of security reason.
7400201Camera service fatal error.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function openCameraInput(cameraInput: camera.CameraInput): void {
  cameraInput.open((err: BusinessError) => {
    if (err) {
      console.error(`Failed to open camera, error code: ${err.code}.`);
      return;
    }
    console.info('Callback returned with camera opened.');
  });
}

open

open(): Promise<void>

Opens this camera device. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Camera Error Codes.

IDError Message
7400102Operation not allowed.
7400107Can not use camera cause of conflict.
7400108Camera disabled cause of security reason.
7400201Camera service fatal error.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function openCameraInput(cameraInput: camera.CameraInput): void {
  cameraInput.open().then(() => {
    console.info('Promise returned with camera opened.');
  }).catch((error: BusinessError) => {
    console.error(`Failed to open camera, error code: ${error.code}.`);
  });
}

open12+

open(isSecureEnabled: boolean): Promise<bigint>

Opens this camera device. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
isSecureEnabledbooleanYesWhether to open the camera device in secure mode. true to open in secure mode, false otherwise. If the operation fails, an error code defined in CameraErrorCode is returned.

Return value

TypeDescription
Promise<bigint>Promise used to return the handle to the camera device in secure mode.

Error codes

For details about the error codes, see Camera Error Codes.

IDError Message
7400107Can not use camera cause of conflict.
7400108Camera disabled cause of security reason.
7400201Camera service fatal error.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function openCameraInput(cameraInput: camera.CameraInput): void {
  cameraInput.open(true).then(() => {
    console.info('Promise returned with camera opened.');
  }).catch((error: BusinessError) => {
    console.error(`Failed to open camera, error code: ${error.code}.`);
  });
}

open18+

open(type: CameraConcurrentType): Promise<void>

Opens the camera with the specified concurrency type. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
typeCameraConcurrentTypeYesConcurrency type. If the API fails to be called, an error code is returned.

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Camera Error Codes.

IDError Message
7400102Operation not allowed.
7400107Can not use camera cause of conflict.
7400108Camera disabled cause of security reason.
7400201Camera service fatal error.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function openCameraInput(cameraInput: camera.CameraInput): void {
  cameraInput.open(0).then(() => {
    console.info('Promise returned with camera opened.');
  }).catch((error: BusinessError) => {
    console.error(`Failed to open camera, error code: ${error.code}.`);
  });
}

close

close(callback: AsyncCallback<void>): void

Closes this camera device. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
callbackAsyncCallback<void>YesCallback used to return the result. If the camera device is closed successfully, err is undefined. Otherwise, err is an error object with an error code defined in CameraErrorCode.

Error codes

For details about the error codes, see Camera Error Codes.

IDError Message
7400201Camera service fatal error.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function closeCameraInput(cameraInput: camera.CameraInput): void {
  cameraInput.close((err: BusinessError) => {
    if (err) {
      console.error(`Failed to close the cameras, error code: ${err.code}.`);
      return;
    }
    console.info('Callback returned with camera closed.');
  });
}

close

close(): Promise<void>

Closes this camera device. This API uses a promise to return the result.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Return value

TypeDescription
Promise<void>Promise that returns no value.

Error codes

For details about the error codes, see Camera Error Codes.

IDError Message
7400201Camera service fatal error.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function closeCameraInput(cameraInput: camera.CameraInput): void {
  cameraInput.close().then(() => {
    console.info('Promise returned with camera closed.');
  }).catch((error: BusinessError) => {
    console.error(`Failed to close the cameras, error code: ${error.code}.`);
  }); 
}

on('error')

on(type: 'error', camera: CameraDevice, callback: ErrorCallback): void

Subscribes to CameraInput error events. This API uses an asynchronous callback to return the result.

NOTE

Currently, you cannot use off() to unregister the callback in the callback method of on().

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The value is fixed at 'error'. The event can be listened for when a CameraInput instance is created. This event is triggered and the result is returned when an error occurs on the camera device. For example, if the camera device is unavailable or a conflict occurs, the error information is returned.
cameraCameraDeviceYesCamera device.
callbackErrorCallbackYesCallback used to return an error code defined in CameraErrorCode.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function callback(err: BusinessError): void {
  console.error(`Camera input error code: ${err.code}`);
}

function registerCameraInputError(cameraInput: camera.CameraInput, camera: camera.CameraDevice): void {
  cameraInput.on('error', camera, callback);
}

off('error')

off(type: 'error', camera: CameraDevice, callback?: ErrorCallback): void

Unsubscribes from CameraInput error events.

Atomic service API: This API can be used in atomic services since API version 19.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The value is fixed at 'error'. The event can be listened for when a CameraInput instance is created. This event is triggered and the result is returned when an error occurs on the camera device. For example, if the camera device is unavailable or a conflict occurs, the error information is returned.
cameraCameraDeviceYesCamera device.
callbackErrorCallbackNoCallback used to return the result. If this parameter is specified, only the corresponding callback will be unregistered (the callback object cannot be an anonymous function); otherwise, all registered callbacks will be unregistered.

Example

function unregisterCameraInputError(cameraInput: camera.CameraInput, camera: camera.CameraDevice): void {
  cameraInput.off('error', camera);
}

isPhysicalCameraOrientationVariable22+

isPhysicalCameraOrientationVariable(): boolean

Checks whether the physical camera orientation is adjustable in different fold states of the device.

Atomic service API: This API can be used in atomic services since API version 22.

System capability: SystemCapability.Multimedia.Camera.Core

Return value

TypeDescription
booleanChecks whether the physical camera orientation is adjustable in different fold states of the device. true if adjustable, false otherwise. If the API call fails, undefined is returned.

Example

function isPhysicalCameraOrientationVariable(cameraInput: camera.CameraInput): boolean {
  let isVariable: boolean = cameraInput.isPhysicalCameraOrientationVariable();
  return isVariable;
}

getPhysicalCameraOrientation22+

getPhysicalCameraOrientation(): number

Obtains the physical camera orientation in the current fold state of the device.

Atomic service API: This API can be used in atomic services since API version 22.

System capability: SystemCapability.Multimedia.Camera.Core

Return value

TypeDescription
numberPhysical camera orientation.

Example

function getPhysicalCameraOrientation(cameraInput: camera.CameraInput): number {
  let physicalCameraOrientation: number = cameraInput.getPhysicalCameraOrientation();
  return physicalCameraOrientation;
}

usePhysicalCameraOrientation22+

usePhysicalCameraOrientation(isUsed: boolean): void

Enables or disables the use of the physical camera orientation.

Atomic service API: This API can be used in atomic services since API version 22.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
isUsedbooleanYesEnables or disables the use of the physical camera orientation. true to enable, false otherwise.

Error codes

For details about the error codes, see Camera Error Codes.

IDError Message
7400102Operation not allowed.
7400201Camera service fatal error.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function usePhysicalCameraOrientation(cameraInput: camera.CameraInput, isUsed: boolean): void {
  try {
    cameraInput.usePhysicalCameraOrientation(isUsed);
  } catch (error) {
    let err = error as BusinessError;
    console.error(`The usePhysicalCameraOrientation call failed. error code: ${err.code}`);
  }
}

on('cameraOcclusionDetection')23+

on(type: 'cameraOcclusionDetection', callback: AsyncCallback<CameraOcclusionDetectionResult>): void

Subscribes to CameraInput occlusion events. This API uses an asynchronous callback to return the result.

NOTE

Currently, you cannot use off() to unregister the callback in the callback method of on().

Atomic service API: This API can be used in atomic services since API version 23.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The value is fixed at 'cameraOcclusionDetection'. The event can be listened for when a CameraInput instance is created. It is triggered when the occlusion status of the camera lens changes, and the occlusion status is returned.
callbackAsyncCallback<CameraOcclusionDetectionResult>YesCallback used to return the occlusion status.

Example

import { BusinessError } from '@kit.BasicServicesKit';

function callback(err: BusinessError, result: camera.CameraOcclusionDetectionResult): void {
  if (err !== undefined && err.code !== 0) {
      console.error('cameraOcclusionDetection with errorCode = ' + err.code);
      return;
  }
  if (!result) {
      console.error(`cameraOcclusionDetection result: undefined`);
      return;
  }
  console.info(`onCameraOcclusionDetection isCameraOccluded: ${result.isCameraOccluded}`);
  console.info(`onCameraOcclusionDetection isCameraLensDirty: ${result.isCameraLensDirty}`);
}

function registerCameraOcclusionDetection(cameraInput: camera.CameraInput): void {
  cameraInput.on('cameraOcclusionDetection', callback);
}

off('cameraOcclusionDetection')23+

off(type: 'cameraOcclusionDetection', callback?: AsyncCallback<CameraOcclusionDetectionResult>): void

Unsubscribes from CameraInput occlusion events. This API uses an asynchronous callback to return the result.

Atomic service API: This API can be used in atomic services since API version 23.

System capability: SystemCapability.Multimedia.Camera.Core

Parameters

NameTypeMandatoryDescription
typestringYesEvent type. The value is fixed at 'cameraOcclusionDetection'. The event can be listened for when a CameraInput instance is created. It is triggered when the occlusion status of the camera lens changes, and the occlusion status is returned.
callbackAsyncCallback<CameraOcclusionDetectionResult>NoCallback used to return the result. If this parameter is specified, the subscription to the specified event with the specified callback is canceled. (The callback object cannot be an anonymous function.) Otherwise, the subscriptions to the specified event with all the callbacks are canceled.

Example

function callback(err: BusinessError, result: camera.CameraOcclusionDetectionResult): void {
  if (err !== undefined && err.code !== 0) {
      console.error('cameraOcclusionDetection with errorCode = ' + err.code);
      return;
  }
  if (!result) {
      console.error(`cameraOcclusionDetection result: undefined`);
      return;
  }
  console.info(`onCameraOcclusionDetection isCameraOccluded: ${result.isCameraOccluded}`);
  console.info(`onCameraOcclusionDetection isCameraLensDirty: ${result.isCameraLensDirty}`);
}

function unregisterCameraOcclusionDetection(cameraInput: camera.CameraInput): void {
    cameraInput.off('cameraOcclusionDetection', callback);
}

function unregisterAllCameraOcclusionDetection(cameraInput: camera.CameraInput): void {
    cameraInput.off('cameraOcclusionDetection');
}

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 capi-oh-camera-capturesession-callbacks

openharmony 鸿蒙 arkts-apis-camera-OIS

openharmony 鸿蒙 capi-oh-camera-camera-devicequeryinfo

openharmony 鸿蒙 capi-oh-camera-camera-frameraterange

openharmony 鸿蒙 capi-oh-camera-camera-outputcapability

openharmony 鸿蒙 arkts-apis-camera-Photo

openharmony 鸿蒙 capi-oh-camera-camera-profile

openharmony 鸿蒙 capi-oh-camera-camera-manager

openharmony 鸿蒙 capi-oh-camera-previewoutput-callbacks

openharmony 鸿蒙 arkts-apis-camera-ManualExposureQuery

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