2017-12-12 16 views
0

Android 용 WebView에서 YouTube를 재생하기위한 코드가 있습니다. 새 휴대 전화 (Android 4.4, 5.1, 6, 7 OS)에서 잘 작동하지만 Android 4.0.3에서 시도했을 때 YouTube 프레임이 컨트롤로 열리고 midle에서 버튼 재생을 클릭하면 회색 배경이 모두 표시됩니다. 시간.안드로이드에서 재생되지 않는 iframe이 포함 된 유튜브 비디오 4.0.3

코드 :

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(); 
    }  
} 

이 코드는 잘 작동하고 최신 폰 (안드로이드 OS4.4-7)에 YouTube 동영상을 재생합니다.

안드로이드 4.0.3에서 제대로 작동하려면 무엇을 바꾸어야합니까?

this is the photo showing the gray background without playing youtubevideo after clicking on the button play inthe middle of the screen:

답변

0

해결!

나는 안드로이드 4.0.3에서 작동 다음 줄을 추가 한 후 aswell :

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

이 필수는 아니지만 나는이 줄 앞에 줄 추가 : webView.setWebViewClient (새 WebViewClient()

를 이 솔루션은 엡손 Moverio BT-200 스마트 안경 등의 작업을 다른 동료들 도움이 될 것으로

희망

;-)