Camera Development Preparations
The main process of camera application development includes development preparations, device input management, session management, preview, photo capture, and video recording.
Requesting Permissions
Before developing a camera application, you must request camera-related permissions (as described in the table below) to ensure that the application has the permission to access the camera hardware and other services. Before requesting permissions, ensure that the basic principles for using permissions are met.
- To use the camera for photo capture, request the ohos.permission.CAMERA permission.
- To use the microphone to record audio, request the ohos.permission.MICROPHONE permission.
- To display location information in photos or videos captured, request the ohos.permission.MEDIA_LOCATION permission.
All these permissions must be authorized by users through a dialog box. For details about how to request and verify the permissions, see Requesting User Authorization.
- To read images or videos, you are advised to use the media library Picker to access them.
- To save images or videos, use the security components to save them.
NOTE
When the application needs to clone, back up, or synchronize images and videos in users' public directory, request the ohos.permission.READ_IMAGEVIDEO and ohos.permission.WRITE_IMAGEVIDEO permissions for reading and writing audio files. For details, see Requesting Restricted Permissions.
How to Develop
You can use either ArkTS or C++ APIs for camera development.
| Procedure | ArkTS Development | C++ Development |
|---|---|---|
| Input management | Device Input Management (ArkTS) | Device Input Management (C/C++) |
| Session management | Camera Session Management (ArkTS) | Camera Session Management (C/C++) |
| Preview | Preview (ArkTS) | Preview (C/C++) |
| Secondary processing of preview streams | - | Secondary Processing of Preview Streams (C/C++) |
| Photo capture | Photo Capture (ArkTS) | Photo Capture (C/C++) |
| Deferred photo delivery | Deferred Photo Delivery (ArkTS) | - |
| Moving photos | Moving Photos (ArkTS) | - |
| Video Recording | Video Recording (ArkTS) | Video Recording (C/C++) |
| Metadata | Camera Metadata (ArkTS) | Camera Metadata (C/C++) |