android-stagefright处理httplivestreaming缓冲机制

最近花了半个多月的时间研读android源码中处理httplivestreaming的部分,其中包含了如何处理.m3u8文件,android内部如何缓冲视频流,包括后台线程始终获取数据缓冲的过程,以及缓冲没有命中时如何处理的等等,大致还简单介绍了一下android 的 Binder 过程,内容应该是很丰富的,希望能够对大家有帮助。 在Android系统中,Stagefright框架负责多媒体内容的播放,包括HTTP Live Streaming(HLS)。本文将深入探讨Stagefright处理HLS的缓冲机制,同时也会涉及到Android Binder机制,它是Android系统中进程间通信(IPC)的核心部分。 一、Android Binder机制 Android Binder是Android系统服务和应用程序之间进行通信的关键组件。当在Proxy进程中调用MediaPlayer的setDataSource方法时,它通过Binder机制将请求传递到Native进程中的AwesomePlayer服务。Proxy进程创建一个BpMediaPlayerService对象,通过IPC(Inter-Process Communication)与Native进程中的BnMediaPlayerService交互。在Native进程内部,MediaPlayerService对象接收并处理这些请求,如setDataSource,prepare,start,stop等。 二、SetDataSource过程 当调用setDataSource时,通常传入的是URL和HTTP Header。在Native层,这会触发StagefrightPlayer的创建,它内部持有一个AwesomePlayer类型的mPlayer成员。这个过程涉及了跨进程的数据传递和对象的实例化。 三、Prepare过程 在prepare过程中,主要涉及了一个名为TimedEventQueue的事件队列。这个队列在一个单独的线程中运行,随时监控队列是否为空,并以异步方式处理事件。当收到prepare事件时,通过onPrepareAsyncEvent方法响应。该方法会初始化解码器,根据mUri设置数据源,并发送继续缓冲的指令。 四、缓冲读取过程 缓冲视频流的关键在于有效地管理数据的获取和存储。当Stagefright处理HLS时,它会解析.m3u8文件,这是一个包含多个不同比特率流的索引文件。Stagefright会根据网络条件动态选择合适的流进行下载和播放,确保流畅性。如果缓冲未命中,即本地缓存未包含所需数据,系统会尝试从网络获取新的数据块并添加到缓冲区。 五、HTTP Live Streaming处理 当mUri以"httplive://"开头时,Stagefright会启动HLS处理。这涉及到解析.m3u8文件,获取TS分片的列表,并逐个下载这些分片进行播放。每个TS分片通常代表一小段视频或音频,这样可以实现流式传输,即使在网络不稳定的情况下也能保持播放的连续性。 六、后台线程持续获取数据 在Android系统中,后台线程负责持续从网络获取数据并填充缓冲区。当缓冲区达到一定阈值时,Stagefright会暂停数据获取,直到播放器需要更多数据时再继续。这种策略有助于平衡网络资源使用和用户体验。 总结: Android Stagefright处理HTTP Live Streaming的过程涉及了Android Binder机制、数据源设置、缓冲策略和HLS特定的处理。理解这些机制对于优化媒体播放性能,尤其是在移动网络环境下,具有重要意义。了解这些内部工作原理,开发者可以更好地调整和优化应用程序,提升用户在观看在线视频时的体验。





剩余54页未读,继续阅读




























- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- ctoc电子商务专题知识讲座.pptx
- C语言第7讲关系运算与逻辑运算if语句.ppt
- 基于单片机温度控制系统的设计.doc
- 基于AT89C52单片机的温室控制系统.doc
- 专题讲座资料(2021-2022年)单片机的红外防盗报警器.doc
- 购物网站策划书.doc
- 基于数据挖掘技术的负荷预测及主动设备维护可行性研究报告.doc
- 计算机教研组工作总结(2023年2023年第一学期).docx
- 【源版】第五章-数据库技术基础.ppt
- 工厂数字化网络监控系统解决方案.doc
- 网络谣言的传播与成因.ppt
- 基于GPS车辆跟踪系统的移动对象数据库应用研究.doc
- 光纤通信(第5版)课后习题答案要点.doc
- 高中数学第1章算法初步章末复习与总结课件新人教A版必修.ppt
- 网络研修学习总结.doc
- 中小型企业网站建设方案模板.doc



评论30