一、简介

OpenHarmony 媒体组件为开发者提供一套简单易于理解的接口,能够使得开发者方便接入系统并使用系统的媒体资源。
本文主要介绍player_framework相关媒体组件,包含了音视频、媒体存储等相关媒体业务,提供了以下常用功能:

  • 音视频播放
  • 音视频录制
  • 元数据和缩略图获取
  • 屏幕录制

二、前言

版本信息:OpenHarmony-4.1-Release 标准系统

三、媒体组件架构

1、设计目标

低消耗、简单易用、灵活扩展

2、媒体组件架构图

player_framework媒体组件主要提供了较为通用的,但控制能力丰富的音视频的播放和录制功能,中间层的核心是基于引擎提供各种各样的服务的能力。

img

(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                          # 部件描述文件
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐