瀏覽代碼

优化视频播放逻辑

yangchong 5 年之前
父節點
當前提交
55aa1188bc

+ 0 - 1
README.md

@@ -237,7 +237,6 @@
     - 08.在fragment中播放
     - 09.1 显示正常视频top[分享,下载,更多按钮控件,默认不显示]
     - 09.2 显示横屏视频top[tv投影,切换音频控件,默认显示]
-    - 09.3 暂停视频时设置视频播放器中间的播放键是否显示
     - 10.全局悬浮播放视频
     - 11.常见api说明
 - [视频优化处理](https://github.com/yangchong211/YCVideoPlayer/blob/master/read/wiki2.md)

+ 0 - 7
YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/controller/AbsVideoPlayerController.java

@@ -84,13 +84,6 @@ public abstract class AbsVideoPlayerController extends FrameLayout implements Vi
      */
     public abstract boolean getLock();
 
-    /**
-     * 设置视频播放器中间的播放键是否显示,设置自定义图片
-     * @param isVisibility          是否可见
-     * @param image                 image
-     */
-    public abstract void setCenterPlayer(boolean isVisibility ,@DrawableRes int image);
-
     /**
      * 设置是否显示视频头部的下载,分享布局控件
      * @param isVisibility          是否可见

+ 10 - 28
YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/controller/VideoPlayerController.java

@@ -185,11 +185,6 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
      * 默认为false,不显示
      */
     private boolean mIsTopLayoutVisibility = false;
-    /**
-     * 设置视频播放器中间的播放键是否显示
-     * 默认为false,不显示
-     */
-    private boolean mIsCenterPlayerVisibility = false;
     /**
      * 设置横屏播放时,tv图标是否显示
      * 默认为false,不显示
@@ -558,23 +553,6 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
         }
     }
 
-    /**
-     * 设置中间播放按钮是否显示,并且支持设置自定义图标
-     * @param isVisibility          是否可见,默认不可见
-     * @param image                 image
-     */
-    @Override
-    public void setCenterPlayer(boolean isVisibility, @DrawableRes int image) {
-        this.mIsCenterPlayerVisibility = isVisibility;
-        if(isVisibility){
-            if(image==0){
-                mCenterStart.setImageResource(R.drawable.ic_player_center_start);
-            }else {
-                mCenterStart.setImageResource(image);
-            }
-        }
-    }
-
     /**
      * 设置top到顶部的距离
      * @param top                   top
@@ -711,15 +689,15 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
      * 播放准备中
      */
     private void startPreparing() {
-        mImage.setVisibility(View.GONE);
         mLoading.setVisibility(View.VISIBLE);
         mLoadText.setText("正在准备...");
+        mImage.setVisibility(View.GONE);
         mError.setVisibility(View.GONE);
         mCompleted.setVisibility(View.GONE);
-        setTopBottomVisible(false);
         mCenterStart.setVisibility(View.GONE);
         mLength.setVisibility(View.GONE);
         mPbPlayBar.setVisibility(GONE);
+        setTopBottomVisible(false);
         //开启缓冲时更新网络加载速度
         startUpdateNetSpeedTimer();
         startUpdateProgressTimer();
@@ -730,9 +708,10 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
      */
     private void statePlaying() {
         mLoading.setVisibility(View.GONE);
-        mCenterStart.setVisibility(View.GONE);
         mPbPlayBar.setVisibility(View.VISIBLE);
         mRestartPause.setImageResource(R.drawable.ic_player_pause);
+        mCenterStart.setImageResource(R.drawable.icon_pause_center);
+        setTopBottomVisible(true);
         startDismissTopBottomTimer();
         cancelUpdateNetSpeedTimer();
     }
@@ -742,8 +721,9 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
      */
     private void statePaused() {
         mLoading.setVisibility(View.GONE);
-        mCenterStart.setVisibility(mIsCenterPlayerVisibility?View.VISIBLE:View.GONE);
         mRestartPause.setImageResource(R.drawable.ic_player_start);
+        mCenterStart.setImageResource(R.drawable.icon_play_center);
+        setTopBottomVisible(true);
         cancelDismissTopBottomTimer();
         cancelUpdateNetSpeedTimer();
     }
@@ -752,11 +732,10 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
      * 正在缓冲(播放器正在播放时,缓冲区数据不足,进行缓冲,缓冲区数据足够后恢复播放)
      */
     private void stateBufferingPlaying() {
-        mError.setVisibility(View.GONE);
         mLoading.setVisibility(View.VISIBLE);
-        mCenterStart.setVisibility(View.GONE);
         setTopBottomVisible(false);
         mRestartPause.setImageResource(R.drawable.ic_player_pause);
+        mCenterStart.setImageResource(R.drawable.icon_pause_center);
         mLoadText.setText("正在准备...");
         startDismissTopBottomTimer();
         cancelUpdateNetSpeedTimer();
@@ -768,6 +747,7 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
     private void stateBufferingPaused() {
         mLoading.setVisibility(View.VISIBLE);
         mRestartPause.setImageResource(R.drawable.ic_player_start);
+        mCenterStart.setImageResource(R.drawable.icon_play_center);
         mLoadText.setText("正在准备...");
         setTopBottomVisible(false);
         cancelDismissTopBottomTimer();
@@ -803,6 +783,7 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
         if(mOnCompletedListener!=null){
             mOnCompletedListener.onCompleted();
         }
+        mPbPlayBar.setProgress(100);
         //当播放完成就解除广播
         unRegisterNetChangedReceiver();
     }
@@ -1108,6 +1089,7 @@ public class VideoPlayerController extends AbsVideoPlayerController implements V
         mTop.setVisibility(visible ? View.VISIBLE : View.GONE);
         mBottom.setVisibility(visible ? View.VISIBLE : View.GONE);
         mLine.setVisibility(visible ? View.GONE : View.VISIBLE);
+        mCenterStart.setVisibility(visible ? View.VISIBLE : View.GONE);
         topBottomVisible = visible;
         if (visible) {
             if (!mVideoPlayer.isPaused() && !mVideoPlayer.isBufferingPaused()) {

+ 0 - 1
YCVideoPlayerLib/src/main/java/org/yczbj/ycvideoplayerlib/window/FloatPlayerView.java

@@ -58,7 +58,6 @@ public class FloatPlayerView extends FrameLayout {
             controller.setTopVisibility(false);
             controller.setLoadingType(ConstantKeys.Loading.LOADING_QQ);
             controller.imageView().setBackgroundColor(Color.BLACK);
-            controller.setCenterPlayer(true,R.drawable.icon_play_center);
             controller.setOnCompletedListener(new OnCompletedListener() {
                 @Override
                 public void onCompleted() {

二進制
YCVideoPlayerLib/src/main/res/drawable-xhdpi/icon_pause_center.png


二進制
YCVideoPlayerLib/src/main/res/drawable-xhdpi/icon_play_center.png


+ 1 - 1
YCVideoPlayerLib/src/main/res/layout/custom_video_player_change_position.xml

@@ -9,7 +9,7 @@
     android:gravity="center"
     android:orientation="vertical"
     android:padding="8dp"
-    android:visibility="visible">
+    android:visibility="gone">
     <TextView
         android:id="@+id/change_position_current"
         android:layout_width="wrap_content"

+ 0 - 1
app/src/main/java/org/yczbj/ycvideoplayer/TestClarityActivity.java

@@ -64,7 +64,6 @@ public class TestClarityActivity extends BaseActivity implements View.OnClickLis
                 .placeholder(R.drawable.image_default)
                 .into(controller.imageView());
         controller.setTopPadding(24);
-        controller.setCenterPlayer(true,R.drawable.ic_player_center_start);
         videoPlayer.setController(controller);
     }
 

+ 0 - 1
app/src/main/java/org/yczbj/ycvideoplayer/TestFullActivity.java

@@ -74,7 +74,6 @@ public class TestFullActivity extends BaseActivity implements View.OnClickListen
                 .placeholder(R.drawable.image_default)
                 .into(controller.imageView());
         //设置中间播放按钮是否显示
-        controller.setCenterPlayer(true, R.drawable.ic_player_center_start);
         controller.setTopPadding(24.0f);
         controller.setTopVisibility(true);
         controller.setOnVideoControlListener(new OnVideoControlListener() {

+ 0 - 2
app/src/main/java/org/yczbj/ycvideoplayer/TestNormalActivity.java

@@ -170,8 +170,6 @@ public class TestNormalActivity extends BaseActivity  {
         controller.setLoadingType(ConstantKeys.Loading.LOADING_RING);
         //设置不操作后,多久自动隐藏头部和底部布局
         controller.setHideTime(8000);
-        //设置中间播放按钮是否显示,并且支持设置自定义图标
-        controller.setCenterPlayer(true,R.drawable.image_default);
         //获取ImageView的对象
         ImageView imageView = controller.imageView();
         //重新设置

+ 0 - 7
read/wiki1.md

@@ -10,7 +10,6 @@
 - 08.在fragment中播放
 - 09.1 显示正常视频top[分享,下载,更多按钮控件]
 - 09.2 显示横屏视频top[tv投影,切换音频控件]
-- 09.3 暂停视频时设置视频播放器中间的播放键是否显示
 - 10.全局悬浮播放视频
 - 11.常见api说明
 
@@ -331,12 +330,6 @@
     }
     ```
 
-### 09.3 暂停视频时设置视频播放器中间的播放键是否显示
-- 应有些开发者要求添加动态设置方法,第一个参数是是否显示,第二个是显示后自定义图标
-    ```
-    controller.setCenterPlayer(true,R.drawable.ic_player_center_start);
-    ```
-
 
 
 ### 11.常见api说明