OpenHarmony音视频开发概述:媒体组件
一、简介 OpenHarmony 媒体组件为开发者提供一套简单易于理解的接口,能够使得开发者方便接入系统并使用系统的媒体资源。本文主要介绍player_framework相关媒体组件,包含了音视频、媒体存储等相关媒体业务,提供了以下常用功能: 音视频播放音视频录制元数据和缩略图获取屏幕录制 二、前言 版本信息:OpenHarmony-4.1-Release 标准系统 三、媒体组件架构 1、设计目标
一、简介
OpenHarmony 媒体组件为开发者提供一套简单易于理解的接口,能够使得开发者方便接入系统并使用系统的媒体资源。
本文主要介绍player_framework相关媒体组件,包含了音视频、媒体存储等相关媒体业务,提供了以下常用功能:
- 音视频播放
- 音视频录制
- 元数据和缩略图获取
- 屏幕录制
二、前言
版本信息:OpenHarmony-4.1-Release 标准系统
三、媒体组件架构
1、设计目标
低消耗、简单易用、灵活扩展
2、媒体组件架构图
player_framework媒体组件主要提供了较为通用的,但控制能力丰富的音视频的播放和录制功能,中间层的核心是基于引擎提供各种各样的服务的能力。
(1)4.1-Release 版本目前提供了两套引擎,分别是GStreamer引擎和HiStreamer引擎,功能都比较齐全。
(2)GStreamer是一个跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果,每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。
(3)HiStreamer是鸿蒙开发的一个轻量级的媒体引擎组件,提供播放、录制等场景的媒体数据流水线处理,使用较少的系统资源(线程、内存),即可支持媒体功能,支持pipeline灵活拼装,支持插件化扩展source/demuxer/codec等。
3、代码目录结构
/foundation/multimedia/player_framework # 媒体组件业务代码
├── interfaces # 外部接口层
│ ├── kits # 应用接口
│ └── innerkits # 系统内部件接口
├── frameworks # 部件框架层API的实现
│ ├── js # js napi实现
│ ├── native # native c++实现
├── services # 服务C/S实现
│ ├── include # 服务对外头文件
│ ├── services # 服务框架
│ │ ├── player # 播放C/S框架
│ │ ├── recorder # 录制C/S框架
│ │ ├── avcodec # 编解码C/S框架,已废弃
│ │ ├── avcodeclist # 编解码器能力查询C/S框架,已废弃
│ │ ├── avmetadatahelper # 元信息&缩略图C/S框架
│ │ ├── media_data_source # datasource C/S框架
│ │ ├── screen_capture # 屏幕录制 C/S框架
│ │ ├── sa_media # 媒体主进程 C/S框架
│ │ ├── factory # 引擎工厂
│ │ ├── engine_intf # 引擎API
│ ├── engine # 引擎实现
│ │ ├── gstreamer # gstreamer引擎
│ │ │ ├── player # 播放引擎
│ │ │ ├── recorder # 录制引擎
│ │ │ ├── avcodec # 编解码引擎,已废弃
│ │ │ ├── avmetadatahelper # 元信息&缩略图引擎
│ │ │ ├── plugins # 引擎自研插件
│ │ │ ├── common # 引擎通用资源
│ │ │ ├── factory # 引擎工厂实现
│ │ │ ├── loader # 引擎资源加载
│ │ ├── histreamer # histreamer引擎
│ │ │ ├── avmetadatahelper # 元数据&缩略图引擎
│ │ │ ├── player # 播放引擎
│ │ │ ├── recorder # 录制引擎
│ │ │ ├── factory # 引擎工厂实现
│ ├── utils # 子系统基础资源
├── test # 测试代码
├── BUILD.gn # 编译入口
└── bundle.json # 部件描述文件
更多推荐
所有评论(0)