0

Android の WebView で YouTube を再生するためのコードがあります。新しい携帯電話 (Android 4.4、5.1、6、7 OS) では問題なく動作しますが、Android 4.0.3 で試してみると、コントロール付きの YouTube フレームが開き、中央の再生ボタンをクリックすると、灰色の背景がすべて表示されます。時間。

コード:

private void initializeWebView() {    

    WebView webView = (WebView) findViewById(R.id.webView);

    //webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
    webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
    webView.setBackgroundColor(getResources().getColor(R.color.semi_transparent_black_20percentage));  
    webView.getSettings().setBuiltInZoomControls(true);
    //webView.getSettings().setDisplayZoomControls(false);

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    });
    WebSettings webSetting = webView.getSettings();
    webSetting.setJavaScriptEnabled(true);
    webSetting.setDisplayZoomControls(false);

    //webSetting.setLoadWithOverviewMode(true);
    //webSetting.setUseWideViewPort(true);
    int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
    webView.setLayoutParams(new RelativeLayout.LayoutParams( screenWidth / 2, LayoutParams.MATCH_PARENT));
     getWindow().setFlags(
            WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
            WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webSetting.setJavaScriptEnabled(true);
    webSetting.setBuiltInZoomControls(true);
    webSetting.setAllowContentAccess(true);
    webSetting.setEnableSmoothTransition(true);
    webSetting.setLoadsImagesAutomatically(true);
    webSetting.setLoadWithOverviewMode(true);
    webSetting.setSupportZoom(false);
    webSetting.setUseWideViewPort(true);
    webSetting.setAppCacheEnabled(true);
    webSetting.setSupportMultipleWindows(true);

    webView.setVisibility(View.VISIBLE);
}   



public void  loadPageIntoWebView(String htmlFilename){

    AssetManager mgr = getBaseContext().getAssets();
    try {
        String htmlContentInStringFormat = "";
        WebView webView = (WebView) findViewById(R.id.webView);
        String frameVideo = "<body>Video From YouTube<br><iframe width=\"420\" height=\"315\" src=\"https://www.youtube.com/embed/2a7f29Jvihc?wmode=transparent\" frameborder=\"0\" allowtransparency></iframe></body>";
        htmlContentInStringFormat = frameVideo;
        webView.loadDataWithBaseURL(null, htmlContentInStringFormat, "text/html", "utf-8", null);
    } catch (Exception e) {
        e.printStackTrace();
    }      
}

このコードは正常に動作し、新しい携帯電話 (Android OS4.4-7) で YouTube ビデオを再生しています。

Android 4.0.3 でも動作させるには何を変更すればよいですか?

これは、画面中央の再生ボタンをクリックした後、YouTube ビデオを再生せずに灰色の背景を示す写真です。

4

1 に答える 1

0

解決しました!

次の行を追加すると、Android 4.0.3 でも動作します。

    webView.setWebChromeClient(new WebChromeClient() {});

必須ではありませんが、この行の前に次の行を追加しました: webView.setWebViewClient(new WebViewClient()

このソリューションが、Epson Moverio BT-200 スマート グラスなどを使用している他の同僚に役立つことを願っています。

;-)

于 2017-12-12T16:46:20.123 に答える