看了很多文章和所谓的解决android WebView播放优酷,土豆等视频的办法,都是什么 setPluginsEnabled,在android 4.x之后都不好使,压根就没这函数,因为android 4.x 都去除了flash的支持。就这东西弄的我折腾了半天时间,现在的网站都是采集复制,浪费时间。
只有自己操刀了,
下面给出我的解决办法,
1. 修改AndroidManifest.xml
在Application节点上增加
android:hardwareAccelerated="true"
当然你也可以在WebView所在的Activity节点上增加此属性
2. 在WebView的布局XML上增加 android:layerType="hardware"
<WebView
android:id="@+id/newsContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layerType="hardware" # 这里一定要选择hardware,使用硬件。
>
3. 在Java代码中设置相应属性
WebSettings ws=newsContent.getSettings();
ws.setJavaScriptEnabled(true);
ws.setAllowFileAccess(true);
ws.setDatabaseEnabled(true);
ws.setDomStorageEnabled(true);
ws.setSaveFormData(false);
ws.setAppCacheEnabled(true);
ws.setCacheMode(WebSettings.LOAD_DEFAULT);
ws.setLoadWithOverviewMode(false);//<==== 一定要设置为false,不然有声音没图像
ws.setUseWideViewPort(true);
4.接下来解决播放的视频无法停止的问题
@Override
protected void onResume() {
super.onResume();
//恢复播放
webView.resumeTimers();
}
@Override
protected void onPause() {
super.onPause();
//暂停播放
webView.pauseTimers();
}
@Override
protected void onDestroy() {
super.onDestroy();
//一定要销毁,否则无法停止播放
webView.destroy();
}
OK,就这样,android 4.x 以上播放就没什么问题了
。。。。等等
还忘了,如果WebView打开的网页 包含有分享的 链接,需要分享的链接是 通用的链接即,<iframe src="http://play.youku.com/xjlkdfjaklfjdsa" /> ,若直接使用 embed 的 不会播放,还是那个原因,android不支持flash插件播放,