2

我需要在我的应用程序中嵌入一个 youtube 视频,可能在我在应用程序中而不使用 youtube 应用程序时显示视频。我可以使用 webview 和 youtube 视频中的 iframe 嵌入东西来做到这一点,它在我的 2 台设备上运行良好:一个有 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);    
4

1 回答 1

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 设备。它在几秒钟内引起了一些蓝筹,仅此而已。它保持黑屏或框架。

于 2013-03-14T13:29:58.727 回答