播放完毕
否
proxy拦截mp的请求,进行host和port包装,对尾部的Range做包装(不带Range说明position为0,非seek)
是
是否为最后一段ts
下载所在ts片段
结束
启动代理(拦截mp的请求和server的响应并处理)
用户选择播放
到达预设的时间节点(0-TargetDuration内,建议中间时刻,TargetDuration一般为10s)
下载一级m3u8,解析得到二级m3u8(区分码率),解析二级m3u8得到ts相对路径,取得ts各种信息
二级m3u8中可ts片段可算得视频duration,可以计算下一个ts缓冲开始时间节点
寻找本地是否有当前position的ts的cache
下载完成
将cache以写入mp的socket的输出流,播放当前ts,开启计时器(?)
拦截到请求Range是否为0
下载器下载ts0,本地cache