From 024dd2137697139e7c0680801e892d2ba61eaf18 Mon Sep 17 00:00:00 2001 From: guoshuyu Date: Thu, 1 Feb 2018 15:25:08 +0800 Subject: [PATCH] fix demo ad --- .../gsyvideoplayer/DanmkuVideoActivity.java | 2 +- .../gsyvideoplayer/DetailADPlayer.java | 2 +- .../gsyvideoplayer/DetailADPlayer2.java | 20 +++++-- .../gsyvideoplayer/DetailListPlayer.java | 2 +- .../DetailMoreTypeActivity.java | 2 +- .../example/gsyvideoplayer/DetailPlayer.java | 2 +- .../InputUrlDetailActivity.java | 2 +- .../example/gsyvideoplayer/PlayActivity.java | 2 +- .../PlayEmptyControlActivity.java | 2 +- .../gsyvideoplayer/PlayPickActivity.java | 2 +- .../gsyvideoplayer/ScrollingActivity.java | 2 +- .../adapter/ListMultiNormalAdapter.java | 2 +- .../adapter/ListNormalAdapter.java | 2 +- .../holder/RecyclerItemNormalHolder.java | 2 +- .../listener/SampleListener.java | 4 +- .../utils/SmallVideoHelper.java | 5 -- .../video/MultiSampleVideo.java | 12 ++++ .../video/manager/CustomManager.java | 5 +- .../gsyvideoplayer/GSYBaseActivityDetail.java | 4 +- .../gsyvideoplayer/GSYVideoADManager.java | 5 +- .../shuyu/gsyvideoplayer/GSYVideoManager.java | 5 +- .../builder/GSYVideoOptionBuilder.java | 33 ++++++----- .../listener/GSYSampleCallBack.java | 2 +- .../listener/StandardVideoAllCallBack.java | 5 -- .../gsyvideoplayer/utils/GSYVideoHelper.java | 5 -- .../gsyvideoplayer/utils/ListVideoUtil.java | 8 +-- .../video/GSYADVideoPlayer.java | 26 +++++++++ .../video/StandardGSYVideoPlayer.java | 13 +---- .../video/base/GSYBaseVideoPlayer.java | 56 +++++++++++++------ .../video/base/GSYVideoPlayer.java | 11 ++++ 30 files changed, 159 insertions(+), 86 deletions(-) delete mode 100644 gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/StandardVideoAllCallBack.java diff --git a/app/src/main/java/com/example/gsyvideoplayer/DanmkuVideoActivity.java b/app/src/main/java/com/example/gsyvideoplayer/DanmkuVideoActivity.java index 999f6c0..7a544b4 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/DanmkuVideoActivity.java +++ b/app/src/main/java/com/example/gsyvideoplayer/DanmkuVideoActivity.java @@ -90,7 +90,7 @@ public class DanmkuVideoActivity extends AppCompatActivity { } }); - danmakuVideoPlayer.setStandardVideoAllCallBack(new GSYSampleCallBack() { + danmakuVideoPlayer.setVideoAllCallBack(new GSYSampleCallBack() { @Override public void onPrepared(String url, Object... objects) { super.onPrepared(url, objects); diff --git a/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer.java b/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer.java index 1ba113f..a63288a 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer.java +++ b/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer.java @@ -70,7 +70,7 @@ public class DetailADPlayer extends GSYBaseActivityDetail { detailPlayer.setShowFullAnimation(false); detailPlayer.setNeedLockFull(true); - detailPlayer.setStandardVideoAllCallBack(this); + detailPlayer.setVideoAllCallBack(this); detailPlayer.setLockClickListener(new LockClickListener() { @Override diff --git a/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java b/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java index 98e43bf..6cfe1c3 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java +++ b/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java @@ -57,7 +57,7 @@ public class DetailADPlayer2 extends GSYBaseActivityDetail detailPlayer.setStartAfterPrepared(false); detailPlayer.setReleaseWhenLossAudio(false); - GSYVideoOptionBuilder adBuilder = getGSYVideoOptionBuilder(); + final GSYVideoOptionBuilder adBuilder = getGSYVideoOptionBuilder(); adBuilder.setUrl(urlAd) .setVideoAllCallBack(new GSYSampleCallBack() { @Override @@ -71,11 +71,13 @@ public class DetailADPlayer2 extends GSYBaseActivityDetail @Override public void onAutoComplete(String url, Object... objects) { adPlayer.release(); + adPlayer.onVideoReset(); adPlayer.setVisibility(View.GONE); //todo 如果在全屏下的处理 //todo 中间弹出逻辑处理 getGSYVideoPlayer().getCurrentPlayer().startAfterPrepared(); if (adPlayer.getCurrentPlayer().isIfCurrentIsFullscreen()) { + adPlayer.removeFullWindowViewOnly(); if (!getGSYVideoPlayer().getCurrentPlayer().isIfCurrentIsFullscreen()) { showFull(); } @@ -108,14 +110,22 @@ public class DetailADPlayer2 extends GSYBaseActivityDetail //直接横屏 adOrientationUtils.resolveByClick(); //第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar - adPlayer.startWindowFullscreen(DetailADPlayer2.this, true, true); - - + adPlayer.startWindowFullscreen(DetailADPlayer2.this, hideActionBarWhenFull(), hideStatusBarWhenFull()); } }); } } + @Override + public void showFull() { + if (orientationUtils.getIsLand() != 1) { + //直接横屏 + orientationUtils.resolveByClick(); + } + getGSYVideoPlayer().startWindowFullscreen(DetailADPlayer2.this); + + } + @Override public void onBackPressed() { if (adOrientationUtils != null) { @@ -177,6 +187,8 @@ public class DetailADPlayer2 extends GSYBaseActivityDetail .setUrl(url) .setCacheWithPlay(true) .setVideoTitle(" ") + .setFullHideActionBar(true) + .setFullHideStatusBar(true) .setIsTouchWiget(true) .setRotateViewAuto(false) .setLockLand(false) diff --git a/app/src/main/java/com/example/gsyvideoplayer/DetailListPlayer.java b/app/src/main/java/com/example/gsyvideoplayer/DetailListPlayer.java index 9784746..2c3faf9 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/DetailListPlayer.java +++ b/app/src/main/java/com/example/gsyvideoplayer/DetailListPlayer.java @@ -71,7 +71,7 @@ public class DetailListPlayer extends GSYBaseActivityDetail detailPlayer.setShowFullAnimation(false); detailPlayer.setNeedLockFull(true); - detailPlayer.setStandardVideoAllCallBack(this); + detailPlayer.setVideoAllCallBack(this); detailPlayer.setLockClickListener(new LockClickListener() { @Override diff --git a/app/src/main/java/com/example/gsyvideoplayer/DetailMoreTypeActivity.java b/app/src/main/java/com/example/gsyvideoplayer/DetailMoreTypeActivity.java index 1b91018..e6ab177 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/DetailMoreTypeActivity.java +++ b/app/src/main/java/com/example/gsyvideoplayer/DetailMoreTypeActivity.java @@ -112,7 +112,7 @@ public class DetailMoreTypeActivity extends AppCompatActivity { } }); - detailPlayer.setStandardVideoAllCallBack(new GSYSampleCallBack() { + detailPlayer.setVideoAllCallBack(new GSYSampleCallBack() { @Override public void onPrepared(String url, Object... objects) { super.onPrepared(url, objects); diff --git a/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java b/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java index 6ad0ca2..9cab60b 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java +++ b/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java @@ -112,7 +112,7 @@ public class DetailPlayer extends AppCompatActivity { .setUrl(url) .setCacheWithPlay(false) .setVideoTitle("测试视频") - .setStandardVideoAllCallBack(new GSYSampleCallBack() { + .setVideoAllCallBack(new GSYSampleCallBack() { @Override public void onPrepared(String url, Object... objects) { Debuger.printfError("***** onPrepared **** " + objects[0]); diff --git a/app/src/main/java/com/example/gsyvideoplayer/InputUrlDetailActivity.java b/app/src/main/java/com/example/gsyvideoplayer/InputUrlDetailActivity.java index 256048c..e69d72c 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/InputUrlDetailActivity.java +++ b/app/src/main/java/com/example/gsyvideoplayer/InputUrlDetailActivity.java @@ -80,7 +80,7 @@ public class InputUrlDetailActivity extends AppCompatActivity { .setUrl(url) .setCacheWithPlay(cache) .setVideoTitle("测试视频") - .setStandardVideoAllCallBack(new GSYSampleCallBack() { + .setVideoAllCallBack(new GSYSampleCallBack() { @Override public void onPrepared(String url, Object... objects) { super.onPrepared(url, objects); diff --git a/app/src/main/java/com/example/gsyvideoplayer/PlayActivity.java b/app/src/main/java/com/example/gsyvideoplayer/PlayActivity.java index 38466e0..88fc00c 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/PlayActivity.java +++ b/app/src/main/java/com/example/gsyvideoplayer/PlayActivity.java @@ -150,7 +150,7 @@ public class PlayActivity extends AppCompatActivity { return; } //释放所有 - videoPlayer.setStandardVideoAllCallBack(null); + videoPlayer.setVideoAllCallBack(null); GSYVideoManager.releaseAllVideos(); if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { super.onBackPressed(); diff --git a/app/src/main/java/com/example/gsyvideoplayer/PlayEmptyControlActivity.java b/app/src/main/java/com/example/gsyvideoplayer/PlayEmptyControlActivity.java index a5d71ea..ae0cb9d 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/PlayEmptyControlActivity.java +++ b/app/src/main/java/com/example/gsyvideoplayer/PlayEmptyControlActivity.java @@ -75,7 +75,7 @@ public class PlayEmptyControlActivity extends AppCompatActivity { @Override public void onBackPressed() { //释放所有 - videoPlayer.setStandardVideoAllCallBack(null); + videoPlayer.setVideoAllCallBack(null); GSYVideoManager.releaseAllVideos(); if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { super.onBackPressed(); diff --git a/app/src/main/java/com/example/gsyvideoplayer/PlayPickActivity.java b/app/src/main/java/com/example/gsyvideoplayer/PlayPickActivity.java index e5463d7..9b36150 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/PlayPickActivity.java +++ b/app/src/main/java/com/example/gsyvideoplayer/PlayPickActivity.java @@ -133,7 +133,7 @@ public class PlayPickActivity extends AppCompatActivity { return; } //释放所有 - videoPlayer.setStandardVideoAllCallBack(null); + videoPlayer.setVideoAllCallBack(null); GSYVideoManager.releaseAllVideos(); if (isTransition && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { super.onBackPressed(); diff --git a/app/src/main/java/com/example/gsyvideoplayer/ScrollingActivity.java b/app/src/main/java/com/example/gsyvideoplayer/ScrollingActivity.java index f6301bb..75fc0e8 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/ScrollingActivity.java +++ b/app/src/main/java/com/example/gsyvideoplayer/ScrollingActivity.java @@ -75,7 +75,7 @@ public class ScrollingActivity extends AppCompatActivity { .setUrl(url) .setCacheWithPlay(false) .setVideoTitle("测试视频") - .setStandardVideoAllCallBack(new GSYSampleCallBack() { + .setVideoAllCallBack(new GSYSampleCallBack() { @Override public void onPrepared(String url, Object... objects) { diff --git a/app/src/main/java/com/example/gsyvideoplayer/adapter/ListMultiNormalAdapter.java b/app/src/main/java/com/example/gsyvideoplayer/adapter/ListMultiNormalAdapter.java index 97a4fd3..f6ecf83 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/adapter/ListMultiNormalAdapter.java +++ b/app/src/main/java/com/example/gsyvideoplayer/adapter/ListMultiNormalAdapter.java @@ -107,7 +107,7 @@ public class ListMultiNormalAdapter extends BaseAdapter { holder.gsyVideoPlayer.loadCoverImage(url, R.mipmap.xxx2); } - holder.gsyVideoPlayer.setStandardVideoAllCallBack(new GSYSampleCallBack() { + holder.gsyVideoPlayer.setVideoAllCallBack(new GSYSampleCallBack() { @Override diff --git a/app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java b/app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java index 053dd1b..e03955b 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java +++ b/app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java @@ -157,7 +157,7 @@ public class ListNormalAdapter extends BaseAdapter { holder.gsyVideoPlayer.setPlayPosition(position); - holder.gsyVideoPlayer.setStandardVideoAllCallBack(new GSYSampleCallBack() { + holder.gsyVideoPlayer.setVideoAllCallBack(new GSYSampleCallBack() { @Override public void onClickStartIcon(String url, Object... objects) { super.onClickStartIcon(url, objects); diff --git a/app/src/main/java/com/example/gsyvideoplayer/holder/RecyclerItemNormalHolder.java b/app/src/main/java/com/example/gsyvideoplayer/holder/RecyclerItemNormalHolder.java index b0591cc..7c67587 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/holder/RecyclerItemNormalHolder.java +++ b/app/src/main/java/com/example/gsyvideoplayer/holder/RecyclerItemNormalHolder.java @@ -77,7 +77,7 @@ public class RecyclerItemNormalHolder extends RecyclerItemBaseHolder { .setShowFullAnimation(true) .setNeedLockFull(true) .setPlayPosition(position) - .setStandardVideoAllCallBack(new GSYSampleCallBack() { + .setVideoAllCallBack(new GSYSampleCallBack() { @Override public void onPrepared(String url, Object... objects) { super.onPrepared(url, objects); diff --git a/app/src/main/java/com/example/gsyvideoplayer/listener/SampleListener.java b/app/src/main/java/com/example/gsyvideoplayer/listener/SampleListener.java index 24a9f86..d6efcb2 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/listener/SampleListener.java +++ b/app/src/main/java/com/example/gsyvideoplayer/listener/SampleListener.java @@ -1,12 +1,12 @@ package com.example.gsyvideoplayer.listener; -import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack; +import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack; /** * Created by shuyu on 2016/11/23. */ -public class SampleListener implements StandardVideoAllCallBack { +public class SampleListener implements VideoAllCallBack { //加载成功,objects[0]是title,object[1]是当前所处播放器(全屏或非全屏) @Override diff --git a/app/src/main/java/com/example/gsyvideoplayer/utils/SmallVideoHelper.java b/app/src/main/java/com/example/gsyvideoplayer/utils/SmallVideoHelper.java index f35461f..c72021d 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/utils/SmallVideoHelper.java +++ b/app/src/main/java/com/example/gsyvideoplayer/utils/SmallVideoHelper.java @@ -15,7 +15,6 @@ import android.widget.FrameLayout; import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; import com.shuyu.gsyvideoplayer.listener.GSYVideoProgressListener; import com.shuyu.gsyvideoplayer.listener.LockClickListener; -import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack; import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack; import com.shuyu.gsyvideoplayer.render.view.GSYVideoGLView; import com.shuyu.gsyvideoplayer.utils.*; @@ -702,10 +701,6 @@ public class SmallVideoHelper { return mVideoAllCallBack; } - public StandardVideoAllCallBack getStandardVideoAllCallBack() { - return mStandardVideoAllCallBack; - } - public LockClickListener getLockClickListener() { return mLockClickListener; } diff --git a/app/src/main/java/com/example/gsyvideoplayer/video/MultiSampleVideo.java b/app/src/main/java/com/example/gsyvideoplayer/video/MultiSampleVideo.java index e1a8572..81da074 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/video/MultiSampleVideo.java +++ b/app/src/main/java/com/example/gsyvideoplayer/video/MultiSampleVideo.java @@ -92,6 +92,18 @@ public class MultiSampleVideo extends SampleCoverVideo { return null; } + + + @Override + protected int getFullId() { + return CustomManager.FULLSCREEN_ID; + } + + @Override + protected int getSmallId() { + return CustomManager.SMALL_ID; + } + public String getKey() { if (mPlayPosition == -22) { Debuger.printfError(getClass().getSimpleName() + " used getKey() " + "******* PlayPosition never set. ********"); diff --git a/app/src/main/java/com/example/gsyvideoplayer/video/manager/CustomManager.java b/app/src/main/java/com/example/gsyvideoplayer/video/manager/CustomManager.java index 27179ed..a87910b 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/video/manager/CustomManager.java +++ b/app/src/main/java/com/example/gsyvideoplayer/video/manager/CustomManager.java @@ -15,7 +15,6 @@ import java.util.Map; import tv.danmaku.ijk.media.player.IjkLibLoader; import static com.shuyu.gsyvideoplayer.utils.CommonUtil.hideNavKey; -import static com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.FULLSCREEN_ID; /** * 多个播放的管理器 @@ -24,6 +23,10 @@ import static com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.FULLSCREEN_ public class CustomManager extends GSYVideoBaseManager { + public static final int SMALL_ID = 86598; + + public static final int FULLSCREEN_ID = 86597; + public static String TAG = "GSYVideoManager"; private static Map sMap = new HashMap<>(); diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYBaseActivityDetail.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYBaseActivityDetail.java index d455156..c537213 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYBaseActivityDetail.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYBaseActivityDetail.java @@ -6,7 +6,7 @@ import android.support.v7.app.AppCompatActivity; import android.view.View; import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; -import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack; +import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack; import com.shuyu.gsyvideoplayer.utils.OrientationUtils; import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer; @@ -14,7 +14,7 @@ import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer; * 详情模式播放页面基础类 * Created by guoshuyu on 2017/9/14. */ -public abstract class GSYBaseActivityDetail extends AppCompatActivity implements StandardVideoAllCallBack { +public abstract class GSYBaseActivityDetail extends AppCompatActivity implements VideoAllCallBack { protected boolean isPlay; diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoADManager.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoADManager.java index 429f809..4b51186 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoADManager.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoADManager.java @@ -15,7 +15,6 @@ import java.io.File; import tv.danmaku.ijk.media.player.IjkLibLoader; import static com.shuyu.gsyvideoplayer.utils.CommonUtil.hideNavKey; -import static com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.FULLSCREEN_ID; /** * 视频管理,单例 @@ -24,6 +23,10 @@ import static com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.FULLSCREEN_ public class GSYVideoADManager extends GSYVideoBaseManager { + public static final int SMALL_ID =95598; + + public static final int FULLSCREEN_ID = 95597; + public static String TAG = "GSYVideoADManager"; @SuppressLint("StaticFieldLeak") diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java index 6130303..d6f1514 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java @@ -16,7 +16,6 @@ import java.io.File; import tv.danmaku.ijk.media.player.IjkLibLoader; import static com.shuyu.gsyvideoplayer.utils.CommonUtil.hideNavKey; -import static com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.FULLSCREEN_ID; /** @@ -26,6 +25,10 @@ import static com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer.FULLSCREEN_ public class GSYVideoManager extends GSYVideoBaseManager { + public static final int SMALL_ID = 85598; + + public static final int FULLSCREEN_ID = 85597; + public static String TAG = "GSYVideoManager"; @SuppressLint("StaticFieldLeak") diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/builder/GSYVideoOptionBuilder.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/builder/GSYVideoOptionBuilder.java index 0deadde..b1245e2 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/builder/GSYVideoOptionBuilder.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/builder/GSYVideoOptionBuilder.java @@ -7,7 +7,6 @@ import com.shuyu.gsyvideoplayer.listener.GSYVideoProgressListener; import com.shuyu.gsyvideoplayer.render.view.GSYVideoGLView; import com.shuyu.gsyvideoplayer.render.effect.NoEffect; import com.shuyu.gsyvideoplayer.listener.LockClickListener; -import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack; import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack; import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer; import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer; @@ -105,6 +104,12 @@ public class GSYVideoOptionBuilder { //是否播放器当失去音频焦点 protected boolean mReleaseWhenLossAudio = true; + //是否需要在利用window实现全屏幕的时候隐藏actionbar + protected boolean mActionBar = false; + + //是否需要在利用window实现全屏幕的时候隐藏statusbar + protected boolean mStatusBar = false; + //播放的tag,防止错误,因为普通的url也可能重复 protected String mPlayTag = ""; @@ -123,9 +128,6 @@ public class GSYVideoOptionBuilder { //视频状体回调 protected VideoAllCallBack mVideoAllCallBack; - //标准播放器的回调 - protected StandardVideoAllCallBack mStandardVideoAllCallBack; - //点击锁屏的回调 protected LockClickListener mLockClickListener; @@ -408,11 +410,6 @@ public class GSYVideoOptionBuilder { } - public GSYVideoOptionBuilder setStandardVideoAllCallBack(StandardVideoAllCallBack standardVideoAllCallBack) { - this.mStandardVideoAllCallBack = standardVideoAllCallBack; - return this; - } - /** * 进度回调 */ @@ -525,11 +522,17 @@ public class GSYVideoOptionBuilder { return this; } - public void build(StandardGSYVideoPlayer gsyVideoPlayer) { - if (mStandardVideoAllCallBack != null) { - gsyVideoPlayer.setStandardVideoAllCallBack(mStandardVideoAllCallBack); - } + public GSYVideoOptionBuilder setFullHideActionBar(boolean actionBar) { + this.mActionBar = actionBar; + return this; + } + public GSYVideoOptionBuilder setFullHideStatusBar(boolean statusBar) { + this.mStatusBar = statusBar; + return this; + } + + public void build(StandardGSYVideoPlayer gsyVideoPlayer) { if (mBottomShowProgressDrawable != null && mBottomShowProgressThumbDrawable != null) { gsyVideoPlayer.setBottomShowProgressBarDrawable(mBottomShowProgressDrawable, mBottomShowProgressThumbDrawable); } @@ -576,7 +579,7 @@ public class GSYVideoOptionBuilder { gsyVideoPlayer.setShowFullAnimation(mShowFullAnimation); gsyVideoPlayer.setLooping(mLooping); - if (mStandardVideoAllCallBack == null) { + if (mVideoAllCallBack != null) { gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack); } if (mGSYVideoProgressListener != null) { @@ -592,6 +595,8 @@ public class GSYVideoOptionBuilder { gsyVideoPlayer.setEffectFilter(mEffectFilter); gsyVideoPlayer.setStartAfterPrepared(mStartAfterPrepared); gsyVideoPlayer.setReleaseWhenLossAudio(mReleaseWhenLossAudio); + gsyVideoPlayer.setFullHideActionBar(mActionBar); + gsyVideoPlayer.setFullHideStatusBar(mStatusBar); if (mEnlargeImageRes > 0) { gsyVideoPlayer.setEnlargeImageRes(mEnlargeImageRes); } diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/GSYSampleCallBack.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/GSYSampleCallBack.java index ff2e824..e040c5e 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/GSYSampleCallBack.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/GSYSampleCallBack.java @@ -5,7 +5,7 @@ package com.shuyu.gsyvideoplayer.listener; * Created by shuyu on 2016/11/23. */ -public class GSYSampleCallBack implements StandardVideoAllCallBack { +public class GSYSampleCallBack implements VideoAllCallBack { //加载成功,objects[0]是title,object[1]是当前所处播放器(全屏或非全屏) @Override diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/StandardVideoAllCallBack.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/StandardVideoAllCallBack.java deleted file mode 100644 index 9b8fe39..0000000 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/listener/StandardVideoAllCallBack.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.shuyu.gsyvideoplayer.listener; - -public interface StandardVideoAllCallBack extends VideoAllCallBack { - -} diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/GSYVideoHelper.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/GSYVideoHelper.java index bfb4389..1edd411 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/GSYVideoHelper.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/GSYVideoHelper.java @@ -15,7 +15,6 @@ import android.widget.FrameLayout; import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; import com.shuyu.gsyvideoplayer.listener.GSYVideoProgressListener; import com.shuyu.gsyvideoplayer.listener.LockClickListener; -import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack; import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack; import com.shuyu.gsyvideoplayer.render.view.GSYVideoGLView; import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer; @@ -700,10 +699,6 @@ public class GSYVideoHelper { return mVideoAllCallBack; } - public StandardVideoAllCallBack getStandardVideoAllCallBack() { - return mStandardVideoAllCallBack; - } - public LockClickListener getLockClickListener() { return mLockClickListener; } diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java index 02b305d..f1daee3 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java @@ -11,8 +11,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack; import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer; -import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack; import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer; import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer; import com.transitionseverywhere.TransitionManager; @@ -44,7 +44,7 @@ public class ListVideoUtil { private ViewGroup listParent;//记录列表中item的父布局 private ViewGroup.LayoutParams listParams; private OrientationUtils orientationUtils; - private StandardVideoAllCallBack videoAllCallBack; + private VideoAllCallBack videoAllCallBack; private String url; private Context context; private File cachePath; @@ -518,9 +518,9 @@ public class ListVideoUtil { * * @param videoAllCallBack 回调 */ - public void setVideoAllCallBack(StandardVideoAllCallBack videoAllCallBack) { + public void setVideoAllCallBack(VideoAllCallBack videoAllCallBack) { this.videoAllCallBack = videoAllCallBack; - gsyVideoPlayer.setStandardVideoAllCallBack(videoAllCallBack); + gsyVideoPlayer.setVideoAllCallBack(videoAllCallBack); } public int getPlayPosition() { diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/GSYADVideoPlayer.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/GSYADVideoPlayer.java index 29d8093..32b0448 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/GSYADVideoPlayer.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/GSYADVideoPlayer.java @@ -4,6 +4,8 @@ import android.content.Context; import android.graphics.Color; import android.util.AttributeSet; import android.view.View; +import android.view.ViewGroup; +import android.view.Window; import android.widget.ImageView; import android.widget.TextView; @@ -91,6 +93,16 @@ public class GSYADVideoPlayer extends StandardGSYVideoPlayer { } + @Override + protected int getFullId() { + return GSYVideoADManager.FULLSCREEN_ID; + } + + @Override + protected int getSmallId() { + return GSYVideoADManager.SMALL_ID; + } + @Override public void onPrepared() { super.onPrepared(); @@ -217,4 +229,18 @@ public class GSYADVideoPlayer extends StandardGSYVideoPlayer { } } + /** + * 移除没用的 + */ + public void removeFullWindowViewOnly() { + ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(getContext())).findViewById(Window.ID_ANDROID_CONTENT); + View old = vp.findViewById(getFullId()); + if (old != null) { + if (old.getParent() != null) { + ViewGroup viewGroup = (ViewGroup) old.getParent(); + vp.removeView(viewGroup); + } + } + } + } diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java index 5ddafc9..50d454b 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java @@ -20,7 +20,6 @@ import android.widget.Toast; import com.shuyu.gsyvideoplayer.R; import com.shuyu.gsyvideoplayer.listener.GSYVideoShotListener; import com.shuyu.gsyvideoplayer.listener.GSYVideoShotSaveListener; -import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack; import com.shuyu.gsyvideoplayer.utils.Debuger; import com.shuyu.gsyvideoplayer.utils.NetworkUtils; import com.shuyu.gsyvideoplayer.video.base.GSYBaseVideoPlayer; @@ -38,8 +37,6 @@ import moe.codeest.enviews.ENPlayView; public class StandardGSYVideoPlayer extends GSYVideoPlayer { - protected StandardVideoAllCallBack mStandardVideoAllCallBack; - //亮度dialog protected Dialog mBrightnessDialog; @@ -132,9 +129,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { */ @Override public void startPlayLogic() { - if (mStandardVideoAllCallBack != null) { + if (mVideoAllCallBack != null) { Debuger.printfLog("onClickStartThumb"); - mStandardVideoAllCallBack.onClickStartThumb(mOriginUrl, mTitle, StandardGSYVideoPlayer.this); + mVideoAllCallBack.onClickStartThumb(mOriginUrl, mTitle, StandardGSYVideoPlayer.this); } prepareVideo(); startDismissControlViewTimer(); @@ -363,7 +360,6 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { GSYBaseVideoPlayer gsyBaseVideoPlayer = super.startWindowFullscreen(context, actionBar, statusBar); if (gsyBaseVideoPlayer != null) { StandardGSYVideoPlayer gsyVideoPlayer = (StandardGSYVideoPlayer) gsyBaseVideoPlayer; - gsyVideoPlayer.setStandardVideoAllCallBack(mStandardVideoAllCallBack); gsyVideoPlayer.setLockClickListener(mLockClickListener); gsyVideoPlayer.setNeedLockFull(isNeedLockFull()); initFullUI(gsyVideoPlayer); @@ -829,11 +825,6 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer { } - public void setStandardVideoAllCallBack(StandardVideoAllCallBack standardVideoAllCallBack) { - this.mStandardVideoAllCallBack = standardVideoAllCallBack; - setVideoAllCallBack(standardVideoAllCallBack); - } - /************************************* 关于截图的 ****************************************/ /** diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYBaseVideoPlayer.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYBaseVideoPlayer.java index b9a7200..ac3ee89 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYBaseVideoPlayer.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYBaseVideoPlayer.java @@ -36,10 +36,6 @@ import static com.shuyu.gsyvideoplayer.utils.CommonUtil.showSupportActionBar; public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { - public static final int SMALL_ID = 85598; - - public static final int FULLSCREEN_ID = 85597; - //保存系统状态ui protected int mSystemUiVisibility; @@ -129,7 +125,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { @Override public void onClick(View v) { hideSmallVideo(); - releaseVideos(); + releaseVideos(); } }); } @@ -217,7 +213,10 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { to.mStartAfterPrepared = from.mStartAfterPrepared; to.mPauseBeforePrepared = from.mPauseBeforePrepared; to.mReleaseWhenLossAudio = from.mReleaseWhenLossAudio; - if(from.mSetUpLazy) { + to.mVideoAllCallBack = from.mVideoAllCallBack; + to.mActionBar = from.mActionBar; + to.mStatusBar = from.mStatusBar; + if (from.mSetUpLazy) { to.setUpLazy(from.mOriginUrl, from.mCache, from.mCachePath, from.mMapHeadData, from.mTitle); to.mUrl = from.mUrl; } else { @@ -361,7 +360,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { final ViewGroup vp = getViewGroup(); - final View oldF = vp.findViewById(FULLSCREEN_ID); + final View oldF = vp.findViewById(getFullId()); if (oldF != null) { //此处fix bug#265,推出全屏的时候,虚拟按键问题 GSYVideoPlayer gsyVideoPlayer = (GSYVideoPlayer) oldF; @@ -385,7 +384,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { final ViewGroup vp = getViewGroup(); - final View oldF = vp.findViewById(FULLSCREEN_ID); + final View oldF = vp.findViewById(getFullId()); final GSYVideoPlayer gsyVideoPlayer; if (oldF != null) { gsyVideoPlayer = (GSYVideoPlayer) oldF; @@ -439,6 +438,10 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { postDelayed(mCheckoutTask, 500); } + protected abstract int getFullId(); + + protected abstract int getSmallId(); + /************************* 开放接口 *************************/ /** @@ -467,6 +470,16 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { } + /** + * 利用window层播放全屏效果 + * + * @param context + */ + @SuppressWarnings("ResourceType, unchecked") + public GSYBaseVideoPlayer startWindowFullscreen(final Context context) { + return startWindowFullscreen(context, mActionBar, mStatusBar); + } + /** * 利用window层播放全屏效果 * @@ -477,6 +490,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { @SuppressWarnings("ResourceType, unchecked") public GSYBaseVideoPlayer startWindowFullscreen(final Context context, final boolean actionBar, final boolean statusBar) { + //TODO mSystemUiVisibility保存在广告切换中需要特殊处理 mSystemUiVisibility = ((Activity) context).getWindow().getDecorView().getSystemUiVisibility(); hideSupportActionBar(context, actionBar, statusBar); @@ -495,7 +509,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { final ViewGroup vp = getViewGroup(); - removeVideo(vp, FULLSCREEN_ID); + removeVideo(vp, getFullId()); //处理暂停的逻辑 pauseFullCoverLogic(); @@ -527,7 +541,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { gsyVideoPlayer = constructor.newInstance(getActivityContext(), true); } - gsyVideoPlayer.setId(FULLSCREEN_ID); + gsyVideoPlayer.setId(getFullId()); gsyVideoPlayer.setIfCurrentIsFullscreen(true); gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack); @@ -609,7 +623,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { final ViewGroup vp = getViewGroup(); - removeVideo(vp, SMALL_ID); + removeVideo(vp, getSmallId()); if (mTextureViewContainer.getChildCount() > 0) { mTextureViewContainer.removeAllViews(); @@ -618,7 +632,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { try { Constructor constructor = (Constructor) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class); GSYBaseVideoPlayer gsyVideoPlayer = constructor.newInstance(getActivityContext()); - gsyVideoPlayer.setId(SMALL_ID); + gsyVideoPlayer.setId(getSmallId()); LayoutParams lpParent = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); FrameLayout frameLayout = new FrameLayout(mContext); @@ -670,8 +684,8 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { @SuppressWarnings("ResourceType") public void hideSmallVideo() { final ViewGroup vp = getViewGroup(); - GSYVideoPlayer gsyVideoPlayer = (GSYVideoPlayer) vp.findViewById(SMALL_ID); - removeVideo(vp, SMALL_ID); + GSYVideoPlayer gsyVideoPlayer = (GSYVideoPlayer) vp.findViewById(getSmallId()); + removeVideo(vp, getSmallId()); mCurrentState = getGSYVideoManager().getLastState(); if (gsyVideoPlayer != null) { cloneParams(gsyVideoPlayer, this); @@ -747,7 +761,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { @SuppressWarnings("ResourceType") public GSYVideoPlayer getFullWindowPlayer() { ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(getContext())).findViewById(Window.ID_ANDROID_CONTENT); - final View full = vp.findViewById(FULLSCREEN_ID); + final View full = vp.findViewById(getFullId()); GSYVideoPlayer gsyVideoPlayer = null; if (full != null) { gsyVideoPlayer = (GSYVideoPlayer) full; @@ -763,7 +777,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { @SuppressWarnings("ResourceType") public GSYVideoPlayer getSmallWindowPlayer() { ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(getContext())).findViewById(Window.ID_ANDROID_CONTENT); - final View small = vp.findViewById(SMALL_ID); + final View small = vp.findViewById(getSmallId()); GSYVideoPlayer gsyVideoPlayer = null; if (small != null) { gsyVideoPlayer = (GSYVideoPlayer) small; @@ -778,7 +792,7 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { if (getFullWindowPlayer() != null) { return getFullWindowPlayer(); } - if(getSmallWindowPlayer() != null) { + if (getSmallWindowPlayer() != null) { return getSmallWindowPlayer(); } return this; @@ -791,4 +805,12 @@ public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { public void setBackFromFullScreenListener(OnClickListener backFromFullScreenListener) { this.mBackFromFullScreenListener = backFromFullScreenListener; } + + public void setFullHideActionBar(boolean actionBar) { + this.mActionBar = actionBar; + } + + public void setFullHideStatusBar(boolean statusBar) { + this.mStatusBar = statusBar; + } } diff --git a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoPlayer.java b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoPlayer.java index 365ec65..340b5f6 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoPlayer.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoPlayer.java @@ -60,4 +60,15 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer { protected HttpProxyCacheServer getProxy(Context context, File file) { return GSYVideoManager.getProxy(context, file); } + + @Override + protected int getFullId() { + return GSYVideoManager.FULLSCREEN_ID; + } + + @Override + protected int getSmallId() { + return GSYVideoManager.SMALL_ID; + } + } \ No newline at end of file -- GitLab