Demo地址:https://github.com/CarGuo/GSYVideoPlayer,读者可以下载该demo后,感受它的效果,再来读这篇文章:
demo使用的是别人的demo,主要是进行一些原理分析,主要分析一下几点:
1.GSYVideoPlayer的初始化
2.视频播放实现
3.全屏实现
4.滑动时,小窗口出现和消失实现逻辑
5.小窗口视频创建
6.小窗口视频恢复为列表视频
7.边缓存边播放实现
8.弹幕效果实现
一.初始化分析
1.初始化主要是构造了一个StandardGSYVideoPlayer
2.设置全屏布局的容器
代码如下:
listVideoUtil = new ListVideoUtil(this);
listVideoUtil.setFullViewContainer(videoFullContainer);
public ListVideoUtil(Context context) {
gsyVideoPlayer = new StandardGSYVideoPlayer(context);
this.context = context;
}
StandardGSYVideoPlayer的初始化化主要是加载R.layout.video_layout_standard这个布局,并且实例化一些组件,为组件设置监听事件;
初始化组件包括:播放/暂停按钮,播放时长,总时长,播放进度条,返回按钮,全屏按钮和视频标题,
初始化组件不包括:用于显示视频的TextureView,这个TextureView是动态添加的,放在下片文章中讲述;
初始化内容比较简单;