| | |
| | | */ |
| | | 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; |
| | | } |
| | |
| | | @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); |
| | | //初始化不打开外部的旋转 |
| | |
| | | .setShowFullAnimation(false) |
| | | .setUrl(playUrl) |
| | | .setNeedLockFull(true) |
| | | .setCacheWithPlay(false) |
| | | .setCacheWithPlay(true) |
| | | .setVideoTitle("") |
| | | .setLooping(false) |
| | | ///不需要旋转 |
| | |
| | | // 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() { |
| | |
| | | binding.videoPlayer.startWindowFullscreen(getSelfActivity(), true, true); |
| | | } |
| | | }); |
| | | }else { |
| | | binding.videoPlayer.setVisibility(View.GONE); |
| | | binding.layoutDataNull.setVisibility(View.VISIBLE); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | 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() { |
| | |
| | | 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; |
| | | } |
| | |
| | | // 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(); |
| | | } |
| | | } |