【问题标题】: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();
}
}
}