在WebView中播放youtube视频

时间:2010-02-18 20:48:46

标签: android android-widget

在我的Android应用程序中,我有一个WebView来显示来自我们网站的HTML数据。有时页面会有youtube嵌入对象。这在应用程序中没有正确显示。有没有办法在WebView中显示/播放YouTube视频?感谢。

7 个答案:

答案 0 :(得分:8)

除了可能在具有Flash的设备上之外,您无法显示它们。

但是,如果您可以解析YouTube视频详细信息,则可以构建ACTION_VIEW Intent,以便在YouTube应用中显示这些内容...对于那些拥有该视频的Android设备YouTube申请。

您也可以尝试HTML5的<video>标记,浏览器应用中支持AFAIK,因此可以在WebView中使用。

答案 1 :(得分:7)

我发现了这篇文章:link

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

android:hardwareAccelerated="true"

瞧,即使是youtube视频开始播放

答案 2 :(得分:6)

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)会向您发送带有以下URL的shouldOverrideUrlLoading消息:

vnd.youtube:{VIDEO_ID} {PARMS}

将其解析为将其转换为http://www.youtube.com/v/ {VIDEO_ID},然后将此修订后的网址作为意图移交。

适合我...

答案 3 :(得分:4)

在这里阅读关于android-developers群组的帖子:YouTube in the emulator?

基本上,播放YouTube剪辑的最佳方式是为其创建自己的活动,这是一个很好的例子:Polish Your App: Free Embeddable Android YouTube Activity!

更新:YouTube令牌更改导致的不兼容问题已修复。该组件的最新版本应该适用于公开的YouTube视频。

答案 4 :(得分:2)

您可以尝试切换网站以嵌入HTML5 version of the YouTube player而不是Flash版本。仍然不确定这将100%工作,但它显然比目前不支持闪存的设备上的闪存版本更好。

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

答案 5 :(得分:0)

嵌入式YouTube视频在桌面浏览器和iPhone浏览器中运行良好(即使嵌入iPhone上的应用程序中),因此它似乎与Android而不是YouTube有关。

答案 6 :(得分:0)

我在android WebView中有一个用于html5视频标签的库,它适用于所有YouTube视频和大多数Flash视频,支持在其他功能中输入和退出全屏。

VideoEnabledWebView by cprcrack