android - 在 ViewPager 中带有视频的 WebView 即使在水平滚动后也会继续播放音频

标签 android android-viewpager android-webview

我有一个 Activity,它有 ViewPager,其中包含一个 WebView,它有 TextVideo。当我播放视频并按下后退时,音频仍在播放。然后我做了

@Override
public void onPause() {
    super.onPause();
    if(webView != null) {
        webView.onPause();
    }
}

@Override
public void onResume() {
    super.onResume();
    if (webView != null) {
        webView.onResume();
    }
}

但是当我在 ViewPager 中滑动到下一个时,新的 url 正在加载到 WebView 中,但音频仍在播放上一个 Web View 。有谁知道这个问题的解决方案吗?

编辑:

解决方案

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (webView != null) {
        if (isVisibleToUser) {
            webView.reload();
        } else {
            webView.onPause();
        }
    }
}

最佳答案

fragment 的 onPause() 不会被调用,因为 fragment 不会在 View 分页器中被销毁/暂停(除非它超出屏幕外限制)。因此您必须检查 fragment 是否可见。

您可以这样做:

public class MyFragment extends Fragment {
  @Override
  public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
//visible to user }

    else {  
//not visible

}
      }
    }

然后用你的 webview 执行你想要的任何操作。

关于android - 在 ViewPager 中带有视频的 WebView 即使在水平滚动后也会继续播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31509235/

相关文章:

javascript - 使用对象参数将javascript代码绑定(bind)到android代码

Android - webview 中的每个链接都会使应用程序崩溃

java - 我想在 android webview 到达底部时显示一个按钮

Android onpause 未触发

android - 我怎样才能在 NestedScrollView 中使用 RecyclerView 工作 ViewPager

android - 有人可以帮我解决 android studio 上的这个 gradle 错误吗?

android - 启用 Android 支持库调试标志的最佳方式

android - 如何锁定 ViewPager 一次只允许单页滑动

android - 关于跨平台项目中 Web 语言互操作性的问题

android - 如何检测设备何时进入 Android N 的多窗口模式