在Android WebView中播放Youtube HTML5embedded式video

我在运行embeddedWebView中HTML5 Youtube时遇到问题。 我想在我的应用程序上播放Youtubevideo。 我决定使用WebView而不是VideoView,因为我想让我的系统更加灵活地从networking上播放video。

虽然有很多方法可以在android上播放youtube,但是我会使用youtube的embedded式版本。 “ http://www.youtube.com/embed/___________________ ”。 因为这是我的Android不支持Flash的解决scheme之一。

问题:

WebView加载正常,包括embedded的Youtube。 但是我开始在YouTube上看到一个黑屏。

当我点击它。 它仅加载第一个图像,但不加载。 我试图在android浏览器上播放,它工作顺利,但不是在webView。

任何想法为什么?

以下只是我的代码片段:

WebView wv = new WebView(getApplicationContext()); wv.getSettings().setPluginState(PluginState.ON); wv.getSettings().setJavaScriptEnabled(true); wv.loadUrl("http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html"); setContentView(wv); 

以下是我发现非常有用的一些资源:

  • 我们如何使用webview在Android应用程序中播放YouTubeembedded代码?

  • 在WebView中播放YouTubevideo

  • 如何在Android上的WebView中embeddedYouTube剪辑

  • http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html

  • http://www.broken-links.com/2009/10/06/building-html5-video-controls-with-javascript/

预先感谢您的任何支持和帮助:)


更新(2011年6月13日):

我成功地在WebView中加载了http://m.youtube.com ,但无法播放任何video。 但是当我试图加载我的Android浏览器的URL,它可以发挥。

从这里,我注意到我的WebView中的YouTube网站没有login。那么我们如何让WebView使用与我的手机中的Youtube帐户相同的凭据呢? 它实际上会起作用吗?

Solutions Collecting From Web of "在Android WebView中播放Youtube HTML5embedded式video"

第1步 :只需将其添加到清单文件

android:hardwareAccelerated="true"

第2步 :检查你是否为你的webview设置图层。

(ie) //myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); ( //myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

将硬件加速设置为true,并评论这些行为我工作。

要了解更多关于硬件加速和图层,请看http://developer.android.com/guide/topics/graphics/hardware-accel.html

编辑

所以从评论对话我们已经扣除:

在这个网站上:www.youtube.com/html5它说,你必须login,然后selectHTML5video播放

这就是为什么你的video不会加载,它redirect到Flash版本,你的webview没有闪光灯。

原版的

你是否覆盖url加载,所以你的webview被使用?

  wv.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } }); 

你是说video不会播放,但网站加载?

你可以尝试对YouTube说谎,并告诉他们你的浏览器不同(也许假装是Android浏览器)Firefox是:

  wv.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36"); 

如何在Android WebView中启用HTML5没有很好的logging。 你可能想试试我的HTML5WebView和我的旧幻灯片