HarmonyOS相机的基本使用实战 原创 精华
相机开发流程
相机权限申请
config.json
MainAbility
相机设备创建
布局文件上添加按钮:
按钮的逻辑代码:
至此,相机设备的创建已经完成,执行成功意味着相机系统的硬件已经完成了上电。创建相机设备成功后,在CameraStateCallback中会触发onCreated(Camera camera)回调,并且带回Camera对象,用于执行相机设备的操作。当一个新的相机设备成功创建后,首先需要对相机进行配置,调用configure(CameraConfig)方法实现配置。
相机设备配置
相机配置主要是设置预览、拍照、录像所需要用到的Surface(ohos.agp.graphics.Surface),没有配置过Surface,相应的功能不能使用。为了进行相机帧捕获结果的数据和状态检测,有时还需要在相机配置时调用setFrameStateCallback(FrameStateCallback, EventHandler)方法设置帧回调。相机配置成功后,在CameraStateCallback中会触发onConfigured(Camera camera)回调,然后才可以执行相机帧捕获相关的操作。
相机配置,布局文件上加一个布局:
逻辑代码:
配置完成后,会回调public void onConfigured(Camera camera)方法,在这个方法里铺货相机拍摄的帧。
相机帧捕获
用户一般都是先看见预览画面才执行拍照或者其他功能,所以对于一个普通的相机应用,预览是必不可少的。通过getFrameConfigBuilder(FRAME_CONFIG_PREVIEW)方法获取预览配置模板,更多的帧配置项以及详细使用方法请参考API接口说明的FrameConfig.Builder部分。
通过triggerLoopingCapture(FrameConfig)方法实现循环帧捕获实现预览:
经过以上的操作,相机应用已经可以正常进行实时预览了。在预览状态下,开发者还可以执行其他操作,比如:当预览帧配置更改时,可以通过triggerLoopingCapture(FrameConfig)方法实现预览帧配置的更新;
通过stopLoopingCapture()方法停止循环帧捕获(停止预览)。
到这里相机的基本用户流程,基本搞清楚,使用相机最后一步就是释放了。
最后的效果:
感谢钟洪发老师的分享。
这想必就是进阶课程的内容,先预习了。谢谢老师
划重点!
这算是相机最基本的用法,更复杂的这个操作是无法瞒足的,需要更高级的其他库去支持。
学习了
能不能把Demo源码地址发出来,比如gitee地址
上面就是源码啊,98%的代码都贴出来了!你按照步骤就能做出来!很小的细节自己补一下!
感谢钟老师的分享