Android Media框架简介

Android Media框架简介


androidN之前,android media framework所有模块(包括播放、录制、camera、audio等)都在mediaserver进程。出于安全性考虑(可以百度“stagefright安全漏洞“),mediaserver拆分为以下几个进程:
1)mediaserver:包括播放功能Mediaplayer和录制功能Mediarecoder;
2)mediacodec:音视频编解码功能,应用可以通过该接口直接调用到底层芯片VPU硬件解码;
3)mediaextractor:视频文件解封装
4)cameraserver:相机服务
5)audioserver:音频输出模块
6)mediadrm:数字版权解密

详细介绍视频播放模块。如下图所示:
首先简单说明下图出现的几个术语:
NUPlayer:android原生多媒体播放器;
openmax:Khronos组织定义的一套跨平台的硬件加速接口,对上提供统一的硬件解码接口,对下屏蔽各芯片厂商设计的解码芯片差异;
VPU:各芯片厂商设计的解码芯片。
对应用来说,有两套播放接口:MediaPlayer和MediaCodec,MediaExtractor只负责视频文件解封装,必须与MediaCodec搭配调用才有意义。
1)MediaPlayer通过Android原生NUPLAYER调用MediaExtractor把文件中的音视频信息分离,并分别把音视频信息送给MediaCodec解码,解码后由Nuplayer做好音视频同步并输出。这套接口对应用来说简单易用,应用层不需要关心底层播放实现的细节,并且也无法控制。
2)MediaCodec则主要通过openmax调用到解码VPU硬件解码。对应用来说,这套接口不够简单,相对于MediaPlayer,应用需要做更多的事情,比如音视频同步,输出等。
Android Media框架简介_第1张图片

你可能感兴趣的:(多媒体)