自定义节操视频播放界面(二)
CustomJCVideo
需求
- 预览
- 视频播放完成后显示某些东西
思路
- 找到更新seekBar的源头并进行监听
- 上一篇有说因是Gradle管理jar包 所以我们无法修改源码
- 而通读JCVideoPlayer源码 我悲催的发现并没有关于监听播放进度的实现 接下来就要自己整了 : )
实现
- 首先我们需要去这里下载源码并以依赖库的形式导入项目
- 接着我们打开JCVideoPlayer找到
1 | public class ProgressTimerTask extends TimerTask { |
以上便是控制seekBar的时间控制器 而且其中已经给出了position和duration两个参数 前者为播放进度 后者为视频长度 我们将其回调出即可
在依赖库中创建一个名为JCVideoProgressListener的回调接口
1
2
3
4
5public interface JCVideoProgressListener {
void onProgress(int duration, int progress);
void onVideoComplete(); //监听播放完成
}接着在JCVideoPlayer中定义一个方法
1
2
3public void setOnJCPlayingProgressListener(JCVideoProgressListener listener) {
this.playingProgressListener = listener;
}然后把该监听用在ProgressTimerTask即可
if (playingProgressListener!=null)
playingProgressListener.onProgress(duration, position);最后在activity实现即可(PREVIEW = 15 * 1000)
1
2
3
4
5
6
7@Override
public void onProgress(int duration, int progress) {
Log.e(TAG, "onProgress: " + duration + " ---- " + progress);
if (duration >= PREVIEW && progress >= PREVIEW) {
handler.sendEmptyMessage(0);
}
}播放完成的操作在回调onVideoComplete即可
注:
- 回调回来的进度与长度是在子线程中的 这里使用的Handler : )