Nuplayer源代码分析1

Android升级到4.0.3以后流媒体的播放有了很大的改变,不用以前的awesomeplayer的东西了,自己单独写了一个模块,video和audio都是自己单独的,尝试分析一下

4.0.1的时候Nuplayer是http相关链接的播放器,到了4.0.3的时候Nuplayer成了rtsp的播放器,而http又回到了awesomeplayer的部分,真是诡异,但是Nuplayer有http的source,估计到下个版本就会集中到一起了,我觉得最大的变化就是render部分,慢慢来,不着急。

下面这个图是从别的blog摘过来的,原创的也不知道是谁,不能标信息了。

Nuplayer源代码分析1

先介绍一个基本的东西Ahandler,Alooper,和AMessage,这是线程之间通信的方式,Nuplayer之间的沟通方式非常晕人,先介绍几个类,我自己也画了个图,不是很完整,先凑合看一下

Nuplayer源代码分析1

数据就是在这几个类之间流动,方式就是handler,不过跟awesomeplayer不一样的是render使用方式不一样,Acodec使用了新的buffer机制,用omx来做的,具体的没看懂,需要后面再看一下。

stagefright的rtsp协议感觉支持的不够好,从里面找到了一个play的回复,处理相对地址的问题,觉得成熟的协议实现需要时间