diff --git a/app/src/main/java/com/example/gsyvideoplayer/video/LandLayoutVideo.java b/app/src/main/java/com/example/gsyvideoplayer/video/LandLayoutVideo.java index 50c3e5cbb74d188d0cd2639f371872040a12e6fd..ad4b8e946e4c1458dbd0804a04e81f8fd0802bb1 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/video/LandLayoutVideo.java +++ b/app/src/main/java/com/example/gsyvideoplayer/video/LandLayoutVideo.java @@ -2,17 +2,21 @@ package com.example.gsyvideoplayer.video; import android.content.Context; import android.util.AttributeSet; +import android.widget.ImageView; import com.example.gsyvideoplayer.R; +import com.shuyu.gsyvideoplayer.video.CustomGSYVideoPlayer; + +import moe.codeest.enviews.ENPlayView; /** * Created by shuyu on 2016/12/23. + * CustomGSYVideoPlayer是试验中,建议使用的时候使用StandardGSYVideoPlayer */ - -public class LandLayoutVideo extends SampleVideo { +public class LandLayoutVideo extends CustomGSYVideoPlayer { /** - * 1.5开始加入,必须重载 + * 1.5.0开始加入,如果需要不同布局区分功能,需要重载 */ public LandLayoutVideo(Context context, Boolean fullFlag) { super(context, fullFlag); @@ -26,6 +30,8 @@ public class LandLayoutVideo extends SampleVideo { super(context, attrs); } + + //这个必须配置最上面的构造才能生效 @Override public int getLayoutId() { if (mIfCurrentIsFullscreen) { @@ -34,4 +40,21 @@ public class LandLayoutVideo extends SampleVideo { return R.layout.sample_video; } + @Override + protected void updateStartImage() { + if (mIfCurrentIsFullscreen) { + ImageView imageView = (ImageView) mStartButton; + if (mCurrentState == CURRENT_STATE_PLAYING) { + imageView.setImageResource(R.drawable.video_click_pause_selector); + } else if (mCurrentState == CURRENT_STATE_ERROR) { + imageView.setImageResource(R.drawable.video_click_play_selector); + } else { + imageView.setImageResource(R.drawable.video_click_play_selector); + } + } else { + super.updateStartImage(); + } + } + + } diff --git a/app/src/main/java/com/example/gsyvideoplayer/video/SampleVideo.java b/app/src/main/java/com/example/gsyvideoplayer/video/SampleVideo.java index 979cc4cb914d44c4d5abac835e09f51090c44de0..f6b990146e37704fbb246e67cd5171167d955aab 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/video/SampleVideo.java +++ b/app/src/main/java/com/example/gsyvideoplayer/video/SampleVideo.java @@ -47,7 +47,7 @@ public class SampleVideo extends StandardGSYVideoPlayer { private int mSourcePosition = 0; /** - * 1.5开始加入,必须重载 + * 1.5.0开始加入,如果需要不同布局区分功能,需要重载 */ public SampleVideo(Context context, Boolean fullFlag) { super(context, fullFlag); diff --git a/app/src/main/res/layout/sample_video_land.xml b/app/src/main/res/layout/sample_video_land.xml index 336ca488d3c30f8211ed60747d5b3e648bcc3b7d..acfd03bde871ebee776ad67d350f5b061f8afe65 100644 --- a/app/src/main/res/layout/sample_video_land.xml +++ b/app/src/main/res/layout/sample_video_land.xml @@ -35,17 +35,18 @@ - constructor = (Constructor) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class); - final GSYBaseVideoPlayer gsyVideoPlayer = constructor.newInstance(getContext(), true); + //通过被重载的不同构造器来选择 + Constructor constructor; + final GSYBaseVideoPlayer gsyVideoPlayer; + if (!hadNewConstructor) { + constructor = (Constructor) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class); + gsyVideoPlayer = constructor.newInstance(getContext()); + } else { + constructor = (Constructor) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class); + gsyVideoPlayer = constructor.newInstance(getContext(), true); + } + gsyVideoPlayer.setId(FULLSCREEN_ID); gsyVideoPlayer.setIfCurrentIsFullscreen(true); gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack); diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/ListGSYVideoPlayer.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/ListGSYVideoPlayer.java index 155d4e507056d55b0200f346a1cb1e18a50b31af..fb1d04fbbb907fc5c82551466a8f101af0452ece 100644 --- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/ListGSYVideoPlayer.java +++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/ListGSYVideoPlayer.java @@ -20,7 +20,7 @@ public class ListGSYVideoPlayer extends StandardGSYVideoPlayer { protected int mPlayPosition; /** - * 1.5开始加入,必须重载 + * 1.5.0开始加入,如果需要不同布局区分功能,需要重载 */ public ListGSYVideoPlayer(Context context, Boolean fullFlag) { super(context, fullFlag); diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java index 82dc44eaf4b55c17edd8e71f0d0507c8707c9463..4fb21c60badb2d53ab3f68e834be40dbb97176f3 100644 --- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java +++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java @@ -51,7 +51,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { protected ProgressBar mBottomProgressBar; - private ENDownloadView mLoadingProgressBar; + private View mLoadingProgressBar; protected TextView mTitleTextView; //title @@ -103,7 +103,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { } /** - * 1.5开始加入,必须重载 + * 1.5.0开始加入,如果需要不同布局区分功能,需要重载 */ public StandardGSYVideoPlayer(Context context, Boolean fullFlag) { super(context, fullFlag); @@ -125,7 +125,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mThumbImageViewLayout = (RelativeLayout) findViewById(R.id.thumb); mLockScreen = (ImageView) findViewById(R.id.lock_screen); - mLoadingProgressBar = (ENDownloadView) findViewById(R.id.loading); + mLoadingProgressBar = findViewById(R.id.loading); mThumbImageViewLayout.setVisibility(GONE); mThumbImageViewLayout.setOnClickListener(this); @@ -420,7 +420,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE); - mLoadingProgressBar.reset(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).reset(); + } mThumbImageViewLayout.setVisibility(View.VISIBLE); mCoverImageView.setVisibility(View.VISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -434,7 +436,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.VISIBLE); - mLoadingProgressBar.start(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).start(); + } mThumbImageViewLayout.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.VISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -458,7 +462,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE); - mLoadingProgressBar.reset(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).reset(); + } mThumbImageViewLayout.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -478,7 +484,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE); - mLoadingProgressBar.reset(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).reset(); + } mThumbImageViewLayout.setVisibility(View.INVISIBLE); //mCoverImageView.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -500,7 +508,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.VISIBLE); - mLoadingProgressBar.start(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).start(); + } mThumbImageViewLayout.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -513,7 +523,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.VISIBLE); - mLoadingProgressBar.start(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).start(); + } mThumbImageViewLayout.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.VISIBLE); @@ -527,7 +539,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE); - mLoadingProgressBar.reset(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).reset(); + } mThumbImageViewLayout.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -540,7 +554,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE); - mLoadingProgressBar.reset(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).reset(); + } mThumbImageViewLayout.setVisibility(View.VISIBLE); mCoverImageView.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -554,7 +570,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE); - mLoadingProgressBar.reset(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).reset(); + } mThumbImageViewLayout.setVisibility(View.VISIBLE); mCoverImageView.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.VISIBLE); @@ -568,7 +586,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { mBottomContainer.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE); - mLoadingProgressBar.reset(); + if (mLoadingProgressBar instanceof ENDownloadView) { + ((ENDownloadView)mLoadingProgressBar).reset(); + } mThumbImageViewLayout.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.VISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE); @@ -576,7 +596,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { updateStartImage(); } - private void updateStartImage() { + protected void updateStartImage() { ENPlayView enPlayView = (ENPlayView) mStartButton; enPlayView.setDuration(500); if (mCurrentState == CURRENT_STATE_PLAYING) {