HarmonyOS 作为一款全新的面向全场景的分布式操作系统,不断创新,致力于为开发者提供更好、更高效的使用体验。接下来让我们一起学习了解下 HarmonyOS 中的多媒体框架的相关知识吧!
多媒体框架介绍结构:
相机(Camera)播放(Player)音频(Audio)相机(Camera)
①相机框架设计目标:简单易用、效果一致、性能优先
简单易用是指相机框架从面向用户、场景和一些功能的高级 API 的设计,去屏蔽一些底层复杂的硬件操作,从而简化应用层的编程。
效果一致是指相机框架通过对应用层接口的统一管控,以及对厂商扩展的归一,来确保对所有包含相机的应用提供同样的展示质量和效果。
性能优先是指相机框架通过内部软硬协同的设计,提升拍照启动、预览和拍照过程中的性能体验。
②相机框架介绍
如下图所示:
左侧绿色模块是目前已经开源或者开放的能力。其中包含一些镜头管理能力,例如镜头查询、生命周期管理,除此之外,也将支持一些基础的预览、拍照和录像功能。
为了进一步降低拍照过程中对于前台资源的占用,后期将考虑提供开源和开放的离线拍照的架构设计。
从分层架构的角度,相机框架的框架层提供了开发者可以感知的 API 来简化编程,服务层主要通过一些高性能、高画质的设计,提升对开发者服务的质量和体验效果。
针对芯片适配层,对不同厂商的芯片适配接口提供归一的抽象,做比较兼容的设计,确保芯片厂商接入系统的时候花费最低的成本,同时也保证兼容性。
③工作流程介绍
下图是相机模块运行态的业务流程图:
当需要下发相机的命令时,无论是启动预览或者预览之后的其他命令,再或者是其他变量下发到底层系统的操作的命令,当接收到时,将会被转化为对底层的控制,然后再由相机框架通过一定方式将处理结果回传给应用和开发者。
如上图所示,此流程在代码实现上分为五个步骤:
第一步:创建工作 session第二步:配置输入镜头、输出流格式第三步:启动会话第四步:操作会话,变焦、聚焦等操作可在此步骤进行控制第五步:释放会话,此步骤用于释放所占用的系统资源播放(Player)
①播放框架设计目标:低消耗、简单易用、灵活扩展
低消耗是指播放框架在播放资源的消耗和功耗上是最优的。
简单易用是指播放框架提供了两种接口形式:JS 和结合 ArkUI 提供的 UI 控件接口,便于开发者使用。
灵活扩展是指播放框架针对服务类目的引擎,可增强、可扩展、可替换。
②播放框架介绍
播放框架主要提供较为通用的,但控制能力丰富的音、视频的播放和录制功能。中间件的核心是基于引擎提供各种各样的服务的能力。
目前提供了两套引擎,分别是 GStreamer 引擎和 HiStreamer 引擎,功能都比较齐全。
在硬件适配层,即 HDF 层,提供兼容设计。播放框架内部轻量化的 Histreamer 引擎,基于传统的 pipeline,通过插件化机制增强相关的音视频的编解码和解析能力,该引擎最典型的特征就是小。
当开发者使用的时候,播放 MP3,最低可做到 600K 以下。
另外引擎本身可跨多系统支持。除此之外,MP3,AAC,H264,HTTP,HLS 等当前常用的音频格式都是完全支持的,开发者可以通过一键化的方式灵活切换引擎。
音频(Audio)
①音频框架设计目标
如下:
接口统一:是指同一套音频接口体系,支持不同场景的音频使用方式,例如音频低时延播放、高清音频和低功耗等。效果一致:是指音频框架提供给所有应用的一致性的效果体验。高性能:是指音频的低时延播放。统一焦点控制:是指音频框架对音频播放、录制的焦点的强管控。架构归一:是指音频框架适用于大、中、小的各种设备。②音频框架介绍
音频框架主要采用 CS 的架构,支持多个音频同时运行。
音频模块分为三个,分别是 Audio Renderer、Audio Capturer、Audio Manager。
其中,Audio Renderer 提供了渲染音频文件和控制播放的接口,开发者可以通过本接口在输出设备中播放音频文件并管理播放任务。
Audio Capturer 提供了获取原始音频文件的方法,开发者可以通过该接口调用实现对音频数据的采集。
Audio Manager 提供了音频流类型、音量、音频设备管理等接口,开发者可以通过调用该接口实现对相关音频对象的管理。
以上是多媒体框架的相关介绍内容,如果您想了解更多关于HarmonyOS相关知识,请参考 HarmonyOS 应用开发平台。
花粉社群VIP加油站
猜你喜欢