【问题标题】:How can I pause the video to stop it from playing in the background?如何暂停视频以阻止其在后台播放?
【发布时间】:2018-06-30 19:25:15
【问题描述】:

我有一个包含五个选项卡(五个片段)的选项卡布局。其中之一是用于播放视频。一切正常。但是,当我从视频片段滑到另一个片段时,视频会继续在后台播放。怎样才能阻止这种情况。

这是选项卡布局

这是启动视频的代码

videoView.setMediaController(mediaController);
    videoView.setVideoURI(uri);
    videoView.requestFocus();
    videoView.start();
    return view;

【问题讨论】:

    标签: android android-fragments layout tabs video-streaming


    【解决方案1】:

    您可以检查您的片段是否可见

    @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            super.setUserVisibleHint(isVisibleToUser && getView()!=null);
            if (isVisibleToUser) {
                  //fragment visible play video
            }
            else {
                //fragment not visible pause video
            }
        }
    

    【讨论】:

    • 让我试试这个
    【解决方案2】:

    在视频视图片段中执行此操作 @Override public void onPause() { videoView.stop() super.onPause() }

    【讨论】:

      【解决方案3】:

      当片段的隐藏状态发生变化时调用该方法。

      @Override
      public void onHiddenChanged(boolean hidden) {
          super.onHiddenChanged(hidden);
      
          if (hidden) {
              // videoView.stop();
          }else {
              // videoView.start();
          }
      }
      

      【讨论】:

        【解决方案4】:
         @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            super.setUserVisibleHint(isVisibleToUser && getView() != null);
            if(videoview!=null) {
                if (isVisibleToUser) {
                    videoview.start();
                } else {
                    videoview.pause();
                }
            }
        }
        

        【讨论】:

        • 你必须检查你的videoview也不为null。
        猜你喜欢
        • 1970-01-01
        • 2015-10-27
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        • 1970-01-01
        • 1970-01-01
        • 2019-03-25
        • 1970-01-01
        相关资源
        最近更新 更多