Linjiajia
2023-09-12 efafbbf142c81c233c71de636a2d3ce9dc2124f0
app/src/main/java/com/application/zhangshi_app_android/ui/function/VideoFragment.java
@@ -30,16 +30,18 @@
 */
public class VideoFragment extends BaseFragment<FragmentVideoBinding, VideoFragmentViewModel> {
    OrientationUtils orientationUtils;
    private List<BannerBean> videoList;
    private boolean isPlay;
    private boolean isPause;
    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;
    }
@@ -59,24 +61,13 @@
    @Override
    protected void initParam() {
        if (getArguments() != null) {
            videoList = (List<BannerBean>) getArguments().getSerializable("videoList");
            playUrl = (String) getArguments().getSerializable("playUrl");
        }
    }
    @Override
    protected void initView() {
        String playUrl = null;
        for (BannerBean bannerBean : videoList) {
            if (bannerBean.getChoose() == 1){
                playUrl = bannerBean.getUrl();
                break;
            }
        }
        if (playUrl != null){
            binding.videoPlayer.setVisibility(View.VISIBLE);
            binding.layoutDataNull.setVisibility(View.GONE);
            //外部辅助的旋转,帮助全屏
            //orientationUtils = new OrientationUtils(this, binding.videoPlayer);
            //初始化不打开外部的旋转
@@ -98,7 +89,7 @@
                    .setShowFullAnimation(false)
                    .setUrl(playUrl)
                    .setNeedLockFull(true)
                    .setCacheWithPlay(false)
                    .setCacheWithPlay(true)
                    .setVideoTitle("")
                    .setLooping(false)
                    ///不需要旋转
@@ -120,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() {
@@ -143,9 +149,6 @@
                    binding.videoPlayer.startWindowFullscreen(getSelfActivity(), true, true);
                }
            });
        }else {
            binding.videoPlayer.setVisibility(View.GONE);
            binding.layoutDataNull.setVisibility(View.VISIBLE);
        }
    }
@@ -154,19 +157,7 @@
    }
    public void setVideoList(List<BannerBean> videoList) {
        this.videoList = videoList;
        Bundle args = new Bundle();
        args.putSerializable("videoList", (Serializable) videoList);
        setArguments(args);
        if (isAdded()){
            initView();
        }
    }
    public List<BannerBean> getVideoList() {
        return videoList;
    }
    @Override
    protected void initLiveDataObserve() {
@@ -192,11 +183,18 @@
        binding.videoPlayer.getCurrentPlayer().onVideoPause();
        super.onPause();
        isPause = true;
        System.out.println("onPause");
    }
    @Override
    public void onResume() {
        if (isNeedStart){
            binding.videoPlayer.getCurrentPlayer().startPlayLogic();
            isNeedStart = false;
        }else {
        binding.videoPlayer.getCurrentPlayer().onVideoResume(false);
        }
        super.onResume();
        isPause = false;
    }
@@ -223,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();
    }
}