-
Notifications
You must be signed in to change notification settings - Fork 246
SeekInCache
xinbaicheng edited this page Feb 8, 2017
·
3 revisions
缓存内Seek是指用户Seek的目标位置在播放器的缓存内时,可直接Seek值目标位置
该功能在播放点播视频时默认开启
下面简单对比普通Seek和缓存内Seek的特点
播放器原有的Seek操作大致分为以下三个步骤:
- 清除已经缓存的数据
- 找到离Seek目标位置最近的关键帧,以该关键帧为最终Seek的目标位置
- 请求最终Seek目标位置的数据
点播场景下,播放器会缓存较多数据,这样操作可能会重复下载部分数据,在网络较差的情况下会引发卡顿,用户体验并不是非常好。
该功能可大致分为两个步骤:
- Seek目标位置在播放器的缓存内,则会使用缓存内Seek
- 反之则如同普通Seek
支持版本:v1.7.1及以上
以下两个接口均支持缓存内Seek
/**
* 快进快退
* @param msec 目标时间点,单位:毫秒
* @throws IllegalStateException
*/
public void seekTo(long msec);
/**
* 快进快退
* @param msec 目标时间点,单位:毫秒
* @param accurate 是否进行精准seek;accurate=false等同于public void seekTo(long msec);
* @throws IllegalStateException
*/
public void seekTo(long msec, boolean accurate);
精准Seek功能可参考Wiki
缓存内Seek和精准Seek可同时使用,如下所示
KSYMediaPlayer ksyMediaPlayer;
long seekPosition = 100 * 1000; // seek至视频第100s
ksyMediaPlayer.seetTo(seekPosition, true);