-
Notifications
You must be signed in to change notification settings - Fork 23
cachePolicy
Su, Jia edited this page Oct 19, 2016
·
1 revision
目前版本,httpcache的缓存是顺序的、连续的,配合播放器使用时缓存的原则是:
- 如果播放过程中没有seek请求,则httpcache缓存的是从播放开始(第0秒)到退出播放时的数据。
- 如果播放过程中发生seek,
- 如果seek的起始点(http header中range的起始点)命中cache,则httpcache从cache中读取数据。播放过程中,遇到未缓存完成的部分,则httpcache从网络读取数据并保存到缓存中。(此时,如果前一次请求的socket为关闭,则httpcache会在后台继续下载并缓存数据)
- 如果seek起始点未命中cache,则从网络读取数据,但这部分数据不会被保存到缓存中。
下面用两个实例来说明:
- 如果从0到100秒播放的过程中,没有发生过seek,则这100秒数据都缓存下来了。
这种情况下,seek到30秒(命中cache),httpcache会从cache中取30到100秒的数据。
播放到100秒后,且文件大于100秒,则httpcache从网络读取数据并保存到cache中,并返回给播放器。 - 如果从0到100s的播放过程中,0s-20s正常播放,seek到60秒(未命中cache)并连续播放到100秒。
这种情况下,60-100秒的数据未保存,缓存中至少保留了0-20秒的数据。
(如果前一次请求的socket未关闭,则httpcache会在后台下载20秒后的数据并保存到cache中)
这时如果seek到30秒播放(未命中cache),则从网络读取数据。如果seek到18秒(命中cache),则从缓存读取数据。``