Explorar o código

window player radius

zhaoyadi %!s(int64=2) %!d(string=hai) anos
pai
achega
28ce9db917
Modificáronse 24 ficheiros con 92 adicións e 375 borrados
  1. BIN=BIN
      .gradle/6.7.1/executionHistory/executionHistory.bin
  2. BIN=BIN
      .gradle/6.7.1/executionHistory/executionHistory.lock
  3. BIN=BIN
      .gradle/6.7.1/fileHashes/fileHashes.bin
  4. BIN=BIN
      .gradle/6.7.1/fileHashes/fileHashes.lock
  5. BIN=BIN
      .gradle/6.7.1/fileHashes/resourceHashesCache.bin
  6. BIN=BIN
      .gradle/6.7.1/javaCompile/classAnalysis.bin
  7. BIN=BIN
      .gradle/6.7.1/javaCompile/jarAnalysis.bin
  8. BIN=BIN
      .gradle/6.7.1/javaCompile/javaCompile.lock
  9. BIN=BIN
      .gradle/6.7.1/javaCompile/taskHistory.bin
  10. BIN=BIN
      .gradle/buildOutputCleanup/buildOutputCleanup.lock
  11. BIN=BIN
      .gradle/buildOutputCleanup/outputFiles.bin
  12. 1 0
      .idea/misc.xml
  13. 1 0
      superplayerdemo/src/main/AndroidManifest.xml
  14. 2 2
      superplayerdemo/src/main/java/com/tencent/liteav/demo/player/util/SuperPlayerModelProvider.java
  15. 2 1
      superplayerdemo/src/main/res/layout/superplayer_activity_player.xml
  16. 33 22
      superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/SuperPlayerView.java
  17. 1 0
      superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/ui/player/AbsPlayer.java
  18. 14 231
      superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/ui/player/FullScreenPlayer.java
  19. 6 13
      superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/ui/player/WindowPlayer.java
  20. 0 6
      superplayerkit/src/main/res/color/superplayer_vod_player_text_color.xml
  21. 5 3
      superplayerkit/src/main/res/drawable/superplayer_unlock_bg.xml
  22. 19 90
      superplayerkit/src/main/res/layout/superplayer_vod_player_fullscreen.xml
  23. 8 0
      superplayerkit/src/main/res/values/attrs.xml
  24. 0 7
      superplayerkit/src/main/res/values/styles.xml

BIN=BIN
.gradle/6.7.1/executionHistory/executionHistory.bin


BIN=BIN
.gradle/6.7.1/executionHistory/executionHistory.lock


BIN=BIN
.gradle/6.7.1/fileHashes/fileHashes.bin


BIN=BIN
.gradle/6.7.1/fileHashes/fileHashes.lock


BIN=BIN
.gradle/6.7.1/fileHashes/resourceHashesCache.bin


BIN=BIN
.gradle/6.7.1/javaCompile/classAnalysis.bin


BIN=BIN
.gradle/6.7.1/javaCompile/jarAnalysis.bin


BIN=BIN
.gradle/6.7.1/javaCompile/javaCompile.lock


BIN=BIN
.gradle/6.7.1/javaCompile/taskHistory.bin


BIN=BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock


BIN=BIN
.gradle/buildOutputCleanup/outputFiles.bin


+ 1 - 0
.idea/misc.xml

@@ -69,6 +69,7 @@
         <entry key="..\:/demo/.android/Player_Android/Demo/superplayerkit/src/main/res/drawable/superplayer_shape_vtt_text_bg.xml" value="0.1475" />
         <entry key="..\:/demo/.android/Player_Android/Demo/superplayerkit/src/main/res/drawable/superplayer_thumb.xml" value="0.1475" />
         <entry key="..\:/demo/.android/Player_Android/Demo/superplayerkit/src/main/res/drawable/superplayer_track.xml" value="0.1475" />
+        <entry key="..\:/demo/.android/Player_Android/Demo/superplayerkit/src/main/res/drawable/superplayer_unlock_bg.xml" value="0.232" />
         <entry key="..\:/demo/.android/Player_Android/Demo/superplayerkit/src/main/res/drawable/superplayer_vipwatch_yellow_shape.xml" value="0.1475" />
         <entry key="..\:/demo/.android/Player_Android/Demo/superplayerkit/src/main/res/drawable/superplayer_vod_player_full_bf.xml" value="0.246" />
         <entry key="..\:/demo/.android/Player_Android/Demo/superplayerkit/src/main/res/drawable/superplayer_vod_player_full_bg.xml" value="0.238" />

+ 1 - 0
superplayerdemo/src/main/AndroidManifest.xml

@@ -9,6 +9,7 @@
         android:label="@string/app_name"
         android:largeHeap="true"
         android:theme="@style/AppTheme"
+        android:debuggable="true"
         tools:replace="android:allowBackup">
 
         <activity

+ 2 - 2
superplayerdemo/src/main/java/com/tencent/liteav/demo/player/util/SuperPlayerModelProvider.java

@@ -16,9 +16,9 @@ public class SuperPlayerModelProvider {
             model.title = "测试视频";
             model.duration = 1222;
             model.isEnableCache = true;
-            model.url = "https://player.bilibili.com/cabc99d8-37da-4d6e-aa36-6daa9208730d";
+            model.url = "https://v26-web.douyinvod.com/802dec176de7e625a42389f1b06ff316/62fdfbac/video/tos/cn/tos-cn-ve-15c001-alinc2/c25dd934970346678458d085b01772a3/?a=6383&ch=0&cr=0&dr=0&cd=0%7C0%7C0%7C0&cv=1&br=1374&bt=1374&cs=0&ds=3&ft=X1nbLXvvBQ3AUq8yq8Z.wNnOYZlc_UI7F2bLtM40xiZm&mime_type=video_mp4&qs=0&rc=Zzo7N2k4O2Q7aTg8ZWQ4N0Bpajc4dzo6Zng6ZDMzNGkzM0BhYF9gNDNgX2MxXmBjYzJeYSNhbzVhcjRnNWBgLS1kLS9zcw%3D%3D";
             if(i % 2== 0) {
-                model.cover = "https://t7.baidu.com/it/u=3768299387,3978912548&fm=193&f=GIF";
+                model.cover = "https://p9-pc-sign.douyinpic.com/tos-cn-p-0015/57aaf7f5975247e09c3df35e152055e4_1654159193~tplv-dy-360p.jpeg?biz_tag=pcweb_cover&from=4257465056&se=false&x-expires=1662015600&x-signature=0uL3qAHjGGcvaNmDuopeSCKdfm8%3D";
             }
             list.add(model);
         }

+ 2 - 1
superplayerdemo/src/main/res/layout/superplayer_activity_player.xml

@@ -84,7 +84,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_alignParentTop="true"
-                android:layout_alignParentEnd="true" />
+                android:layout_alignParentEnd="true"
+                app:radius="@dimen/superplayer_vod_player_window_radius" />
 
         </com.tencent.liteav.demo.superplayer.ui.view.PlayerRelativeLayout>
 

+ 33 - 22
superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/SuperPlayerView.java

@@ -6,8 +6,14 @@ import static com.tencent.liteav.demo.superplayer.SuperPlayerModel.PLAY_ACTION_P
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Bitmap;
 import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
 import android.graphics.Path;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
 import android.graphics.RectF;
 import android.util.AttributeSet;
 import android.util.Log;
@@ -75,28 +81,46 @@ public class SuperPlayerView extends RelativeLayout {
     private boolean isCallResume = false;            //resume方法时候被调用,在预加载模式使用
     private ISuperPlayerListener mSuperPlayerListener;
 
+    private float topLeftRadius;
+    private float topRightRadius;
+    private float bottomLeftRadius;
+    private float bottomRightRadius;
+
     public SuperPlayerView(Context context) {
-        super(context);
-        initialize(context);
+        this(context, null);
     }
 
     public SuperPlayerView(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        initialize(context);
+        this(context, attrs, 0);
     }
 
     public SuperPlayerView(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
+        initAttrs(context, attrs);
         initialize(context);
+
     }
 
     private void initialize(Context context) {
         mContext = context;
-        setWillNotDraw(false);
         initView();
         initPlayer();
     }
 
+    private void initAttrs(Context context, AttributeSet attrs) {
+        if (attrs != null) {
+            TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.RoundImageView);
+            float radius = a.getDimension(R.styleable.RoundImageView_radius, 0f);
+            topLeftRadius = a.getDimension(R.styleable.RoundImageView_topLeftRadius, radius);
+            topRightRadius = a.getDimension(R.styleable.RoundImageView_topRightRadius, radius);
+            bottomLeftRadius = a.getDimension(R.styleable.RoundImageView_bottomLeftRadius, radius);
+            bottomRightRadius = a.getDimension(R.styleable.RoundImageView_bottomRightRadius, radius);
+            a.recycle();
+        }
+
+        setWillNotDraw(false);
+    }
+
     /**
      * 初始化view
      */
@@ -236,10 +260,6 @@ public class SuperPlayerView extends RelativeLayout {
         }
         mSuperPlayer.resume();
         isCallResume = true;
-        // 更新缓存列表
-        if (null != mFullScreenPlayer) {
-            mFullScreenPlayer.checkIsNeedRefreshCacheMenu();
-        }
     }
 
     /**
@@ -627,15 +647,6 @@ public class SuperPlayerView extends RelativeLayout {
         }
     }
 
-    public void disableGesture(boolean flag) {
-        if (null != mFullScreenPlayer) {
-            mFullScreenPlayer.disableGesture(flag);
-        }
-        if (null != mWindowPlayer) {
-            mWindowPlayer.disableGesture(flag);
-        }
-    }
-
     public void setNeedToPause(boolean value) {
         mSuperPlayer.setNeedToPause(value);
     }
@@ -653,18 +664,18 @@ public class SuperPlayerView extends RelativeLayout {
     }
 
     @Override
-    protected void onDraw(Canvas canvas) {
+    public void draw(Canvas canvas) {
         canvas.save();
         canvas.clipPath(getClipPath(getWidth(), getHeight()));
-        super.onDraw(canvas);
+        super.draw(canvas);
         canvas.restore();
     }
 
     private Path getClipPath(int width, int height) {
         final Path path = new Path();
         float[] radiusArray = new float[]{
-                20f, 20f, 20f, 20f,
-                20f, 20f, 20f, 20f
+                topLeftRadius, topLeftRadius, topRightRadius, topRightRadius,
+                bottomRightRadius, bottomRightRadius, bottomLeftRadius, bottomLeftRadius
         };
         path.addRoundRect(new RectF(0, 0, width, height), radiusArray, Path.Direction.CW);
 

+ 1 - 0
superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/ui/player/AbsPlayer.java

@@ -12,6 +12,7 @@ import com.tencent.liteav.demo.superplayer.SuperPlayerDef;
  * 播放器公共逻辑
  */
 public abstract class AbsPlayer extends RelativeLayout implements Player {
+    protected static final int HIDDEN_DELAY = 3000;
 
     protected static final int      MAX_SHIFT_TIME = 7200; // demo演示直播时移是MAX_SHIFT_TIMEs,即2小时
     protected Callback     mControllerCallback; // 播放控制回调

+ 14 - 231
superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/ui/player/FullScreenPlayer.java

@@ -32,25 +32,15 @@ import java.lang.ref.WeakReference;
  * 2、触摸事件监听{@link #onTouchEvent(MotionEvent)}
  */
 public class FullScreenPlayer extends AbsPlayer implements View.OnClickListener {
-    private VolumeBrightnessProgressLayout mGestureVolumeBrightnessProgressLayout; // 音量亮度调节布局
-    private VideoProgressLayout mGestureVideoProgressLayout;            // 手势快进提示布局
-
     private ImageView mIvLock;                                // 锁屏按钮
-    private ImageView mImageStartAndResume;                   // 开始播放的三角
     private ImageView mImageCover;                            // 封面图
 
-    private HideLockViewRunnable mHideLockViewRunnable;                  // 隐藏锁屏按钮子线程
-    private GestureDetector mGestureDetector;                       // 手势检测监听器
-    private VideoGestureDetector mVideoGestureDetector;                      // 手势控制工具
-
     private boolean isShowing;  // 自身是否可见
     private SuperPlayerDef.PlayerType mPlayType;   // 当前播放视频类型
     private SuperPlayerDef.PlayerState mCurrentPlayState = SuperPlayerDef.PlayerState.END; // 当前播放状态
 
     private Bitmap mBackgroundBmp; // 背景图
-    private boolean mLockScreen;  // 是否锁屏
 
-    private boolean mIsOpenGesture = true;  // 是否开启手势
     private boolean isDestroy = false;  // Activity是否被销毁
 
     public FullScreenPlayer(Context context) {
@@ -73,143 +63,22 @@ public class FullScreenPlayer extends AbsPlayer implements View.OnClickListener
      */
     private void initialize(Context context) {
         initView(context);
-        mGestureDetector = new GestureDetector(getContext(), new GestureDetector.SimpleOnGestureListener() {
-            @Override
-            public boolean onDoubleTap(MotionEvent e) {
-                if (mLockScreen) return false;
-                togglePlayState();
-                show();
-                if (mHideViewRunnable != null) {
-                    removeCallbacks(mHideViewRunnable);
-                    postDelayed(mHideViewRunnable, 7000);
-                }
-                return true;
-            }
-
-            @Override
-            public boolean onSingleTapConfirmed(MotionEvent e) {
-                toggle();
-                return true;
-            }
-
-            @Override
-            public boolean onScroll(MotionEvent downEvent, MotionEvent moveEvent, float distanceX, float distanceY) {
-                if (mLockScreen) return false;
-                if (downEvent == null || moveEvent == null) {
-                    return false;
-                }
-                if (mVideoGestureDetector != null && mGestureVolumeBrightnessProgressLayout != null) {
-                    mVideoGestureDetector.check(mGestureVolumeBrightnessProgressLayout.getHeight(), downEvent, moveEvent, distanceX, distanceY);
-                }
-                return true;
-            }
-
-            @Override
-            public boolean onDown(MotionEvent e) {
-                return true;
-            }
-
-        });
-        mGestureDetector.setIsLongpressEnabled(false);
-
-        mVideoGestureDetector = new VideoGestureDetector(getContext());
-        mVideoGestureDetector.setVideoGestureListener(new VideoGestureDetector.VideoGestureListener() {
-            @Override
-            public void onBrightnessGesture(float newBrightness) {
-                if (mGestureVolumeBrightnessProgressLayout != null) {
-                    mGestureVolumeBrightnessProgressLayout.setProgress((int) (newBrightness * 100));
-                    mGestureVolumeBrightnessProgressLayout.setImageResource(R.drawable.superplayer_ic_light_max);
-                    mGestureVolumeBrightnessProgressLayout.show();
-                }
-            }
-
-            @Override
-            public void onVolumeGesture(float volumeProgress) {
-                if (mGestureVolumeBrightnessProgressLayout != null) {
-                    mGestureVolumeBrightnessProgressLayout.setImageResource(R.drawable.superplayer_ic_volume_max);
-                    mGestureVolumeBrightnessProgressLayout.setProgress((int) volumeProgress);
-                    mGestureVolumeBrightnessProgressLayout.show();
-                }
-            }
-
-            @Override
-            public void onSeekGesture(int progress) {
-
-            }
-        });
     }
 
     /**
      * 初始化view
      */
     private void initView(Context context) {
-        mHideLockViewRunnable = new HideLockViewRunnable(this);
         LayoutInflater.from(context).inflate(R.layout.superplayer_vod_player_fullscreen, this);
 
         mIvLock = (ImageView) findViewById(R.id.superplayer_iv_lock);
-        mImageCover = (ImageView) findViewById(R.id.superplayer_cover_view);
-        mImageStartAndResume = (ImageView) findViewById(R.id.superplayer_resume);
-
-        mImageStartAndResume.setOnClickListener(this);
         mIvLock.setOnClickListener(this);
-        mGestureVolumeBrightnessProgressLayout = (VolumeBrightnessProgressLayout) findViewById(R.id.superplayer_gesture_progress);
-        mGestureVideoProgressLayout = (VideoProgressLayout) findViewById(R.id.superplayer_video_progress_layout);
-    }
 
-    public void setPlayNextButtonVisibility(boolean isShowing) {
-
-    }
-
-    /**
-     * 切换播放状态
-     * <p>
-     * 双击和点击播放/暂停按钮会触发此方法
-     */
-    private void togglePlayState() {
-        switch (mCurrentPlayState) {
-            case INIT:
-            case PAUSE:
-            case END:
-                if (mControllerCallback != null) {
-                    mControllerCallback.onResume();
-                }
-                break;
-            case PLAYING:
-            case LOADING:
-                if (mControllerCallback != null) {
-                    mControllerCallback.onPause();
-                }
-                break;
-        }
-        show();
+        mImageCover = (ImageView) findViewById(R.id.superplayer_cover_view);
     }
 
+    public void setPlayNextButtonVisibility(boolean isShowing) {
 
-    /**
-     * 切换自身的可见性
-     */
-    private void toggle() {
-        if (!mLockScreen) {
-            if (isShowing) {
-                hide();
-            } else {
-                show();
-                if (mHideViewRunnable != null) {
-                    removeCallbacks(mHideViewRunnable);
-                    postDelayed(mHideViewRunnable, 7000);
-                }
-            }
-        } else {
-            mIvLock.setVisibility(VISIBLE);
-            if (mHideLockViewRunnable != null) {
-                removeCallbacks(mHideLockViewRunnable);
-                postDelayed(mHideLockViewRunnable, 7000);
-            }
-        }
-    }
-
-    private void updateStartUI(boolean isAutoPlay) {
-        toggleView(mImageStartAndResume, !isAutoPlay);
     }
 
     public void preparePlayVideo(SuperPlayerModel superPlayerModel) {
@@ -222,7 +91,6 @@ public class FullScreenPlayer extends AbsPlayer implements View.OnClickListener
         }
         toggleView(mImageCover, true);
         updateVideoProgress(0, superPlayerModel.duration);
-        updateStartUI(superPlayerModel.playAction == SuperPlayerModel.PLAY_ACTION_AUTO_PLAY);
     }
 
     /**
@@ -231,9 +99,6 @@ public class FullScreenPlayer extends AbsPlayer implements View.OnClickListener
     @Override
     public void show() {
         isShowing = true;
-        if (mHideLockViewRunnable != null) {
-            removeCallbacks(mHideLockViewRunnable);
-        }
         mIvLock.setVisibility(VISIBLE);
     }
 
@@ -254,36 +119,16 @@ public class FullScreenPlayer extends AbsPlayer implements View.OnClickListener
         isDestroy = true;
     }
 
-
     public void toggleCoverView(boolean isVisible) {
         toggleView(mImageCover, isVisible);
     }
 
     public void prepareLoading() {
-        toggleView(mImageStartAndResume, false);
+
     }
 
     @Override
     public void updatePlayState(SuperPlayerDef.PlayerState playState) {
-        switch (playState) {
-            case INIT:
-                mIvPause.setImageResource(R.drawable.superplayer_ic_vod_play_normal);
-                break;
-            case PLAYING:
-                mIvPause.setImageResource(R.drawable.superplayer_ic_vod_pause_normal);
-                toggleView(mImageStartAndResume, false);
-                break;
-            case LOADING:
-                mIvPause.setImageResource(R.drawable.superplayer_ic_vod_pause_normal);
-                break;
-            case PAUSE:
-                mIvPause.setImageResource(R.drawable.superplayer_ic_vod_play_normal);
-                toggleView(mImageStartAndResume, true);
-                break;
-            case END:
-                mIvPause.setImageResource(R.drawable.superplayer_ic_vod_play_normal);
-                break;
-        }
         mCurrentPlayState = playState;
     }
 
@@ -310,14 +155,16 @@ public class FullScreenPlayer extends AbsPlayer implements View.OnClickListener
 
     @Override
     public boolean onTouchEvent(MotionEvent event) {
-        if (mIsOpenGesture && mGestureDetector != null) {
-            mGestureDetector.onTouchEvent(event);
-        }
-
         if (event.getAction() == MotionEvent.ACTION_DOWN) {
-            removeCallbacks(mHideViewRunnable);
+            if (isShowing) {
+                hide();
+            } else {
+                show();
+            }
         } else if (event.getAction() == MotionEvent.ACTION_UP) {
-            postDelayed(mHideViewRunnable, 7000);
+            if (isShowing) {
+                postDelayed(mHideViewRunnable, HIDDEN_DELAY);
+            }
         }
         return true;
     }
@@ -328,74 +175,10 @@ public class FullScreenPlayer extends AbsPlayer implements View.OnClickListener
     @Override
     public void onClick(View view) {
         int i = view.getId();
-        if (i == R.id.superplayer_iv_back || i == R.id.superplayer_tv_title_full_screen) { //顶部标题栏
-            if (mControllerCallback != null) {
-                mControllerCallback.onBackPressed(SuperPlayerDef.PlayerMode.FULLSCREEN);
-            }
-        } else if (i == R.id.superplayer_iv_pause || i == R.id.superplayer_resume) {            //暂停\播放按钮
-            togglePlayState();
-        }else if (i == R.id.superplayer_iv_lock) {             //锁屏按钮
-            toggleLockState();
-        } else if (i == R.id.superplayer_iv_play_next) {
-            if (mControllerCallback != null) {
-                mControllerCallback.playNext();
-            }
-        }
-    }
-
-    /**
-     * 切换锁屏状态
-     */
-    private void toggleLockState() {
-        mLockScreen = !mLockScreen;
-        mIvLock.setVisibility(VISIBLE);
-        if (mHideLockViewRunnable != null) {
-            removeCallbacks(mHideLockViewRunnable);
-            postDelayed(mHideLockViewRunnable, 7000);
-        }
-        if (mLockScreen) {
-            mIvLock.setImageResource(R.drawable.superplayer_ic_player_lock);
-            hide();
-            mIvLock.setVisibility(VISIBLE);
-        } else {
-            mIvLock.setImageResource(R.drawable.superplayer_ic_player_unlock);
-            show();
-        }
-    }
-
-    /**
-     * 重播
-     */
-    private void replay() {
-        if (mControllerCallback != null) {
-            mControllerCallback.onResume();
-        }
-    }
-
-    public void disableGesture(boolean flag) {
-        this.mIsOpenGesture = !flag;
-    }
 
-    /**
-     * 刷新缓存列表的视频缓存状态
-     */
-    public void checkIsNeedRefreshCacheMenu() {
-    }
-
-    /**
-     * 隐藏锁屏按钮的runnable
-     */
-    private static class HideLockViewRunnable implements Runnable {
-        private WeakReference<FullScreenPlayer> mWefControllerFullScreen;
-
-        public HideLockViewRunnable(FullScreenPlayer controller) {
-            mWefControllerFullScreen = new WeakReference<>(controller);
-        }
-
-        @Override
-        public void run() {
-            if (mWefControllerFullScreen != null && mWefControllerFullScreen.get() != null) {
-                mWefControllerFullScreen.get().mIvLock.setVisibility(GONE);
+        if (i == R.id.superplayer_iv_lock) {             //锁屏按钮
+            if (mControllerCallback != null) {
+                mControllerCallback.onSwitchPlayMode(SuperPlayerDef.PlayerMode.WINDOW);
             }
         }
     }

+ 6 - 13
superplayerkit/src/main/java/com/tencent/liteav/demo/superplayer/ui/player/WindowPlayer.java

@@ -92,7 +92,7 @@ public class WindowPlayer extends AbsPlayer implements View.OnClickListener,
 //                show();
                 if (mHideViewRunnable != null) {
                     removeCallbacks(mHideViewRunnable);
-                    postDelayed(mHideViewRunnable, 7000);
+                    postDelayed(mHideViewRunnable, HIDDEN_DELAY);
                 }
                 return true;
             }
@@ -245,7 +245,7 @@ public class WindowPlayer extends AbsPlayer implements View.OnClickListener,
             show();
             if (mHideViewRunnable != null) {
                 removeCallbacks(mHideViewRunnable);
-                postDelayed(mHideViewRunnable, 7000);
+                postDelayed(mHideViewRunnable, HIDDEN_DELAY);
             }
         }
     }
@@ -471,7 +471,7 @@ public class WindowPlayer extends AbsPlayer implements View.OnClickListener,
         if (event.getAction() == MotionEvent.ACTION_DOWN) {
             removeCallbacks(mHideViewRunnable);
         } else if (event.getAction() == MotionEvent.ACTION_UP) {
-            postDelayed(mHideViewRunnable, 7000);
+            postDelayed(mHideViewRunnable, HIDDEN_DELAY);
         }
         return true;
     }
@@ -486,20 +486,13 @@ public class WindowPlayer extends AbsPlayer implements View.OnClickListener,
         }
         mLastClickTime = System.currentTimeMillis();
         int id = view.getId();
-        if (id == R.id.superplayer_iv_back) { //顶部标题栏
-            if (mControllerCallback != null) {
-                mControllerCallback.onBackPressed(SuperPlayerDef.PlayerMode.WINDOW);
-            }
-        } else if (id == R.id.superplayer_iv_pause || id == R.id.superplayer_resume) { //暂停\播放按钮
+
+        if (id == R.id.superplayer_iv_pause || id == R.id.superplayer_resume) { //暂停\播放按钮
             togglePlayState();
         } else if (id == R.id.superplayer_iv_fullscreen) { //全屏按钮
             if (mControllerCallback != null) {
                 mControllerCallback.onSwitchPlayMode(SuperPlayerDef.PlayerMode.FULLSCREEN);
             }
-        } else if (id == R.id.superplayer_ll_replay) { //重播按钮
-            if (mControllerCallback != null) {
-                mControllerCallback.onResume();
-            }
         } else if (id == R.id.superplayer_iv_play_next) {
             if (mControllerCallback != null) {
                 mControllerCallback.playNext();
@@ -564,6 +557,6 @@ public class WindowPlayer extends AbsPlayer implements View.OnClickListener,
                 }
                 break;
         }
-        postDelayed(mHideViewRunnable, 7000);
+        postDelayed(mHideViewRunnable, HIDDEN_DELAY);
     }
 }

+ 0 - 6
superplayerkit/src/main/res/color/superplayer_vod_player_text_color.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/superplayer_color_tint_red" android:state_selected="true" />
-    <item android:color="@color/superplayer_color_tint_red" android:state_checked="true" />
-    <item android:color="@color/superplayer_white" />
-</selector>

+ 5 - 3
superplayerkit/src/main/res/drawable/superplayer_unlock_bg.xml

@@ -1,4 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-
-</selector>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="#7f000000" />
+    <corners android:radius="20dp" />
+</shape>

+ 19 - 90
superplayerkit/src/main/res/layout/superplayer_vod_player_fullscreen.xml

@@ -6,105 +6,34 @@
 
     <ImageView
         android:id="@+id/superplayer_iv_lock"
-        android:layout_width="35dp"
-        android:layout_height="35dp"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:layout_alignParentLeft="true"
         android:layout_centerVertical="true"
-        android:layout_marginLeft="30dp"
-        android:src="@mipmap/dog_track" />
+        android:layout_marginLeft="37dp"
+        android:src="@mipmap/full_unlock" />
 
-    <LinearLayout
-        android:id="@+id/superplayer_ll_replay"
+    <TextView
         android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+        android:layout_height="40dp"
         android:layout_centerInParent="true"
-        android:gravity="center"
-        android:orientation="vertical"
-        android:padding="10dp"
-        android:visibility="visible">
-
-        <ImageView
-            android:id="@+id/superplayer_iv_replay"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/superplayer_ic_replay" />
-
-    </LinearLayout>
-
-    <com.tencent.liteav.demo.superplayer.ui.view.VolumeBrightnessProgressLayout
-        android:id="@+id/superplayer_gesture_progress"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerInParent="true"
-        android:gravity="center" />
-
-
-    <com.tencent.liteav.demo.superplayer.ui.view.VideoProgressLayout
-        android:id="@+id/superplayer_video_progress_layout"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_centerInParent="true"
-        android:gravity="center" />
+        android:layout_marginLeft="93dp"
+        android:layout_alignParentLeft="true"
+        android:background="@drawable/superplayer_unlock_bg"
+        android:paddingLeft="20dp"
+        android:paddingTop="10dp"
+        android:paddingRight="20dp"
+        android:paddingBottom="9dp"
+        android:text="长按此处解锁"
+        android:textColor="#ffffffff"
+        android:textSize="15sp" />
 
     <ImageView
         android:id="@+id/superplayer_cover_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:scaleType="fitCenter"
+        android:scaleType="centerCrop"
+        android:src="@drawable/superplayer_default"
         android:visibility="gone" />
 
-    <!--标题-->
-    <LinearLayout
-        android:id="@+id/superplayer_ll_title"
-        android:layout_width="match_parent"
-        android:layout_height="@dimen/superplayer_media_controller_view_height"
-        android:gravity="left"
-        android:orientation="horizontal">
-
-        <ImageView
-            android:id="@+id/superplayer_iv_back"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:layout_marginLeft="20dp"
-            android:src="@drawable/superplayer_btn_back_play" />
-
-        <TextView
-            android:id="@+id/superplayer_tv_title_full_screen"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:text="@string/superplayer_small_video_special_effects_editing"
-            android:textColor="@android:color/white"
-            android:textSize="11dp" />
-    </LinearLayout>
-
-
-    <LinearLayout
-        android:id="@+id/superplayer_ll_bottom"
-        android:layout_width="match_parent"
-        android:layout_height="64dp"
-        android:layout_alignParentBottom="true"
-        android:background="@drawable/superplayer_shadow_bottom"
-        android:orientation="horizontal">
-
-        <!--播放/暂停-->
-        <ImageView
-            android:id="@+id/superplayer_iv_pause"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="center_vertical"
-            android:layout_marginLeft="23dp"
-            android:layout_marginTop="10dp"
-            android:layout_marginBottom="15dp"
-            android:src="@mipmap/play_state" />
-
-    </LinearLayout>
-
-    <ImageView
-        android:id="@+id/superplayer_resume"
-        android:layout_width="50dp"
-        android:layout_height="50dp"
-        android:layout_centerInParent="true"
-        android:src="@drawable/superplayer_ic_vod_play_normal"
-        android:visibility="visible" />
 </RelativeLayout>

+ 8 - 0
superplayerkit/src/main/res/values/attrs.xml

@@ -17,4 +17,12 @@
         <attr name="window_marginRight" format="dimension" />
         <attr name="window_marginBottom" format="dimension" />
     </declare-styleable>
+
+    <declare-styleable name="RoundImageView">
+        <attr name="radius" format="dimension" />
+        <attr name="topLeftRadius" format="dimension" />
+        <attr name="topRightRadius" format="dimension" />
+        <attr name="bottomLeftRadius" format="dimension" />
+        <attr name="bottomRightRadius" format="dimension" />
+    </declare-styleable>
 </resources>

+ 0 - 7
superplayerkit/src/main/res/values/styles.xml

@@ -15,12 +15,5 @@
         <attr name="psb_progressHeight" format="dimension" />
     </declare-styleable>
 
-    <declare-styleable name="RoundImageView">
-        <attr name="radius" format="dimension" />
-        <attr name="topLeftRadius" format="dimension" />
-        <attr name="topRightRadius" format="dimension" />
-        <attr name="bottomLeftRadius" format="dimension" />
-        <attr name="bottomRightRadius" format="dimension" />
-    </declare-styleable>
 
 </resources>