Camera

1. 简介

AIOT-3568A设有摄像头模块模块,支持USB摄像头,所以在使用摄像头的时候, 直接USB连接板卡即可使用摄像头进行调试开发(如下图):

cameraIndex

2. HDC相关指令

hdc指令可以用于查询相机的信息以及连接状态

3. 标准API使用方法

备注

本模块为开发者提供一套简单且易于理解的相机服务接口,开发者通过调用接口可以开发相机应用。 应用通过访问和操作相机硬件,实现基础操作,如预览、拍照和录像;还可以通过接口组合完成更多操作,如控制闪光灯和曝光时间、对焦或调焦等。

  • camera标准接口

    @ohos.multimedia.camera (相机管理)(系统接口)

  • API使用说明

    使用camera相关API开发时候,需要先了解熟悉第一个open Harmony工程的创建,相关文档 Hello World应用以及部署

    在使用一个API时,需要注意以下几点:
    • API权限说明

    • API的参数与返回值

    • API调用错误的时候,参考API错误码和通用错误码

    • API示例的正确使用

如下图所示,即为标准API文档

cameraDemo

  • 官方标准开发文档

4. 社区Demo

  • 简介

    为了帮助开发者更快速的使用板子开发和学习,我们在gitee上提供了一个WiFi相关的使用示例,每一个项目都是独立的DevEco Studio工程,开发者可以将工程导入到DevEco Studio中即可,通过浏览代码、编译工程、安装和运行应用示例来了解应用示例中涉及API的使用方法。

    giteeCamera示例

小技巧

在导入社区Demo工程的时候,需要开发者需要注意本地的开发环境是否与项目的一致,即本地SDK是否与项目SDK一致。

  • 导入模块

    在使用Camera标准API的时候,最重要的一步是导入Camera的模块,才能使用Camera相应的API接口。通常模块导入是在文件头导入 导入模块如下: ** import camera from @ohos.multimedia.camera’**

  • API 介绍

  • camera.getCameraManager(获取相机管理器实例)

    • getCameraManager(context: Context): CameraManager

  • getSupportedCameras(获取支持指定的相机设备对象)

    • getSupportedCameras(): Array<CameraDevice>

  • getSupportedOutputCapability(查询相机设备支持的输出能力)

    • getSupportedOutputCapability(camera: CameraDevice): CameraOutputCapability

  • isCameraMuted(查询相机当前的禁用状态)

    • isCameraMuted(): boolean

  • createCameraInput(使用CameraDevice对象创建CameraInput实例)

    • createCameraInput(camera: CameraDevice): CameraInput

    • 需要权限: ohos.permission.CAMERA

  • createPreviewOutput(创建预览输出对象)

    • createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput

  • CameraInput.open(打开相机,通过注册回调函数获取状态)

    • open(callback: AsyncCallback<void>): void

  • CameraInput.close(关闭相机,通过注册回调函数获取状态)

    • close(callback: AsyncCallback<void>): void

  • CameraInput.on(‘error’) (监听CameraInput的错误事件,通过注册回调函数获取结果)

    • on(type: ‘error’, camera: CameraDevice, callback: ErrorCallback): void

  • CameraInput.off(‘error’) (注销监听CameraInput的错误事件)

    • off(type: ‘error’, camera: CameraDevice, callback?: ErrorCallback): void

  • Demo主要实现源码

camera.ets

5. 代码编译

小技巧

代码编译详细流程可见,Hello World应用以及部署 中的第二部分(构建第一个页面部分内容)

6. 代码运行效果

用以上标准API接口实现Camera Demo,如下图所示:

camera