WebView播放HTML5視訊,黑屏的問題。
先來說下現象吧。
三部測試手機
1號 Note2 N7100 Android系統版本4.3
2號 三星9100 Android系統版本4.0.3
3號 HTC Desire Android系統版本 2.3.5 注意2.3.5系統沒有強制GPU渲染選項
測試1 首先工程內Manifest.xml檔案其中 users-sdk配置如下
<uses-sdk
android:minSdkVersion="3"
android:targetSdkVersion="4" />
1號 : 播放視訊黑屏,有聲音。 修復該問題: 手機設定->開發->強制開啟GPU渲染
2號: 播放視訊黑屏,有聲音。 修復該問題: 手機設定->開發->強制開啟GPU渲染
3號 : 沒有辦法播放提示 ”無法載入播放器,請刪除瀏覽器快取後重試“ ,我都沒有播放過,哪來的快取一說呢,看來提示資訊很容易誤導人。如圖請忽略左上角我養的2只花大姐
修復該問題:程式碼內強制開啟GPU渲染
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
測試2 修改工程內Manifest.xml檔案其中 users-sdk配置如下
<uses-sdk
android:minSdkVersion="3"
android:targetSdkVersion="14" />
指定目前sdkVersion為4.0及以上
1號 : 播放視訊正常. 猜測系統幫助應用開啟了 GPU渲染
2號: 播放視訊黑屏,有聲音。 修復該問題: 手機設定->開發->強制開啟GPU渲染
3號: 無法播放視訊 , 程式碼內開啟GPU渲染
綜上為了保險能夠播放視訊起見
1. Manifest.xml檔案裡的users-sdk 一定要配置正確 android:targetSdkVersion="14" 及以上
2. 程式碼內 強制開啟GPU渲染
我們要分情況處理,因為Android 4.0之後才有了強制GPU渲染,讓opengl來處理圖形影象。這也是為什麼targetSdkVersion設定14的原因吧,我猜想
關於開啟GPU渲染,分為幾個級別。
Application級
在你的manifest檔案中,把以下屬性新增到<application>標籤來對你的整個應用啟用硬加速:
<applicationandroid:hardwareAccelerated="true" ...>
Activity級
如果你的應用在全域性啟用硬加速時行為不正確,你可以對個別activities單獨啟用硬加速.欲在actvity級別啟用或禁止硬加速,你可以對<activity>元素使用android:hardwareAccelerated屬性.下面的例子在整個應用中啟用了硬加速但對一個activity禁止了硬加速:
<applicationandroid:hardwareAccelerated="true">
<activity... />
<activityandroid:hardwareAccelerated="false" />
</application>
Window級
如果你需要更高顆粒度的控制,你可以使用以下程式碼為一個window啟用硬加速:
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
我建議顆粒度控制在Windows級別,因為對於GPU渲染,不同手機,不同應用表現不一樣,甚至導致應用變卡。
相關文章
- WebView 視訊全屏播放(基於Html5 video)WebViewHTMLIDE
- 簡單WebView使用播放視訊停止WebView
- iOS開發 webview禁止視訊全屏播放iOSWebView
- 在遊戲中播放cg視訊遇到的問題遊戲
- 解決flutter中webview視訊流播放Android正常,ios下有聲音沒影像問題FlutterWebViewAndroidiOS
- 安卓微信視訊播放全屏問題處理安卓
- HTML5:網頁如何播放VR視訊?HTML網頁VR
- 使用jQuery播放/暫停 HTML5視訊jQueryHTML
- 7款很棒的 HTML5 視訊播放器HTML播放器
- html5播放mp4視訊程式碼HTML
- 微信小程式 – 解決騰訊視訊外掛—視訊只能播放廣告問題微信小程式
- Window 下 Qt5 使用QMediaplayer 進行視訊播放 流播放問題QT
- Dplayer Html5 彈幕視訊播放器的實現HTML播放器
- ubuntu16.04解決播放swf視訊檔案問題Ubuntu
- 解決視訊播放器找不到解碼器問題播放器
- 【HTML5初探之多媒體元素】視訊播放HTML5、Flash誰才是王道?HTML
- 視音訊播放音訊
- opencv視訊播放OpenCV
- Facebook平臺視訊正式轉向HTML5播放器HTML播放器
- iOS開發:音訊播放、錄音、視訊播放、拍照、視訊錄製iOS音訊
- Android開發 海康威視 多路視訊播放(同時播放視訊)Android
- html5播放m3u8視訊,web端看直播HTMLWeb
- unity中播放視訊Unity
- iOS視訊播放(二)iOS
- 視訊播放學習
- 視訊播放器播放器
- html5視訊HTML
- HTML5本地視訊播放器設計(+彈幕功能)HTML播放器
- iOS開發系列--音訊播放、錄音、視訊播放、拍照、視訊錄製(轉)iOS音訊
- 解決Ubuntu軟體包升級後無法播放flash視訊問題Ubuntu
- iOS 視訊播放的簡單使用iOS
- Android音視訊之MediaPlayer音視訊播放Android
- HTML5 音訊和視訊HTML音訊
- Appium 的 ios 中 webview 問題APPiOSWebView
- 部分 Android 手機硬壓視訊和 IOS 播放器不相容的問題AndroidiOS播放器
- 海底撈“公然播放”淫穢視訊?原來是WiFi安全出了問題!WiFi
- obs-studio 二次封裝(七)拉流播放視訊大小問題封裝
- Android 三種播放視訊的方式Android