国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android使WebView支持HTML5 Video全屏播放的方法分享(圖)

2020-03-24 15:43:34
字體:
來源:轉載
供稿:網友
1)需要在AndroidManifest.xml文件中聲明需要使用HardwareAccelerate, 可以細化到Activity級別,如果不需要的View可以聲明不要用加速,但是需要在代碼中做,具體如下:

a. 如果要聲明整個應用都要加速:

 application ... android:hardwareAccelerated = true 

b. 如果要在Activity中聲明,則:

 activity ... android:hardwareAccelerated= true , 還可以更細化到Window, getWindow.setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);  WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,

c. 如果application或者activity都申明了要硬件加速,但是為了某些原因(比如省電?),一些View不需要硬件加速的話,

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

2)可以說挺奇怪的是,需要在AndroidManifest.xml文件中用上 use-sdk /use-sdk 標簽,而且如果是空的還不行,必須寫上targetSDK或者minSDK,但是我試驗過,不管寫版本是多少都沒有關系。。。理論上說,Android應該是從3.0( API Level 11)開始可以對2D渲染加速,但是我把targetSDK設置為5都可以使用的,但是這個標簽不寫還不行。

一般來說,上面的操作做了,就可以使用video標簽播放視屏了,如果要支持全屏,還需要做一點操作:

1)給webview一個WebChromeClient對象,這個WebChromeClient對象需要實現onShowCustomView和onHideCustomView方法,下面是一個實現例子:

 @Override html' target='_blank'>public void onShowCustomView(View view, CustomViewCallback callback) { if (myCallback != null) myCallback.onCustomViewHidden(); myCallback = null ; return; long id = Thread.currentThread().getId(); WrtLog. v( WidgetChromeClient , rong debug in showCustomView Ex: + id); ViewGroup parent = (ViewGroup) mWebView.getParent(); String s = parent.getClass().getName(); WrtLog. v( WidgetChromeClient , rong debug Ex: + s); parent.removeView( mWebView); parent.addView(view); myView = view; myCallback = callback; chromeClient = this ; private View myView = null; private CustomViewCallback myCallback = null;
}

好吧,這個寫法和網上很多寫法不一樣,網上大部分的例子都是onShowCustomView方法接收到的view是一個VideoView對象,而這里是一個找不到的HTML5VideoFullScreen的VideoSurfaceView子類,而且這個子類還是一個private的子類,在外面根本沒有辦法訪問到,android.jar中也沒有HTML5VideoFullScreen這個類。如果想要在application中訪問到這個類,那么需要把 android-SDK-path /platforms/ android-version /data/layoutlib.jar這個包加到buildpath中,而且從android-14,也就是android4.0以后才這樣,也就是說,網上說的那個方法在android3.0時代是可以用的,android4.0以后就不行了,我用的是android4.0.3。

其實不管是什么版本,這個段代碼的大概意思就是,在onShowCustomView方法中,將獲取到的view放到當前Activity的最上方,在onHideCustomView中,將之前的view隱藏或者刪除,將原來被覆蓋的webview放回來,并結束播放,否在會報MediaPlayer IllegalStatusException, 而且還是Native method,根本沒法調試了。

可以下載下來,用eclipse導入工程,把樣例視頻放到sdcard根部目錄下,從系統角度看就是/mnt/sdcard即可。

效果如圖:

全屏前:


全屏后:

以上就是Android使WebView支持HTML5 Video全屏播放的方法分享(圖)的詳細內容,其它編程語言

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 介休市| 马龙县| 晴隆县| 贡觉县| 府谷县| 和硕县| 汉中市| 沙洋县| 东乌珠穆沁旗| 吉安县| 鲁甸县| 科技| 隆德县| 刚察县| 淅川县| 松江区| 温宿县| 峨眉山市| 广饶县| 凌海市| 渝中区| 呼和浩特市| 朔州市| 开封县| 达州市| 时尚| 肃北| 城市| 龙陵县| 华蓥市| 衡山县| 峡江县| 长海县| 双柏县| 广昌县| 任丘市| 漳州市| 邵东县| 贵港市| 饶平县| 巴中市|