OpenHarmony Camera组件简介

简介

在当今数字化时代,相机功能已成为各类应用的标配,无论是记录生活点滴、分享精彩瞬间,还是为专业创作提供支持,都离不开强大的相机功能。OpenHarmony系统下的 Camera组件为开发者提供了一套完备的相机开发解决方案,助力打造功能丰富、体验卓越的相机应用。

应用通过Camera组件访问和操作相机硬件,实现基础操作,如预览、拍照和录像;还可以通过接口组合完成更多操作,开发更丰富的功能,如控制闪光灯和曝光时间、对焦或调焦等。

开发场景

定制化相机应用或模块开发:如果开发者想要开发一款独具特色的相机应用,或是在现有应用中融入个性化的相机模块,就需要深入研究 Camera组件的开发模型和工作流程,详细API说明可参考 Camera

便捷调用系统相机功能:当开发者只是希望在应用中实现简单的拍摄或录制功能时,CameraPicker 便是最佳选择,它最大的优势在于无需繁琐的相机权限申请流程,能够直接调用系统相机,快速完成照片拍摄或录像,具体可参考Camera Picker

开发架构

相机工作流程

Camera的工作流程如下图所示,可以概括为Camera输入设备管理、会话管理和相机输出管理三个紧密相连的部分。

  • 相机设备调用和控制摄像头采集数据,作为相机输入流。
  • 会话管理负责配置和管理Camera的输入流和输出流,配置输入流即选择某一摄像头操作,配置输出流即选择数据的输出形式。应用还可以通过切换会话满足不同场景的拍摄需求。
  • 配置相机的输出流,即将采集的数据以预览流、拍照流或视频流输出。

相机开发模型

如上图所示,相机开发模型展示了相机应用与系统各组件之间的协作关系。

相机应用通过控制相机实现图像显示(预览)、照片保存(拍照)、视频录制(录像)等基础操作。在这个过程中,相机服务会控制相机设备采集和输出数据,采集的图像数据在相机底层的Camera HDI直接通过BufferQueue传递到具体的功能模块进行处理。BufferQueue 主要负责将底层处理的数据及时传递到上层,用于图像显示或处理,在应用开发中无需深入了解其具体运作细节。

以视频录制为例进行说明,相机应用录制视频时,媒体录制服务先创建一个视频Surface(Surface内部包含BufferQueue)用于传递数据,并提供给相机应用,相机应用将Surface配置给相机服务,相机服务可控制相机设备采集视频数据,生成视频流,采集的数据经过Camera HDI处理后,通过Surface将视频流传递给媒体录制服务,媒体录制服务对视频数据进行处理后,保存为视频文件,完成视频录制。

相关推荐
m0_7496902312 小时前
【寻迹校园 HarmonyOS NEXT 实战 06】共享权威词表:让发布表单与首页筛选使用同一套分类
harmonyos·arkts·数据建模·软件架构·arkui
独守一片天14 小时前
鸿蒙新生态服务卡片设计与状态同步
华为·harmonyos
m0_7496902314 小时前
【寻迹校园 HarmonyOS NEXT 实战 07】不引入全局状态库:用 dataRevision 实现跨页面刷新
harmonyos·arkts·软件架构·状态管理·arkui
贾伟康14 小时前
【中国方言题库|01】HarmonyOS ArkTS 方言题库首页实战:组织地区入口、推荐内容和学习进度
harmonyos·arkts·arkui·多设备适配·本地数据
贾伟康16 小时前
【中国方言题库|04】HarmonyOS ArkTS 粤语分库实战:处理繁简文本、读音与练习入口
harmonyos·arkts·unicode·tts·arkui
OH_TPC16 小时前
HarmonyOS APP开发---"壁纸控"壁纸App,需要用到这个库
harmonyos
独守一片天16 小时前
鸿蒙穿戴设备与健康服务闭环
华为·harmonyos
Magic-ZYJ17 小时前
隐私优先 HarmonyOS 应用怎么设计:无账号、无后台、无统计 SDK
华为·harmonyos·鸿蒙·独立开发者·心晴手记
独守一片天17 小时前
鸿蒙车机手机协同服务生态
华为·智能手机·harmonyos
2501_9197490318 小时前
华为鸿蒙测手速APP—小羊手速
华为·harmonyos·鸿蒙