Android升级到4.0.3以后流媒体的播放有了很大的改变,不用以前的awesomeplayer的东西了,自己单独写了一个模块,video和audio都是自己单独的,尝试分析一下
4.0.1的时候Nuplayer是http相关链接的播放器,到了4.0.3的时候Nuplayer成了rtsp的播放器,而http又回到了awesomeplayer的部分,真是诡异,但是Nuplayer有http的source,估计到下个版本就会集中到一起了,我觉得最大的变化就是render部分,慢慢来,不着急。
下面这个图是从别的blog摘过来的,原创的也不知道是谁,不能标信息了。

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

数据就是在这几个类之间流动,方式就是handler,不过跟awesomeplayer不一样的是render使用方式不一样,Acodec使用了新的buffer机制,用omx来做的,具体的没看懂,需要后面再看一下。
stagefright的rtsp协议感觉支持的不够好,从里面找到了一个play的回复,处理相对地址的问题,觉得成熟的协议实现需要时间
Android 4.0.3 流媒体播放技术解析:Nuplayer 的变迁与Stagefright的改进
本文深入探讨了Android升级到4.0.3后,流媒体播放器Nuplayer从HTTP到RTSP的转变,并分析了Stagefright协议支持的不足。重点介绍了Ahandler、Alooper和AMessage在多线程通信中的应用,以及Acodec缓冲机制和OMX技术的引入。同时指出Stagefright在RTSP协议上的成熟度有待提高。
1万+

被折叠的 条评论
为什么被折叠?



