From efafbbf142c81c233c71de636a2d3ce9dc2124f0 Mon Sep 17 00:00:00 2001
From: Linjiajia <319408893@qq.com>
Date: 星期二, 12 九月 2023 19:20:05 +0800
Subject: [PATCH] 修复bug

---
 app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java |   83 +++++++++++++++++++++++++++--------------
 1 files changed, 54 insertions(+), 29 deletions(-)

diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
index ee284fe..3c008a5 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
@@ -11,6 +11,7 @@
 import com.android.app_base.base.view.BaseFragment;
 import com.android.app_base.utils.GlideUtil;
 import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.bean.BannerBean;
 import com.application.zhangshi_app_android.databinding.FragmentVideoBinding;
 import com.shuyu.gsyvideoplayer.GSYVideoManager;
 import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
@@ -29,16 +30,18 @@
  */
 public class VideoFragment extends BaseFragment<FragmentVideoBinding, VideoFragmentViewModel> {
     OrientationUtils orientationUtils;
-    private List<String> videoList;
     private boolean isPlay;
     private boolean isPause;
-
-    private VideoFragment() {
+    private boolean isNeedStart = true;//鏄惁闇�瑕佸紑濮嬫挱鏀�
+    private String playUrl;
+    private onPlayListener onPlayListener;
+    public VideoFragment() {
     }
 
-    public static VideoFragment newInstance() {
+    public static VideoFragment newInstance(String playUrl) {
         VideoFragment fragment = new VideoFragment();
         Bundle args = new Bundle();
+        args.putSerializable("playUrl", playUrl);
         fragment.setArguments(args);
         return fragment;
     }
@@ -58,28 +61,25 @@
     @Override
     protected void initParam() {
         if (getArguments() != null) {
-            videoList = (List<String>) getArguments().getSerializable("videoList");
+            playUrl = (String) getArguments().getSerializable("playUrl");
         }
     }
 
     @Override
     protected void initView() {
-        if (videoList != null && videoList.size() > 0){
-            binding.videoPlayer.setVisibility(View.VISIBLE);
-            binding.layoutDataNull.setVisibility(View.GONE);
-            //澧炲姞灏侀潰
-            ImageView imageView = new ImageView(getSelfActivity());
-            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
-            GlideUtil.loadVideoCover(videoList.get(0), imageView,-1,1);
-            //澧炲姞title
-            binding.videoPlayer.getTitleTextView().setVisibility(View.GONE);
-            binding.videoPlayer.getBackButton().setVisibility(View.GONE);
-
+        if (playUrl != null){
             //澶栭儴杈呭姪鐨勬棆杞紝甯姪鍏ㄥ睆
             //orientationUtils = new OrientationUtils(this, binding.videoPlayer);
             //鍒濆鍖栦笉鎵撳紑澶栭儴鐨勬棆杞�
             // orientationUtils.setEnable(false);
 
+            //澧炲姞灏侀潰
+            ImageView imageView = new ImageView(getSelfActivity());
+            imageView.setScaleType(ImageView.ScaleType.CENTER);
+            GlideUtil.loadVideoCover(playUrl, imageView,-1,1);
+            //澧炲姞title
+            binding.videoPlayer.getTitleTextView().setVisibility(View.GONE);
+            binding.videoPlayer.getBackButton().setVisibility(View.GONE);
             GSYVideoOptionBuilder gsyVideoOption = new GSYVideoOptionBuilder();
             gsyVideoOption.setThumbImageView(imageView)
                     .setIsTouchWiget(true)
@@ -87,11 +87,11 @@
                     .setLockLand(false)
                     .setAutoFullWithSize(false)
                     .setShowFullAnimation(false)
-                    .setUrl(videoList.get(0))
+                    .setUrl(playUrl)
                     .setNeedLockFull(true)
-                    .setCacheWithPlay(false)
+                    .setCacheWithPlay(true)
                     .setVideoTitle("")
-                    .setLooping(true)
+                    .setLooping(false)
                     ///涓嶉渶瑕佹棆杞�
                     .setNeedOrientationUtils(false)
                     .setVideoAllCallBack(new GSYSampleCallBack() {
@@ -111,6 +111,21 @@
 //                        if (orientationUtils != null) {
 //                            orientationUtils.backToProtVideo();
 //                        }
+                        }
+
+                        @Override
+                        public void onAutoComplete(String url, Object... objects) {
+                            super.onAutoComplete(url, objects);
+                            if (onPlayListener != null){
+                                onPlayListener.onComplete();
+                            }
+                            isNeedStart = true;
+                        }
+
+                        @Override
+                        public void onComplete(String url, Object... objects) {
+                            super.onComplete(url, objects);
+//                            isNeedStart = true;
                         }
                     })
                     .setLockClickListener(new LockClickListener() {
@@ -134,9 +149,6 @@
                     binding.videoPlayer.startWindowFullscreen(getSelfActivity(), true, true);
                 }
             });
-        }else {
-            binding.videoPlayer.setVisibility(View.GONE);
-            binding.layoutDataNull.setVisibility(View.VISIBLE);
         }
     }
 
@@ -145,12 +157,7 @@
 
     }
 
-    public void setVideoList(List<String> videoList) {
-        this.videoList = videoList;
-        Bundle args = new Bundle();
-        args.putSerializable("videoList", (Serializable) videoList);
-        setArguments(args);
-    }
+
 
     @Override
     protected void initLiveDataObserve() {
@@ -176,11 +183,18 @@
         binding.videoPlayer.getCurrentPlayer().onVideoPause();
         super.onPause();
         isPause = true;
+        System.out.println("onPause");
     }
+
 
     @Override
     public void onResume() {
-        binding.videoPlayer.getCurrentPlayer().onVideoResume(false);
+        if (isNeedStart){
+            binding.videoPlayer.getCurrentPlayer().startPlayLogic();
+            isNeedStart = false;
+        }else {
+            binding.videoPlayer.getCurrentPlayer().onVideoResume(false);
+        }
         super.onResume();
         isPause = false;
     }
@@ -207,4 +221,15 @@
 //            binding.videoPlayer.onConfigurationChanged(this, newConfig, orientationUtils, true, true);
 //        }
     }
+
+    public void setOnPlayListener(onPlayListener listener){
+        this.onPlayListener = listener;
+    }
+    public void startPlay(){
+        isNeedStart = true;
+    }
+
+    public interface onPlayListener{
+        void onComplete();
+    }
 }

--
Gitblit v1.9.1