提交 bc2a9852 编写于 作者: S shuyu

1.5.0 增加了全屏布局和普通布局的兼容支持

上级 25c14ff8
...@@ -2,17 +2,21 @@ package com.example.gsyvideoplayer.video; ...@@ -2,17 +2,21 @@ package com.example.gsyvideoplayer.video;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.widget.ImageView;
import com.example.gsyvideoplayer.R; import com.example.gsyvideoplayer.R;
import com.shuyu.gsyvideoplayer.video.CustomGSYVideoPlayer;
import moe.codeest.enviews.ENPlayView;
/** /**
* Created by shuyu on 2016/12/23. * Created by shuyu on 2016/12/23.
* CustomGSYVideoPlayer是试验中,建议使用的时候使用StandardGSYVideoPlayer
*/ */
public class LandLayoutVideo extends CustomGSYVideoPlayer {
public class LandLayoutVideo extends SampleVideo {
/** /**
* 1.5开始加入,必须重载 * 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/ */
public LandLayoutVideo(Context context, Boolean fullFlag) { public LandLayoutVideo(Context context, Boolean fullFlag) {
super(context, fullFlag); super(context, fullFlag);
...@@ -26,6 +30,8 @@ public class LandLayoutVideo extends SampleVideo { ...@@ -26,6 +30,8 @@ public class LandLayoutVideo extends SampleVideo {
super(context, attrs); super(context, attrs);
} }
//这个必须配置最上面的构造才能生效
@Override @Override
public int getLayoutId() { public int getLayoutId() {
if (mIfCurrentIsFullscreen) { if (mIfCurrentIsFullscreen) {
...@@ -34,4 +40,21 @@ public class LandLayoutVideo extends SampleVideo { ...@@ -34,4 +40,21 @@ public class LandLayoutVideo extends SampleVideo {
return R.layout.sample_video; 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();
}
}
} }
...@@ -47,7 +47,7 @@ public class SampleVideo extends StandardGSYVideoPlayer { ...@@ -47,7 +47,7 @@ public class SampleVideo extends StandardGSYVideoPlayer {
private int mSourcePosition = 0; private int mSourcePosition = 0;
/** /**
* 1.5开始加入,必须重载 * 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/ */
public SampleVideo(Context context, Boolean fullFlag) { public SampleVideo(Context context, Boolean fullFlag) {
super(context, fullFlag); super(context, fullFlag);
......
...@@ -35,17 +35,18 @@ ...@@ -35,17 +35,18 @@
<LinearLayout <LinearLayout
android:id="@+id/layout_bottom" android:id="@+id/layout_bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="70dp" android:layout_height="40dp"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:background="#99000000" android:background="#99000000"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"
android:visibility="invisible"> android:visibility="invisible">
<moe.codeest.enviews.ENPlayView <ImageView
android:id="@+id/start" android:id="@+id/start"
android:layout_width="60dp" android:layout_width="30dp"
android:layout_height="60dp" android:layout_height="30dp"
android:src="@drawable/video_click_play_selector"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
......
...@@ -133,7 +133,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View. ...@@ -133,7 +133,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
public abstract void startPlayLogic(); public abstract void startPlayLogic();
/** /**
* 1.5开始加入,必须重载 * 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/ */
public GSYVideoPlayer(Context context, Boolean fullFlag) { public GSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag); super(context, fullFlag);
......
...@@ -33,7 +33,7 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer { ...@@ -33,7 +33,7 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer {
private int mPreProgress = -2; private int mPreProgress = -2;
/** /**
* 1.5开始加入,必须重载 * 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/ */
public CustomGSYVideoPlayer(Context context, Boolean fullFlag) { public CustomGSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag); super(context, fullFlag);
......
...@@ -129,7 +129,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia ...@@ -129,7 +129,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
private Handler mHandler = new Handler(); private Handler mHandler = new Handler();
/** /**
* 1.5开始加入,必须重载 * 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/ */
public GSYBaseVideoPlayer(Context context, Boolean fullFlag) { public GSYBaseVideoPlayer(Context context, Boolean fullFlag) {
super(context); super(context);
...@@ -293,9 +293,26 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia ...@@ -293,9 +293,26 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
saveLocationStatus(context, statusBar, actionBar); saveLocationStatus(context, statusBar, actionBar);
boolean hadNewConstructor = true;
try {
GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class);
} catch (Exception e) {
hadNewConstructor = false;
}
try { try {
Constructor<GSYBaseVideoPlayer> constructor = (Constructor<GSYBaseVideoPlayer>) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class); //通过被重载的不同构造器来选择
final GSYBaseVideoPlayer gsyVideoPlayer = constructor.newInstance(getContext(), true); Constructor<GSYBaseVideoPlayer> constructor;
final GSYBaseVideoPlayer gsyVideoPlayer;
if (!hadNewConstructor) {
constructor = (Constructor<GSYBaseVideoPlayer>) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class);
gsyVideoPlayer = constructor.newInstance(getContext());
} else {
constructor = (Constructor<GSYBaseVideoPlayer>) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class);
gsyVideoPlayer = constructor.newInstance(getContext(), true);
}
gsyVideoPlayer.setId(FULLSCREEN_ID); gsyVideoPlayer.setId(FULLSCREEN_ID);
gsyVideoPlayer.setIfCurrentIsFullscreen(true); gsyVideoPlayer.setIfCurrentIsFullscreen(true);
gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack); gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack);
......
...@@ -20,7 +20,7 @@ public class ListGSYVideoPlayer extends StandardGSYVideoPlayer { ...@@ -20,7 +20,7 @@ public class ListGSYVideoPlayer extends StandardGSYVideoPlayer {
protected int mPlayPosition; protected int mPlayPosition;
/** /**
* 1.5开始加入,必须重载 * 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/ */
public ListGSYVideoPlayer(Context context, Boolean fullFlag) { public ListGSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag); super(context, fullFlag);
......
...@@ -51,7 +51,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -51,7 +51,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
protected ProgressBar mBottomProgressBar; protected ProgressBar mBottomProgressBar;
private ENDownloadView mLoadingProgressBar; private View mLoadingProgressBar;
protected TextView mTitleTextView; //title protected TextView mTitleTextView; //title
...@@ -103,7 +103,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -103,7 +103,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
} }
/** /**
* 1.5开始加入,必须重载 * 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/ */
public StandardGSYVideoPlayer(Context context, Boolean fullFlag) { public StandardGSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag); super(context, fullFlag);
...@@ -125,7 +125,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -125,7 +125,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mThumbImageViewLayout = (RelativeLayout) findViewById(R.id.thumb); mThumbImageViewLayout = (RelativeLayout) findViewById(R.id.thumb);
mLockScreen = (ImageView) findViewById(R.id.lock_screen); mLockScreen = (ImageView) findViewById(R.id.lock_screen);
mLoadingProgressBar = (ENDownloadView) findViewById(R.id.loading); mLoadingProgressBar = findViewById(R.id.loading);
mThumbImageViewLayout.setVisibility(GONE); mThumbImageViewLayout.setVisibility(GONE);
mThumbImageViewLayout.setOnClickListener(this); mThumbImageViewLayout.setOnClickListener(this);
...@@ -420,7 +420,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -420,7 +420,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE); mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.VISIBLE); mThumbImageViewLayout.setVisibility(View.VISIBLE);
mCoverImageView.setVisibility(View.VISIBLE); mCoverImageView.setVisibility(View.VISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -434,7 +436,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -434,7 +436,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE); mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.VISIBLE);
mLoadingProgressBar.start(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).start();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE); mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.VISIBLE); mCoverImageView.setVisibility(View.VISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -458,7 +462,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -458,7 +462,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE); mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE); mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -478,7 +484,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -478,7 +484,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE); mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE); mThumbImageViewLayout.setVisibility(View.INVISIBLE);
//mCoverImageView.setVisibility(View.INVISIBLE); //mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -500,7 +508,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -500,7 +508,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE); mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.VISIBLE);
mLoadingProgressBar.start(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).start();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE); mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -513,7 +523,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -513,7 +523,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE); mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.VISIBLE); mLoadingProgressBar.setVisibility(View.VISIBLE);
mLoadingProgressBar.start(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).start();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE); mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.VISIBLE); mBottomProgressBar.setVisibility(View.VISIBLE);
...@@ -527,7 +539,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -527,7 +539,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE); mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.INVISIBLE); mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE); mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -540,7 +554,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -540,7 +554,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE); mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.VISIBLE); mThumbImageViewLayout.setVisibility(View.VISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -554,7 +570,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -554,7 +570,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE); mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.VISIBLE); mThumbImageViewLayout.setVisibility(View.VISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE); mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.VISIBLE); mBottomProgressBar.setVisibility(View.VISIBLE);
...@@ -568,7 +586,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -568,7 +586,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE); mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.VISIBLE); mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE); mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset(); if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE); mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.VISIBLE); mCoverImageView.setVisibility(View.VISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE); mBottomProgressBar.setVisibility(View.INVISIBLE);
...@@ -576,7 +596,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { ...@@ -576,7 +596,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
updateStartImage(); updateStartImage();
} }
private void updateStartImage() { protected void updateStartImage() {
ENPlayView enPlayView = (ENPlayView) mStartButton; ENPlayView enPlayView = (ENPlayView) mStartButton;
enPlayView.setDuration(500); enPlayView.setDuration(500);
if (mCurrentState == CURRENT_STATE_PLAYING) { if (mCurrentState == CURRENT_STATE_PLAYING) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册