提交 024dd213 编写于 作者: G guoshuyu

fix demo ad

上级 41ba66b6
......@@ -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);
......
......@@ -70,7 +70,7 @@ public class DetailADPlayer extends GSYBaseActivityDetail<ListGSYVideoPlayer> {
detailPlayer.setShowFullAnimation(false);
detailPlayer.setNeedLockFull(true);
detailPlayer.setStandardVideoAllCallBack(this);
detailPlayer.setVideoAllCallBack(this);
detailPlayer.setLockClickListener(new LockClickListener() {
@Override
......
......@@ -57,7 +57,7 @@ public class DetailADPlayer2 extends GSYBaseActivityDetail<NormalGSYVideoPlayer>
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<NormalGSYVideoPlayer>
@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<NormalGSYVideoPlayer>
//直接横屏
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<NormalGSYVideoPlayer>
.setUrl(url)
.setCacheWithPlay(true)
.setVideoTitle(" ")
.setFullHideActionBar(true)
.setFullHideStatusBar(true)
.setIsTouchWiget(true)
.setRotateViewAuto(false)
.setLockLand(false)
......
......@@ -71,7 +71,7 @@ public class DetailListPlayer extends GSYBaseActivityDetail<ListGSYVideoPlayer>
detailPlayer.setShowFullAnimation(false);
detailPlayer.setNeedLockFull(true);
detailPlayer.setStandardVideoAllCallBack(this);
detailPlayer.setVideoAllCallBack(this);
detailPlayer.setLockClickListener(new LockClickListener() {
@Override
......
......@@ -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);
......
......@@ -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]);
......
......@@ -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);
......
......@@ -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();
......
......@@ -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();
......
......@@ -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();
......
......@@ -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) {
......
......@@ -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
......
......@@ -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);
......
......@@ -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);
......
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
......
......@@ -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;
}
......
......@@ -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. ********");
......
......@@ -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<String, CustomManager> sMap = new HashMap<>();
......
......@@ -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<T extends GSYBaseVideoPlayer> extends AppCompatActivity implements StandardVideoAllCallBack {
public abstract class GSYBaseActivityDetail<T extends GSYBaseVideoPlayer> extends AppCompatActivity implements VideoAllCallBack {
protected boolean isPlay;
......
......@@ -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")
......
......@@ -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")
......
......@@ -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);
}
......
......@@ -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
......
package com.shuyu.gsyvideoplayer.listener;
public interface StandardVideoAllCallBack extends VideoAllCallBack {
}
......@@ -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;
}
......
......@@ -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() {
......
......@@ -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);
}
}
}
}
......@@ -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);
}
/************************************* 关于截图的 ****************************************/
/**
......
......@@ -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<GSYBaseVideoPlayer> constructor = (Constructor<GSYBaseVideoPlayer>) 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;
}
}
......@@ -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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册