android 使用WebView 支援播放優酷視訊,土豆視訊
阿新 • • 發佈:2019-02-12
看了很多文章和所謂的解決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外掛播放,