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);
这样就可以控制视频的暂停和继续播放了。
网友评论
@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;
}
上面的方式可以解决你的问题,比较原生一些,反射的话我测试没有效果啊,应该不是所有的版本都会生效吧