Skip to content

GSYVideoPlayer

Shuyu Guo edited this page Apr 5, 2017 · 2 revisions

GSYVideoPlayer

  抽象类,主要处理播放器控制相关的逻辑,如有特殊需要,可继承,实现自定义的播放器,参看StandardGSYVideoPlayer

1、继承后getLayoutId()返回布局ID,startPlayLogic()实现播放相关的逻辑

/**
 * 当前UI
 */
public abstract int getLayoutId();

/**
 * 开始播放
 */
public abstract void startPlayLogic();

2、设置播放URI

此处记得确定传入的参数是否一一对应,因为最后一个是Object,你传File也是不会报错的。

/**
 * 设置播放URL
 *
 * @param url           播放url
 * @param cacheWithPlay 是否边播边缓存,如果是M3U8或者HLS,请设置为false
 * @param objects       object[0]目前为title
 * @return
 */
public boolean setUp(String url, boolean cacheWithPlay, Object... objects)


/**
 * 设置播放URL
 *
 * @param url           播放url
 * @param cacheWithPlay 是否边播边缓存,如果是M3U8或者HLS,请设置为false
 * @param cachePath     缓存路径,不传会有默认路径
 * @param mapHeadData   头部信息
 * @param objects       object[0]目前为title
 * @return
 */
public boolean setUp(String url, boolean cacheWithPlay, File cachePath, Map<String, String> mapHeadData, Object... objects) 

/**
 * 设置播放URL
 *
 * @param url           播放url
 * @param cacheWithPlay 是否边播边缓存,如果是M3U8或者HLS,请设置为false
 * @param cachePath     缓存路径,不传会有默认路径
 * @param objects       object[0]目前为title
 * @return
 */
public boolean setUp(String url, boolean cacheWithPlay, File cachePath, Object... objects) 

3、播放器的暂停和继续播放

/**
 * 暂停状态
 */
public void onVideoPause()

/**
 * 恢复暂停状态
 */
public void onVideoResume() 

此外,GSYVideoManager也有对应的静态方法可以使用。

/**
 * 暂停播放
 */
public static void onPause()

/**
 * 恢复播放
 */
public static void onResume()

4、清除缓存

/**
 * 清除当前缓存
 */
public void clearCurrentCache() 

或者使用GSYVideoManager清除默认缓存。

/**
 * 删除默认所有缓存文件
 */
public static void clearAllDefaultCache(Context context)

/**
 * 删除url对应默认缓存文件
 */
public static void clearDefaultCache(Context context, String url)


5、获取播放进度和视频时长

/**
 * 获取当前播放进度
 */
public int getCurrentPositionWhenPlaying()
/**
 * 获取当前总时长
 */
public int getDuration()

6、释放所有

一般在页面销调用,静态方法。

public static void releaseAllVideos()

8、获取播放状态


/**
 * 获取当前播放状态
 */
public int getCurrentState() {
    return mCurrentState;
}

9、防止错位TAG,列表中使用

作用可参看ListVideoActivity。

/**
 * 播放tag防止错误,因为普通的url也可能重复
 *
 * @param playTag 保证不重复就好
 */
public void setPlayTag(String playTag)

10、防止错位位置,列表中使用

作用可参看ListVideoActivity。


/**
 * 设置播放位置防止错位
 */
public void setPlayPosition(int playPosition) {
    this.mPlayPosition = playPosition;
}

11、退出全屏,静态方法

/**
 * 退出全屏,主要用于返回键
 *
 * @return 返回是否全屏
 */
public static boolean backFromWindowFull(Context context)

12、获取下载速度

/**
 * 网络速度
 * 注意,这里如果是开启了缓存,因为读取本地代理,缓存成功后还是存在速度的
 * 再打开已经缓存的本地文件,网络速度才会回0.因为是播放本地文件了
 */
public long getNetSpeed()

/**
 * 网络速度
 * 注意,这里如果是开启了缓存,因为读取本地代理,缓存成功后还是存在速度的
 * 再打开已经缓存的本地文件,网络速度才会回0.因为是播放本地文件了
 */
public String getNetSpeedText()

13、播放开始-偏移

/**
 * 从哪里开始播放
 * 目前有时候前几秒有跳动问题
 */
public void setSeekOnStart(long seekOnStart)

14、获取缓存或者缓冲进度

/**
 * 缓冲进度/缓存进度
 */
public int getBuffterPoint() {
    return mBuffterPoint;
}