-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
GSYVideoPlayer
Shuyu Guo edited this page Apr 5, 2017
·
2 revisions
抽象类,主要处理播放器控制相关的逻辑,如有特殊需要,可继承,实现自定义的播放器,参看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;
}