带视频的WebView在ViewPager中,即使在水平滚动后也能保持播放音频

时间:2015-07-20 05:15:41

标签: android android-viewpager android-webview

我有一个ActivityViewPager包含WebViewTextVideo。当我播放视频并按回来时,音频仍在播放。然后我做了

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

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

但是,当ViewPagerurl中的WebView正在加载WebView时,我仍然会向前一个@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (webView != null) { if (isVisibleToUser) { webView.reload(); } else { webView.onPause(); } } } 播放音频。有谁知道这个问题的解决方案?

编辑:

解决方案

$ curl -L 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz' | tar xz
$ sudo cp sqljdbc_4.0/enu/sqljdbc4.jar /var/lib/sqoop/

3 个答案:

答案 0 :(得分:4)

片段的onPause()没有被调用,因为片段在视图分页器中没有被破坏/暂停(除非它超出屏幕外限制)。所以你必须检查片段是否可见。

您可以通过以下方式实现:

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

    else {  
//not visible

}
      }
    }

然后使用您的网络视图执行您想要的任何操作。

答案 1 :(得分:1)

你必须尝试

webView.destroy();

方法可能有效。

答案 2 :(得分:0)

将onPageChangeListener添加到viewpager。

/* in onViewCreated */
ViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        //here get the webview of the previous page and do on pause.
        if (webview of prev page position is active)
          webview of perv position.onPause();
        //resume the webView if it was previously paused
        if (webView was previously paused )
           webView of position.onResume();
    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
});

您必须填写算法。 希望这有帮助