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