CarGuo / GSYVideoPlayer

视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,16k page size,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。
https://juejin.cn/user/817692379985752/posts
Apache License 2.0
20.22k stars 4.19k forks source link

onBufferingUpdate回调的percent 和视频播放的percent 一致 相当于没有缓存? #15

Closed sugarkawhi closed 7 years ago

sugarkawhi commented 7 years ago

在设置 progressbar 的 setSecondaryProgress时 完全无法体现缓存的进度

sugarkawhi commented 7 years ago

边播边缓存设置为true了

CarGuo commented 7 years ago

是的,缓存逻辑现在和buffering的逻辑是分开的,目前缓存进度的返回还是由ijk那边来决定的,因为这里面涉及到seekto的一些问题,后面需要测试一下看看cache的缓存和buffering之间直接协调进度显示的问题。如果完全缓存下来了,那么就会直接读取本地的了。

sugarkawhi commented 7 years ago

那想获取到IJK的缓存进度有办法吗

CarGuo commented 7 years ago

IJK是没有缓存的,它是类似缓存了一块,然后抛弃了之前的一块这种,你可以试试ijk的demo的效果,其实就是你播放过的,任意拖动都是要触发重新请求。如果是获取VideoCache的缓存的话:

可以这样获取

Use HttpProxyCacheServer.registerCacheListener(CacheListener listener) method to set listener with callback onCacheAvailable(File cacheFile, String url, int percentsAvailable) to be aware of caching progress. Do not forget to to unsubscribe listener with help of HttpProxyCacheServer.unregisterCacheListener(CacheListener listener) method to avoid memory leaks.

Use HttpProxyCacheServer.isCached(String url) method to check was url's content fully cached to file or not.

CarGuo commented 7 years ago

更新了1.4.4,可以看看,修改了关于percent 的