android多媒体框架简介

    xiaoxiao2026-08-16  4

    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多媒体体系结构

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

        2.3 Stagefright高级别调用流程

        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体系结构如下图

         三   MediaCodec流程

        四   NuPlayer播放器

            4.1 nuplayer简介

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

            4.1 nuplayer类图

    转载请注明原文地址: https://ju.6miu.com/read-1311249.html
    最新回复(0)