在WebView中播放youtube视频

Ion*_*rus 14 android android-widget

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

Com*_*are 8

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

但是,如果您可以解析YouTube视频详细信息,则可以构建一个能够ACTION_VIEW Intent在YouTube应用程序中显示这些内容...适用于拥有YouTube应用程序的Android设备.

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

  • 我尝试使用HTML5但没有成功.浏览器会加载视频的"预览",但根本没有播放功能. (3认同)

Ron*_*nie 7

我来到这篇文章:链接

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

android:hardwareAccelerated="true"
Run Code Online (Sandbox Code Playgroud)

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


CSm*_*ith 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);
 }
});
Run Code Online (Sandbox Code Playgroud)

WebView(webView)将向您发送带有以下URL的shouldOverrideUrlLoading消息:

vnd.youtube:{VIDEO_ID}?{PARMS}

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

对我有用......