1. 程式人生 > >整理webView控制元件載入H5網頁中視訊播放不了的解決方案

整理webView控制元件載入H5網頁中視訊播放不了的解決方案

做專案時碰上載入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;
        }

做了這幾步就能正常播放視訊了