1. 程式人生 > >android 使用WebView 支援播放優酷視訊,土豆視訊

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外掛播放,