diff --git a/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java b/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java index 045a467be11540acc8190de55333d53dfe944738..98e43bfa21e3b22dd6b6db424e598bcdddd49fa9 100644 --- a/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java +++ b/app/src/main/java/com/example/gsyvideoplayer/DetailADPlayer2.java @@ -6,9 +6,11 @@ import android.view.View; import android.widget.ImageView; import com.shuyu.gsyvideoplayer.GSYBaseActivityDetail; +import com.shuyu.gsyvideoplayer.GSYVideoADManager; import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack; import com.shuyu.gsyvideoplayer.listener.LockClickListener; +import com.shuyu.gsyvideoplayer.utils.OrientationUtils; import com.shuyu.gsyvideoplayer.video.NormalGSYVideoPlayer; import com.shuyu.gsyvideoplayer.video.GSYADVideoPlayer; import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer; @@ -16,6 +18,8 @@ import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer; public class DetailADPlayer2 extends GSYBaseActivityDetail { + private OrientationUtils adOrientationUtils; + private NormalGSYVideoPlayer detailPlayer; private GSYADVideoPlayer adPlayer; @@ -26,6 +30,8 @@ public class DetailADPlayer2 extends GSYBaseActivityDetail private String url = "http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4"; + private boolean isAdPlayer; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -53,48 +59,106 @@ public class DetailADPlayer2 extends GSYBaseActivityDetail GSYVideoOptionBuilder adBuilder = getGSYVideoOptionBuilder(); adBuilder.setUrl(urlAd) - .setVideoAllCallBack(new GSYSampleCallBack(){ - @Override - public void onAutoComplete(String url, Object... objects) { - adPlayer.release(); - adPlayer.setVisibility(View.GONE); - //todo 如果在全屏下的处理 - getGSYVideoPlayer().getCurrentPlayer().startAfterPrepared(); - } - - }); + .setVideoAllCallBack(new GSYSampleCallBack() { + @Override + public void onPrepared(String url, Object... objects) { + super.onPrepared(url, objects); + isAdPlayer = true; + //开始播放了才能旋转和全屏 + adOrientationUtils.setEnable(getDetailOrientationRotateAuto()); + } + + @Override + public void onAutoComplete(String url, Object... objects) { + adPlayer.release(); + adPlayer.setVisibility(View.GONE); + //todo 如果在全屏下的处理 + //todo 中间弹出逻辑处理 + getGSYVideoPlayer().getCurrentPlayer().startAfterPrepared(); + if (adPlayer.getCurrentPlayer().isIfCurrentIsFullscreen()) { + if (!getGSYVideoPlayer().getCurrentPlayer().isIfCurrentIsFullscreen()) { + showFull(); + } + } + } + + @Override + public void onQuitFullscreen(String url, Object... objects) { + if (adOrientationUtils != null) { + adOrientationUtils.backToProtVideo(); + } + } + + }); adBuilder.build(adPlayer); } + @Override + public void initVideo() { + super.initVideo(); + //外部辅助的旋转,帮助全屏 + adOrientationUtils = new OrientationUtils(this, adPlayer); + //初始化不打开外部的旋转 + adOrientationUtils.setEnable(false); + if (adPlayer.getFullscreenButton() != null) { + adPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //直接横屏 + adOrientationUtils.resolveByClick(); + //第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar + adPlayer.startWindowFullscreen(DetailADPlayer2.this, true, true); + + + } + }); + } + } + @Override public void onBackPressed() { + if (adOrientationUtils != null) { + adOrientationUtils.backToProtVideo(); + } + if (GSYVideoADManager.backFromWindowFull(this)) { + return; + } super.onBackPressed(); - //TODO AD } @Override protected void onPause() { super.onPause(); - //TODO AD + GSYVideoADManager.onPause(); } @Override protected void onResume() { super.onResume(); - //TODO AD + GSYVideoADManager.onResume(); } @Override protected void onDestroy() { super.onDestroy(); - //TODO AD + GSYVideoADManager.releaseAllVideos(); + if (adOrientationUtils != null) + adOrientationUtils.releaseListener(); } @Override public void onConfigurationChanged(Configuration newConfig) { + //如果旋转了就全屏 + boolean backUpIsPlay = isPlay; + if (isAdPlayer && !isPause) { + if (adPlayer.getCurrentPlayer().isInPlayingState()) { + isPlay = false; + adPlayer.onConfigurationChanged(this, newConfig, adOrientationUtils); + } + } super.onConfigurationChanged(newConfig); - //TODO AD + isPlay = backUpIsPlay; } @Override 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 ba89b77439351344c82f811ae08345b7da0931b1..d4551569a76bfd6010e2fb32195cdf61dff9f850 100644 --- a/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYBaseActivityDetail.java +++ b/gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYBaseActivityDetail.java @@ -40,11 +40,7 @@ public abstract class GSYBaseActivityDetail extend getGSYVideoPlayer().getFullscreenButton().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - //直接横屏 - orientationUtils.resolveByClick(); - //第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar - getGSYVideoPlayer().startWindowFullscreen(GSYBaseActivityDetail.this, true, true); - + showFull(); clickForFullScreen(); } }); @@ -61,6 +57,16 @@ public abstract class GSYBaseActivityDetail extend .build(getGSYVideoPlayer()); } + public void showFull() { + if (orientationUtils.getIsLand() != 1) { + //直接横屏 + orientationUtils.resolveByClick(); + } + //第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar + getGSYVideoPlayer().startWindowFullscreen(GSYBaseActivityDetail.this, hideActionBarWhenFull(), hideStatusBarWhenFull()); + + } + @Override public void onBackPressed() { if (orientationUtils != null) { @@ -219,6 +225,14 @@ public abstract class GSYBaseActivityDetail extend } + public boolean hideActionBarWhenFull() { + return true; + } + + public boolean hideStatusBarWhenFull() { + return true; + } + /** * 播放控件 */ 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 16801a9597f305dfbc1241b7f928110540e89120..29d809317f21abcc62c8c8174e48b8b645f6dcd7 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 @@ -51,7 +51,9 @@ public class GSYADVideoPlayer extends StandardGSYVideoPlayer { mJumpAd.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - onAutoCompletion(); + if (getGSYVideoManager().listener() != null) { + getGSYVideoManager().listener().onAutoCompletion(); + } } }); } @@ -89,7 +91,6 @@ public class GSYADVideoPlayer extends StandardGSYVideoPlayer { } - @Override public void onPrepared() { super.onPrepared(); 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 ca00a95f78d6f19c948c6e162467556b9ba92f8e..b9a72002d59ea66d1eddb3826c35a1335c2c7e48 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,7 +36,7 @@ import static com.shuyu.gsyvideoplayer.utils.CommonUtil.showSupportActionBar; public abstract class GSYBaseVideoPlayer extends GSYVideoControlView { - public static final int SMALL_ID = 84778; + public static final int SMALL_ID = 85598; public static final int FULLSCREEN_ID = 85597;