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