Просмотр исходного кода

发现视频详情界面:添加暂停播放功能

zengjiebin лет назад: 7
Родитель
Сommit
8a4b4c80cb

+ 45 - 7
app/src/main/java/com/sheep/gamegroup/view/activity/ActVideoDetail.java

@@ -14,6 +14,7 @@ import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
 import com.kfzs.duanduan.utils.StatusBarUtils;
 import com.kfzs.duanduan.utils.StatusBarUtils;
+import com.sheep.gamegroup.absBase.AbsObserver;
 import com.sheep.gamegroup.absBase.BaseUMActivity;
 import com.sheep.gamegroup.absBase.BaseUMActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.DiscoveryVideo;
 import com.sheep.gamegroup.model.entity.DiscoveryVideo;
@@ -41,6 +42,7 @@ import java.util.ArrayList;
 
 
 import butterknife.BindView;
 import butterknife.BindView;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
 import io.reactivex.schedulers.Schedulers;
 import io.reactivex.schedulers.Schedulers;
 
 
 /**
 /**
@@ -59,6 +61,8 @@ public class ActVideoDetail extends BaseUMActivity {
     //播放
     //播放
     @BindView(R.id.detail_player)
     @BindView(R.id.detail_player)
     StandardGSYVideoPlayer videoPlayer;
     StandardGSYVideoPlayer videoPlayer;
+    @BindView(R.id.gsy_video_play_iv)
+    View gsy_video_play_iv;//播放按钮
     @BindView(R.id.video_loading)
     @BindView(R.id.video_loading)
     View video_loading;
     View video_loading;
 
 
@@ -137,7 +141,6 @@ public class ActVideoDetail extends BaseUMActivity {
     }
     }
 
 
     private boolean isPlay = false;
     private boolean isPlay = false;
-    private boolean isPause = false;
     private ImageView coverImageView;
     private ImageView coverImageView;
     private boolean isInit = false;
     private boolean isInit = false;
     private void initPlay() {
     private void initPlay() {
@@ -179,6 +182,39 @@ public class ActVideoDetail extends BaseUMActivity {
         ViewUtil.setImage(coverImageView, getVideoCoverUrl());
         ViewUtil.setImage(coverImageView, getVideoCoverUrl());
     }
     }
 
 
+
+    private Disposable disposable;
+    private void playOrPause() {
+//        gsy_video_play_iv
+        if(isPlaying()){
+            isPlay = false;
+            ViewUtil.setVisibility(gsy_video_play_iv, true);
+            if(disposable != null && !disposable.isDisposed()){
+                disposable.dispose();
+            }
+            ViewUtil.delay(new AbsObserver<Integer>(){
+                @Override
+                public void onSubscribe(Disposable d) {
+                    disposable = d;
+                }
+
+                @Override
+                public void onNext(Integer integer) {
+                    ViewUtil.setVisibility(gsy_video_play_iv, false);
+                }
+
+                @Override
+                public void onComplete() {
+                    disposable = null;
+                }
+            }, 2);
+            videoPlayer.onVideoPause();
+        } else {
+            isPlay = true;
+            ViewUtil.setVisibility(gsy_video_play_iv, false);
+            videoPlayer.onVideoResume();
+        }
+    }
     //点赞
     //点赞
     public void onClickVideoLike(View view) {
     public void onClickVideoLike(View view) {
         ViewUtil.setEnabled(video_like_tv, false);
         ViewUtil.setEnabled(video_like_tv, false);
@@ -351,7 +387,7 @@ public class ActVideoDetail extends BaseUMActivity {
 
 
     //是否正在播放视频
     //是否正在播放视频
     private boolean isPlaying(){
     private boolean isPlaying(){
-        return isPlay && !isPause;
+        return isPlay;
     }
     }
 
 
 
 
@@ -378,14 +414,18 @@ public class ActVideoDetail extends BaseUMActivity {
         videoPlayer.onVideoResume();
         videoPlayer.onVideoResume();
         super.onResume();
         super.onResume();
         updateVideoCommentNo();
         updateVideoCommentNo();
-        isPause = false;
+        isPlay = true;
     }
     }
 
 
     @Override
     @Override
     protected void onPause() {
     protected void onPause() {
         videoPlayer.onVideoPause();
         videoPlayer.onVideoPause();
+        //取消 播放按钮图片消失的事件
+        if(disposable != null && !disposable.isDisposed()){
+            disposable.dispose();
+        }
         super.onPause();
         super.onPause();
-        isPause = true;
+        isPlay = false;
     }
     }
 
 
     @Override
     @Override
@@ -426,9 +466,7 @@ public class ActVideoDetail extends BaseUMActivity {
             LogUtil.println("mGestureListener", "onSingleTapConfirmed");
             LogUtil.println("mGestureListener", "onSingleTapConfirmed");
             ViewUtil.toggleVisibility(video_top);
             ViewUtil.toggleVisibility(video_top);
             ViewUtil.setVisibility(video_bottom, ViewUtil.isVisible(video_top));
             ViewUtil.setVisibility(video_bottom, ViewUtil.isVisible(video_top));
-//            if(isPlaying)
-//                isPauseByUser = true;
-//            playOrPause();
+            playOrPause();
             return super.onSingleTapConfirmed(e);
             return super.onSingleTapConfirmed(e);
         }
         }
         @Override
         @Override

+ 7 - 0
app/src/main/res/layout/gsy_video_layout_sheep.xml

@@ -19,4 +19,11 @@
         android:gravity="center"
         android:gravity="center"
         android:layout_centerInParent="true"/>
         android:layout_centerInParent="true"/>
 
 
+    <ImageView
+        android:id="@+id/gsy_video_play_iv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true"
+        android:visibility="gone"
+        android:src="@drawable/ic_play_but_image"/>
 </RelativeLayout>
 </RelativeLayout>