问题描述:
- webview打开带有视频的链接,视频无法播放
- 视频播放过程中返回结束掉界面,视频声音依旧播放,不会暂停
解决方案:
- 播放视频,当中一些方法可以自己去了解,自己选择性做设置
WebSettings webSettings = mWebView.getSettings();
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 开启支持视频
webSettings.setPluginState(PluginState.ON);
webSettings.setGeolocationEnabled(true);
// 开启DOM缓存。
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setDatabasePath(getApplicationContext().getCacheDir()
.getAbsolutePath());
webSettings.setAppCacheEnabled(true);
webSettings.setAppCachePath(getApplicationContext().getCacheDir()
.getAbsolutePath());
webSettings.setAppCacheMaxSize(Integer.MAX_VALUE);
mWebView.requestFocus();
mWebView.setWebChromeClient(new WebChromeClient(){
});
// 覆盖WebView默认通过第三方或者系统浏览器打开网页的行为
mWebView.setWebViewClient(new WebViewClient() {
// WebViewClient帮主WebView处理一些页面控制和请求通知
// 还可以重写很多方法
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
// 返回true 控制网页在webview中打开
// false 则是调用系统浏览器 或者第三方浏览器
view.loadUrl(url);
return true;
}
});
- 退出界面声音不关闭的问题
/**
* 解决退出仍有声音的bug
*/
@Override
protected void onPause() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
mWebView.onPause(); // 暂停网页中正在播放的视频
}
super.onPause();
}