我需要在我的应用上嵌入YouTube视频,可能会在应用中显示视频而不使用youtube应用。我能够使用webview和iframe嵌入youtube视频中的内容,并且它可以在我的两个设备上正常工作:一个有Android 4.1.1,另一个有4.2。 当我尝试使用Android 2.3.4的手机时,它无法正常工作:它显示缩略图但是当我点击它时它只是一个黑色空间。 也许Android版本< 3.0不支持HTML5标签吗? 对不起,我对这件事比较新。提前致谢。 这是我的代码:
wbv = (WebView) this.findViewById(R.id.webView1);
wbv.setFocusable(true);
wbv.setFocusableInTouchMode(true);
wbv.getSettings().setJavaScriptEnabled(true);
wbv.getSettings().setPluginState(PluginState.ON);
wbv.getSettings().setRenderPriority(RenderPriority.HIGH);
wbv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
wbv.getSettings().setDomStorageEnabled(true);
wbv.getSettings().setDatabaseEnabled(true);
wbv.getSettings().setAppCacheEnabled(true);
wbv.setWebViewClient(new WebViewClient());
wbv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
String html ="<html><body><iframe class=\"youtube-player\" type=\"text/html\" width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/ID\" frameborder=\"0\" allowfullscreen></iframe></body></html>";
String mime = "text/html";
String encoding = "utf-8";
wbv.loadData(html, mime, encoding);
答案 0 :(得分:0)
就我而言,它的工作方式如下:
final WebSettings settings = webView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
settings.setJavaScriptEnabled(true);
settings.setLoadsImagesAutomatically(true);
settings.setPluginsEnabled(true);
//settings.setPluginState(PluginState.ON);
webView.loadUrl("http://www.youtube.com/embed/"+videoClip.youtubeId);
使用aos 2.3.4设备。如果使用你的方式我也会工作,我的意思是IFrame:
final String sUrl = "http://youtube.com/embed/"+videoClip.youtubeId;
final String html ="<html><body><iframe class=\"youtube-player\" type=\"text/html\" width=\"560\" height=\"315\" src=\""+sUrl+"\" frameborder=\"0\" allowfullscreen></iframe></body></html>";
webView.loadData(html, "text/html", "utf-8");
然而我确认这两种方法都不适用于我的froyo(2.2.2)aos设备。它将一些蓝色芯片甩了一秒钟就可以了。它保持黑屏或框架。