android 使用WebView 支持播放优酷视频,土豆视频

看了很多文章和所谓的解决android WebView播放优酷,土豆等视频的办法,都是什么 setPluginsEnabled,在android 4.x之后都不好使,压根就没这函数,因为android 4.x 都去除了flash的支持。就这东西弄的我折腾了半天时间,现在的网站都是采集复制,浪费时间。

只有自己操刀了,

下面给出我的解决办法,

1. 修改AndroidManifest.xml

在Application节点上增加 

?
1
android:hardwareAccelerated="true"
当然你也可以在WebView所在的Activity节点上增加此属性

2. 在WebView的布局XML上增加  android:layerType="hardware"

?
1
2
3
4
5
6
<WebView
        android:id="@+id/newsContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layerType="hardware" # 这里一定要选择hardware,使用硬件。
        >
3. 在Java代码中设置相应属性

?
1
2
3
4
5
6
7
8
9
10
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.接下来解决播放的视频无法停止的问题

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@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插件播放,
原文地址:https://www.cnblogs.com/ruiati/p/4779969.html