整理webView控制元件載入H5網頁中視訊播放不了的解決方案
阿新 • • 發佈:2019-01-28
做專案時碰上載入h5頁面的視訊播放不了 結合網上資源 整理到自己程式碼中問題解決,做記錄如下:
1.在webView的Activity配置裡面加上:
android:hardwareAccelerated=”true”
2.設定webview
//=============== // 設定編碼 contentWebView.getSettings().setDefaultTextEncodingName("utf-8"); //contentWebView.getSettings().setTextZoom(70); // 設定背景顏色 透明 //contentWebView.setBackgroundColor(Color.argb(0, 0, 0, 0)); // 設定可以支援縮放 contentWebView.getSettings().setSupportZoom(true); // 設定快取模式 contentWebView.getSettings().setAppCacheEnabled(true); contentWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // //新增Javascript呼叫java物件 contentWebView.getSettings().setJavaScriptEnabled(true); // 設定出現縮放工具 contentWebView.getSettings().setBuiltInZoomControls(true); contentWebView.getSettings().setDisplayZoomControls(false); // 擴大比例的縮放設定此屬性,可任意比例縮放。 contentWebView.getSettings().setLoadWithOverviewMode(true); contentWebView.getSettings().setBlockNetworkImage(false); // 啟用硬體加速 contentWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null); contentWebView.setWebChromeClient(new WebChromeClient()); // 自適應螢幕 contentWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL); contentWebView.loadUrl(url); //===============
3.控制視訊的播放暫停和銷燬
@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override protected void onPause() { super.onPause(); //暫停WebView在後臺的所有活動 contentWebView.onPause(); //暫停WebView在後臺的JS活動 contentWebView.pauseTimers(); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override protected void onResume() { super.onResume(); contentWebView.onResume(); contentWebView.resumeTimers(); } @Override protected void onDestroy() { super.onDestroy(); main_layout.removeView(contentWebView); contentWebView.destroy(); contentWebView = null; }
做了這幾步就能正常播放視訊了