原文: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应用,我们期待您的加入。

HarmonyOS多媒体框架介绍的更多相关文章

  1. iOS多媒体框架介绍

    媒体层 媒体层包含图形技术.音频技术和视频技术,这些技术相互结合就可为移动设备带来最好的多媒体体验,更重要的是,它们让创建外观音效俱佳的应用程序变得更加容易.您可以使用iOS的高级框架更快速地创建高级 ...

  2. Vitamio 多媒体框架 介绍

    功能 Vitamio 是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染.Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐.到目前 ...

  3. Android的多媒体框架OpenCore介绍

    网上资料很少, 不过还是找到一个比较详细的说明: 特地在此整理了下: 地址:http://blog.csdn.net/djy1992/article/details/9339787 分为几个阶段: 1 ...

  4. Android多媒体框架对音乐播放器的支持

    下面介绍一下Andriod多媒体框架对开发者提供的支持有哪些.               1. MediaScannerReceiver                   这个广播接收者在接收到A ...

  5. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍

    [连载]<C#通讯(串口和网络)框架的设计与实现>- 0.前言 目       录 第一章           通讯框架介绍... 2 1.1           通讯的本质... 2 1 ...

  6. YARN基本框架介绍

    YARN基本框架介绍 转载请注明出处:http://www.cnblogs.com/BYRans/ 在之前的博客<YARN与MRv1的对比>中介绍了YARN对Hadoop 1.0的完善.本 ...

  7. Selenium自动化测试框架介绍

    Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...

  8. UiAutomator自动化测试框架介绍

    UiAutomator自动化测试框架介绍 环境搭建 1         必要条件 1.1       JDK 1.2       SDK(API高于15) 1.3       Eclipse 2    ...

  9. [翻译]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 ...

  10. MJExtension框架介绍

    MJExtension框架介绍 标签: MJExtension 2015-05-01 08:22 1120人阅读 评论(0) 收藏 举报  分类: Foundation(14)  版权声明:本文为博主 ...

随机推荐

  1. FolkMQ 是怎样进行消息的事务处理?

    FolkMQ 提供了二段式提交的事务提交的机制(TCC 模型).允许生产者在发送消息时绑定到一个事务中并接收事务的管理,以确保消息的原子性(要么全成功,要么全失败).在 FolkMQ 中,事务是通过 ...

  2. java中StringBuffer与 StringBuilder 类

    目录 创建 StringBuffer 类 追加字符串 替换字符 反转字符串 删除字符串 StringBuffer 方法 在 Java 中,除了通过 String 类创建和处理字符串之外,还可以使用 S ...

  3. Win10系统winload.efi丢失或损坏怎么办?修复步骤(以联想笔记本为例)

    winload.efi是通过UEFI方式引导必要的引导文件,如果系统中丢失或是损坏将导致系统无法启动,如win10在出现这样的问题时会出现蓝屏恢复界面,那么此时该如何解决呢?此例为 GPT+UEFI ...

  4. 制作有延迟插件的rabbitmq镜像

    插件Git官方地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange Dockerfile FROM rabbitmq:3.8 ...

  5. .Net下的CORS跨域设置

    CORS跨域访问问题往往出现在"浏览器客户端"通过ajax调用"服务端API"的时候.而且若是深究原理,还会发现跨域问题其实还分为[简单跨域]与[复杂跨域]这两 ...

  6. [.Net]使用Soa库+Abp搭建微服务项目框架(四):动态代理和RPC

    ​上一章我们完成了小项目的面向服务体系改造,你或许一直在思考一个问题.为什么要将业务独立成微服务? 微服务原理 以一个健康医疗系统为例, 这个系统包含了用户模块,问卷的发放与填写,图表显示,报表生成与 ...

  7. sentienl

    整合springboot Spring Cloud Alibaba Sentinel 下载 导入依赖 <dependency> <groupId>com.alibaba.clo ...

  8. 摆脱鼠标系列 - Alt + N 快速切换vscode多个项目 - HotKeyP

    摆脱鼠标系列 - Alt + N 快速切换vscode多个项目 用的软件是 HotKeyP 打开软件选择vscode vscode里面的 project那个插件也很好,但是需要打开vscode以后,这 ...

  9. vscode 智能提示 函数提示右侧有所在目录 Show Inline Details

    vscode 智能提示 函数提示右侧有所在目录 Show Inline Details 有目录提示的 没有目录提示的 默认是有目录提示,我那个配置单啊~ "editor.suggest.sh ...

  10. 大端(big endian) 小端(little endian) --- 在多字节存储 和 多字节通信中的含义(我还是太年轻了)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...