android多媒体框架简介

Android多媒体框架简介


一 主要内容

    1 Android Media

    2 mediaCodec

    3 mediaCodec 流程

    4 NuPlayer

    //5 MediaRecorder

    //6 MediaRecorder 流程


二   Android Media

    2.1 android多媒体框架历史回顾

        Android 1.0 ->Packet video - Open core

        Android 1.6 ->Open core 2.0

        Android 2.0 ->StageFright

        Android 2.1 ->StageFright

        Android 3.0 ->增强版StageFright

        Android 4.1 ->支持编解码功能

        Android 5.0->增加MediaSession 和MediaController功能


   2.2 android多媒体体系结构

android多媒体框架简介_第1张图片

    Stagefright 是本地的媒体播放引擎,支持多种的媒体格式的软解码,功能包括音频视频播放,会话管理,时间同步,传输控制等等,还支持集成自定义硬件编解码。

    2.3 Stagefright高级别调用流程

android多媒体框架简介_第2张图片

    android的终端应用调用framework层的AudioManager,MediaPlayer,Ringtone等接口获取媒体相关的服务。本地媒体播放系统由Stagefright框架支撑,媒体播放器服务系统,主要包含位于frameworks/av/media/libmediaplayerservice目录下的C++类,处理本地Media Player夸进程的请求,Stagefright系统位于frameworks/av/media/libstagefright目录下,实现先关的算法逻辑。

    二   MediaCodec

    MediaCodec主要为应用程序和播放器服务,提供解析器和数据对象,支持编解码,支持DRM加密内容的解密。MediaCodec类在Java和C++源码中都有存在,只有位于java中的接口是公开的,MediaCodec功能是在Android 4.1中引进的。mediaCodec体系结构如下图

android多媒体框架简介_第3张图片


     三   MediaCodec流程

android多媒体框架简介_第4张图片


    四   NuPlayer播放器

        4.1 nuplayer简介

android多媒体框架简介_第5张图片

    Nuplayer内置于Stagefright框架中,利用消息循环/消息处理机制,处理各种异步请求,从消息队列中获取消息从而降低死锁现象,Nuplayer::Source接口(属于parser module)是由MediaExtractor和MediaSource组合而成,可精准定位数据源,Nuplayer::Decoder连接到ACodec,可为AVC提供解码功能,为AAC解码提供解码包装,ACodec在Stagefright框架中是一个功能类似于OMXCodec的解码器,但不具有应用的状态模式和围绕消息模式传送的数据的功能。NuPlayer::Render负责渲染音频,负责音视频同步,在合适的时间将视频数据传送到本地窗口。OMXCodec和ACodec都是底层OMX组件的高度抽象,提供音频视频的编解码功能。

        4.1 nuplayer类图

android多媒体框架简介_第6张图片


你可能感兴趣的:(android多媒体框架简介)