package com.shuyu.gsyvideoplayer.video; import android.content.Context; import android.text.TextUtils; import android.util.AttributeSet; 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 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 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 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 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(); } }