HarmonyOS多媒体框架介绍
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应用,我们期待您的加入。

HarmonyOS多媒体框架介绍的更多相关文章
- iOS多媒体框架介绍
媒体层 媒体层包含图形技术.音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易.您可以使用iOS的高级框架更快速地创建高级 ...
- Vitamio 多媒体框架 介绍
功能 Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐.到目前 ...
- Android的多媒体框架OpenCore介绍
网上资料很少, 不过还是找到一个比较详细的说明: 特地在此整理了下: 地址:http://blog.csdn.net/djy1992/article/details/9339787 分为几个阶段: 1 ...
- Android多媒体框架对音乐播放器的支持
下面介绍一下Andriod多媒体框架对开发者提供的支持有哪些. 1. MediaScannerReceiver 这个广播接收者在接收到A ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
[连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目 录 第一章 通讯框架介绍... 2 1.1 通讯的本质... 2 1 ...
- YARN基本框架介绍
YARN基本框架介绍 转载请注明出处:http://www.cnblogs.com/BYRans/ 在之前的博客<YARN与MRv1的对比>中介绍了YARN对Hadoop 1.0的完善.本 ...
- Selenium自动化测试框架介绍
Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...
- UiAutomator自动化测试框架介绍
UiAutomator自动化测试框架介绍 环境搭建 1 必要条件 1.1 JDK 1.2 SDK(API高于15) 1.3 Eclipse 2 ...
- [翻译]Spring框架参考文档(V4.3.3)-第二章Spring框架介绍 2.1 2.2 翻译--2.3待继续
英文链接:http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/overview.ht ...
- MJExtension框架介绍
MJExtension框架介绍 标签: MJExtension 2015-05-01 08:22 1120人阅读 评论(0) 收藏 举报 分类: Foundation(14) 版权声明:本文为博主 ...
随机推荐
- FolkMQ 是怎样进行消息的事务处理?
FolkMQ 提供了二段式提交的事务提交的机制(TCC 模型).允许生产者在发送消息时绑定到一个事务中并接收事务的管理,以确保消息的原子性(要么全成功,要么全失败).在 FolkMQ 中,事务是通过 ...
- java中StringBuffer与 StringBuilder 类
目录 创建 StringBuffer 类 追加字符串 替换字符 反转字符串 删除字符串 StringBuffer 方法 在 Java 中,除了通过 String 类创建和处理字符串之外,还可以使用 S ...
- Win10系统winload.efi丢失或损坏怎么办?修复步骤(以联想笔记本为例)
winload.efi是通过UEFI方式引导必要的引导文件,如果系统中丢失或是损坏将导致系统无法启动,如win10在出现这样的问题时会出现蓝屏恢复界面,那么此时该如何解决呢?此例为 GPT+UEFI ...
- 制作有延迟插件的rabbitmq镜像
插件Git官方地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange Dockerfile FROM rabbitmq:3.8 ...
- .Net下的CORS跨域设置
CORS跨域访问问题往往出现在"浏览器客户端"通过ajax调用"服务端API"的时候.而且若是深究原理,还会发现跨域问题其实还分为[简单跨域]与[复杂跨域]这两 ...
- [.Net]使用Soa库+Abp搭建微服务项目框架(四):动态代理和RPC
上一章我们完成了小项目的面向服务体系改造,你或许一直在思考一个问题.为什么要将业务独立成微服务? 微服务原理 以一个健康医疗系统为例, 这个系统包含了用户模块,问卷的发放与填写,图表显示,报表生成与 ...
- sentienl
整合springboot Spring Cloud Alibaba Sentinel 下载 导入依赖 <dependency> <groupId>com.alibaba.clo ...
- 摆脱鼠标系列 - Alt + N 快速切换vscode多个项目 - HotKeyP
摆脱鼠标系列 - Alt + N 快速切换vscode多个项目 用的软件是 HotKeyP 打开软件选择vscode vscode里面的 project那个插件也很好,但是需要打开vscode以后,这 ...
- vscode 智能提示 函数提示右侧有所在目录 Show Inline Details
vscode 智能提示 函数提示右侧有所在目录 Show Inline Details 有目录提示的 没有目录提示的 默认是有目录提示,我那个配置单啊~ "editor.suggest.sh ...
- 大端(big endian) 小端(little endian) --- 在多字节存储 和 多字节通信中的含义(我还是太年轻了)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...