【HarmonyOS-媒体技术-Media Kit】HarmonyOS 音视频开发全栈解析
Media Kit 让开发者可以调用系统的音视频能力,涵盖播放、录制、录屏、元数据提取与转码六大核心功能模块,支撑系统应用与第三方应用在视频播放、内容创作、教学录屏、直播互动等典型场景下的音视频处理需求。AVMetadataExtractor 用于从音视频资源中提取元数据,如标题、艺术家、专辑、时长等信息,从视频中提取指定时间点的画面,生成缩略图。AVRecorder 可实现音频、视频、音视频混合
还在手动拼装播放器、录屏、录制、元数据解析逻辑?
别急——这份 HarmonyOS Media Kit 文档,就是你通往全场景多媒体开发的“通关指南”;
- 您可以通过此文档了解到Media Kit的6大核心功能模块、典型场景以及基础流程,【快速上手】零基础也能秒变“音视频高手”;
一、概述
Media Kit 让开发者可以调用系统的音视频能力,涵盖播放、录制、录屏、元数据提取与转码六大核心功能模块,支撑系统应用与第三方应用在视频播放、内容创作、教学录屏、直播互动等典型场景下的音视频处理需求。系统框架和各核心功能模块介绍如下:
核心功能模块
简要概述播放长短视频、录制、录屏、元数据、转码的功能描述及典型场景
模块名称 |
功能描述 |
典型使用场景 |
AVPlayer |
播放音视频文件,支持多种常见媒体格式的播放 |
在线视频播放、本地媒体播放、直播流播放 |
SoundPool |
高效播放短音频片段,适合频繁触发的音频事件 |
App 提示音、游戏音效、通知提醒、按键反馈 |
AVRecorder |
支持音频、视频及音视频混合录制,可灵活配置参数 |
视频通话录制、会议录音、短视频拍摄、教学录屏 |
AVScreenCapture |
实现屏幕内容录制,同时捕获音频与画面 |
屏幕操作演示、在线课程录制、游戏录屏、远程协作 |
AVMetadataExtractor |
从音视频文件中提取元数据信息,如标题、时长,生成指定时间图像 |
媒体库管理、播放器封面自动获取、相册缩略图提取 |
AVTranscoder |
对音视频进行格式转换、编码重制,支持分辨率/码率调整 |
跨平台分享、节省存储空间、优化网络传输 |
简易架构图
简要描述鸿蒙系统架构、Media Kit提供的服务以及TOP使用Media Kit 的系统应用和三方应用
二、Media Kit 的核心亮点
- 轻量媒体引擎
占用系统资源少(线程、内存),支持 pipeline 拼装、插件化扩展(source/demuxer/codec)。 - HDR 视频支持
支持 HDR Vivid 格式采集与播放,提升视觉体验。 - 音频池机制(SoundPool)
适用于短音效播放场景(如系统提示音、游戏音效等),支持一次加载、多次低延迟播放。
三、Media Kit六大功能模块简介
(1)AVPlayer:播放音视频
1. 功能简介
AVPlayer 负责将音频/视频资源(如 MP4、MP3、MKV、MPEG-TS 等)解码为可渲染的图像和音频信号,并通过输出设备播放。
它支持:
- 音频播放(如音乐播放器)
- 视频播放(如视频播放器)
2. 视频播放流程
流程说明:
- 应用从XComponent组件获取窗口SurfaceID,获取方式参考XComponent。
- 应用把媒体资源、SurfaceID传递给AVPlayer接口。
- Player Framework把视频ES数据流输出给解码HDI,解码获得视频帧(NV12/NV21/RGBA)。
- Player Framework把音频PCM数据流输出给Audio Framework,Audio Framework输出给音频HDI。
- Player Framework把视频帧(NV12/NV21/RGBA)输出给Graphic Framework,Graphic Framework输出给显示HDI。
(2)SoundPool:播放短音频
1. 功能简介
SoundPool 专为短音频播放设计,适用于提示音、通知音等低延迟、高频次播放场景。
2. 交互关系图
流程说明:
- 音频应用将媒体资源传递给SoundPool接口。
- Player Framework将音频PCM数据流输出给Audio Framework,再由Audio Framework输出给音频HDI。
(3)AVRecorder:录制音视频
1. 功能简介
AVRecorder 可实现音频、视频、音视频混合录制,支持自定义编码格式、封装格式等参数。
2. 交互关系图
流程说明:
- 应用通过AVRecorder接口从录制服务获取SurfaceID。
- 应用将SurfaceID设置给相机服务,相机服务可以通过SurfaceID获取到Surface。相机服务通过视频HDI捕获图像数据送至框架层的录制服务。
- 相机服务通过Surface将视频数据传递给录制服务。
- 录制服务将音频参数设置给音频服务,并从音频服务获取到音频数据。
- 录制服务通过编码服务将音视频数据编码。
(4)AVScreenCapture:屏幕录制
1. 功能简介
AVScreenCapture 支持屏幕录制功能,分为 录屏存文件 和 录屏取码流 两种模式。
2. 交互关系图
流程说明:
- 应用通过AVScreenCapture发起录屏。
- 录屏服务通过图形服务获取屏幕数据。
- 录屏服务将音频参数设置给音频服务,并从音频服务获取到音频数据。
- 录屏服务通过编码服务将音视频数据编码。
(5)AVMetadataExtractor:获取音视频元数据/缩略图
1. 功能简介
AVMetadataExtractor 用于从音视频资源中提取元数据,如标题、艺术家、专辑、时长等信息,从视频中提取指定时间点的画面,生成缩略图。
2. 交互关系图
流程说明:
- 应用通过AVMetadataExtractor接口去获取元数据(如标题、艺术家等)/缩略图;
- 调用解封装/解码能力获取相应数据。
(6)AVTranscoder:视频转码
1. 功能简介
AVTranscoder主要用于将已压缩编码的视频文件按照指定参数转换为另一种格式的视频。
2. 交互关系图
流程说明:
- 应用通过AVTranscoder接口进行视频文件的格式转换;
- 调用AVCodec的封装解封装、编解码服务,将音视频数据按照应用配置的新参数进行重新编码封装。
四、参考资料
- HarmonyOS Media Kit 官方文档
- AVPlayer 开发指南
- SoundPool 开发指南
- AVRecorder 开发指南
- AVScreenCapture 开发指南
- AVMetadataExtractor 开发指南
- AVTranscoder 开发指南
五、结语
Media Kit 提供了一整套音视频开发工具链,无论你是开发音乐播放器、视频播放器、录音应用,还是屏幕录制工具,都能找到合适的组件来实现功能。
如果你希望打造一款高质量、高性能、高兼容性的音视频应用,Media Kit 就是你不可或缺的开发伙伴。
加入 HarmonyOS 社区,共创未来!
我们诚邀广大开发者一起参与 HarmonyOS 技术生态建设,共建更开放、更智能的未来世界!
加入开发者社区,获取最新资讯和技术支持
HarmonyOS 官方社区
让 Media Kit成为你开发路上的得力助手,开启你的音视频开发新纪元!
更多推荐
所有评论(0)