Android WebView播放视频问题

作者: Eric__li | 来源:发表于2016-07-20 19:08 被阅读8924次
Android WebView播放视频问题(转 测试可正常使用)

1、此次的方案用到WebView,而且其中会有视频嵌套,在默认的WebView中直接播放视频会有问题,
而且不同的SDK版本情况还不一样,网上搜索了下解决方案,在此记录下.

  webView.getSettings.setPluginState(PluginState.ON);
  webView.setWebChromeClient(new WebChromeClient());

2、然后在webView的Activity配置里面加上:

  android:hardwareAccelerated="true"

3、以上可以正常播放视频了,但是webview的页面都finish了居然还能听  到视频播放的声音,
   于是又查了下发现webview的 onResume方法可以继续播放,onPause可以暂停播放, 
   但是这两个方法都是在Added in API level 11添加的,所以需要用反射来完成。

4、停止播放:在页面的onPause方法中使用:

  webView.getClass().getMethod("onPause").invoke(webView,  (Object[])null);

5、继续播放:在页面的onResume方法中使用:

  webView.getClass().getMethod("onResume").invoke(webView,(Object[])null);

  这样就可以控制视频的暂停和继续播放了。

相关文章

网友评论

  • walkthehorizon:用原生的pause,resume,destory就可以了啊,
    walkthehorizon:@Eric__li
    @Override
    protected void onPause() {
    super.onPause();
    //暂停WebView在后台的所有活动
    mWebView.onPause();
    //暂停WebView在后台的JS活动
    mWebView.pauseTimers();
    }

    @Override
    protected void onResume() {
    super.onResume();
    mWebView.onResume();
    mWebView.resumeTimers();
    }

    @Override
    protected void onDestroy() {
    super.onDestroy();
    rootView.removeView(mWebView);
    mWebView.destroy();
    mWebView = null;
    }
    上面的方式可以解决你的问题,比较原生一些,反射的话我测试没有效果啊,应该不是所有的版本都会生效吧
    walkthehorizon:@Eric__li 需要在前面提到的三个地方处理一下,明天我发上来,亲测简单有效
    Eric__li:@walkthehorizon 我退出后 后台还在播放声音
  • Euterpe:横竖屏呢?!!
    Eric__li:@Euterpe 这个应该不行哦,需要写了,我们的需求没有放大,只是之前测试事发现退出后还在播放声音,用这几行代码解决的是退出播放的问题:smile:

本文标题:Android WebView播放视频问题

本文链接:https://www.haomeiwen.com/subject/rpnvjttx.html