android media架构

https://developer.android.com/reference/android/media/MediaPlayer

android的多媒体框架如今已经演变得非常复杂的,这里面原因多种多样,后续争取逐步总结完整。
我们先用一个最基础的mediaplayer播放视频示意图看一下与架构之间的关联(实际android各种完整的媒体通路要更复杂数十倍以上),用户创建一个播放器APK或者APK需要播放一个视频,通过framework层的mediaplayer进行调用播放,mediaplayer会通过mediaserver在native服务层取找到解码器,通过软件解码 或者 硬件解码(如GPU等来实现)进行解码,然后通过surface进行显示。最后surface要送显示。这个时候需要通过linux的显示驱动 framebuffer来送到底层硬件驱动中,操作硬件把画面显示出来。

一个视频播放总体思路还是:APK触发媒体业务,通过Application Framework封装的API进行业务播放,然后Framework到本地系统库层级去指定 解码与显示 通路组合(这里选择非常多样,一部分与APK传递的参数相关,更多的还和不同媒体使用场景决策,设备类型与配置相关,后面会提到),从解码选择 的硬解码还是软解码不同 决定是否要使用底层linux硬件解码驱动,根据显示通路选择 对应 linux底层驱动进行画面显示。

————————————————
原文链接:https://blog.csdn.net/runafterhit/article/details/109020673

Android Media (Audio) Framework 多媒体系统框架 - maxiongying - 博客园

android 多媒体框架服务之StagefrightPlayer和OMXCodec实现原理学习_zds05的专栏-CSDN博客
https://developer.android.com/reference/android/media/MediaPlayer

Android MediaPlayer+Stagefright框架(音频)图解_landishu的专栏-CSDN博客


吾皇的博客_yanbixing123_CSDN博客-i.MX6-IPU子系统,i.MX6Q---IPU总结笔记,嵌入式领域博主

安卓音视频播放-总体架构 - 简书

上一篇:说一下静态库和动态库之间的区别


下一篇:Spring Framework特性总览