package com.shuyu.gsyvideoplayer.video;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import com.shuyu.gsyvideoplayer.GSYVideoPlayer;
import com.shuyu.gsyvideoplayer.model.GSYVideoModel;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Created by shuyu on 2016/12/20.
*/
public class ListGSYVideoPlayer extends StandardGSYVideoPlayer {
protected List<GSYVideoModel> mUriList = new ArrayList<>();
protected int mPlayPosition;
/**
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public ListGSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag);
}
public ListGSYVideoPlayer(Context context) {
super(context);
}
public ListGSYVideoPlayer(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* 设置播放URL
*
* @param url 播放url
* @param cacheWithPlay 是否边播边缓存
* @param objects object[0]目前为title
* @return
*/
public boolean setUp(List<GSYVideoModel> url, boolean cacheWithPlay, int position, Object... objects) {
mUriList = url;
mPlayPosition = position;
GSYVideoModel gsyVideoModel = url.get(position);
boolean set = setUp(gsyVideoModel.getUrl(), cacheWithPlay, objects);
if (!TextUtils.isEmpty(gsyVideoModel.getTitle())) {
mTitleTextView.setText(gsyVideoModel.getTitle());
}
return set;
}
/**
* 设置播放URL
*
* @param url 播放url
* @param cacheWithPlay 是否边播边缓存
* @param cachePath 缓存路径,如果是M3U8或者HLS,请设置为false
* @param objects object[0]目前为title
* @return
*/
public boolean setUp(List<GSYVideoModel> url, boolean cacheWithPlay, int position, File cachePath, Object... objects) {
mUriList = url;
mPlayPosition = position;
GSYVideoModel gsyVideoModel = url.get(position);
boolean set = setUp(gsyVideoModel.getUrl(), cacheWithPlay, cachePath, objects);
if (!TextUtils.isEmpty(gsyVideoModel.getTitle())) {
mTitleTextView.setText(gsyVideoModel.getTitle());
}
return set;
}
@Override
public GSYBaseVideoPlayer startWindowFullscreen(Context context, boolean actionBar, boolean statusBar) {
GSYBaseVideoPlayer gsyBaseVideoPlayer = super.startWindowFullscreen(context, actionBar, statusBar);
if (gsyBaseVideoPlayer != null) {
ListGSYVideoPlayer listGSYVideoPlayer = (ListGSYVideoPlayer) gsyBaseVideoPlayer;
listGSYVideoPlayer.mPlayPosition = mPlayPosition;
listGSYVideoPlayer.mUriList = mUriList;
GSYVideoModel gsyVideoModel = mUriList.get(mPlayPosition);
if (!TextUtils.isEmpty(gsyVideoModel.getTitle())) {
listGSYVideoPlayer.mTitleTextView.setText(gsyVideoModel.getTitle());
}
}
return gsyBaseVideoPlayer;
}
@Override
protected void resolveNormalVideoShow(View oldF, ViewGroup vp, GSYVideoPlayer gsyVideoPlayer) {
if (gsyVideoPlayer != null) {
ListGSYVideoPlayer listGSYVideoPlayer = (ListGSYVideoPlayer) gsyVideoPlayer;
mPlayPosition = listGSYVideoPlayer.mPlayPosition;
mUriList = listGSYVideoPlayer.mUriList;
GSYVideoModel gsyVideoModel = mUriList.get(mPlayPosition);
if (!TextUtils.isEmpty(gsyVideoModel.getTitle())) {
mTitleTextView.setText(gsyVideoModel.getTitle());
}
}
super.resolveNormalVideoShow(oldF, vp, gsyVideoPlayer);
}
@Override
public void onCompletion() {
if (mPlayPosition < (mUriList.size() - 1)) {
return;
}
super.onCompletion();
}
@Override
public void onAutoCompletion() {
if (mPlayPosition < (mUriList.size() - 1)) {
mPlayPosition++;
GSYVideoModel gsyVideoModel = mUriList.get(mPlayPosition);
setUp(gsyVideoModel.getUrl(), mCache, mCachePath, mObjects);
if (!TextUtils.isEmpty(gsyVideoModel.getTitle())) {
mTitleTextView.setText(gsyVideoModel.getTitle());
}
startPlayLogic();
return;
}
super.onAutoCompletion();
}
}