在WebView中播放YouTubevideo

在我的Android应用程序,我有一个WebView来显示我们的网站的HTML数据。 有时候页面会有YouTubeembedded对象。 这在应用程序中没有正确显示。 有什么方法可以在WebView中显示/播放YouTubevideo吗? 谢谢。

Solutions Collecting From Web of "在WebView中播放YouTubevideo"

除了可能在具有Flash的设备上,您不能将其embedded到其中。

但是,如果您可以parsingYouTubevideo的详细信息,则可以构build一个ACTION_VIEW Intent ,将其显示在YouTube应用程序中…用于具有YouTube应用程序的Android设备。

您也可以尝试使用HTML5的<video>标记,该浏览器应用程序支持哪个AFAIK,因此可以在WebView工作。

我来到这个post: 链接

实际上,我基本上只需要添加到应用程序清单xml:

 android:hardwareAccelerated="true" 

瞧,即使YouTubevideo也开始播放了

 webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { // YouTube video link if (url.startsWith("vnd.youtube:")) { int n = url.indexOf("?"); if (n > 0) { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n))); } return (true); } return (false); } }); 

您的WebView(webView)会向您发送shouldOverrideUrlLoading消息,其URL如下所示:

vnd.youtube:{VIDEO_ID}?{PARMS}

请parsing此url ,将其转换为http://www.youtube.com/v/ {VIDEO_ID},然后将此修订后的url作为意图传送。

为我工作…

在这里阅读我在android-developers组的post: 在模拟器中的YouTube?

基本上,播放YouTube剪辑的最佳方式是为其创build自己的活动,以下是一个很好的示例: 波兰语应用程序:免费embedded式Android YouTube活动!

更新:由于YouTube令牌更改而导致的不兼容问题已得到解决。 最新版本的组件应该适用于公开的YouTubevideo。

您可以尝试切换您的网站,以embeddedHTML5版本的YouTube播放器,而不是Flash版本。 仍然不知道这将工作100%,但显然会比目前不支持闪光灯的设备上的闪存版本更好地工作。

编辑:没关系,它看起来像HTML5版本也要求浏览器支持H.264编解码器,它看起来不像任何Android设备目前支持。

embedded式YouTubevideo在桌面浏览器和iPhone浏览器(甚至embedded在iPhone上的应用程序中)都能正常工作,所以它似乎是Android而不是YouTube的问题。

在android webview中有一个用于html5video标签的库,它可以用于所有的youtubevideo和大多数flashvideo,支持进入和退出全屏其他function。

VideoEnabledWebView由cprcrack