【问题标题】:How to play youtube videos on windows application C#如何在 Windows 应用程序 C# 上播放 youtube 视频
【发布时间】:2011-11-10 16:52:35
【问题描述】:

我创建了一个带有 WebBrowser 控件的 Windows 应用程序并尝试播放 youtube 视频。我安装了 Adob​​e Shockwave Player,并尝试在我的 Windows 应用程序上观看视频,但它没有显示任何视频。当我点击播放按钮时,屏幕看起来像这样

我播放视频的代码是

StreamWriter sw = new StreamWriter("utube.html");
        string PlayString = currentVideoUrl.Trim().Replace("watch?v=", "v/");
        string Finalplaycode = "<embed src=" + PlayString + "&hl=en&fs=1& type=application/x-shockwave-flash allowscriptaccess=always allowfullscreen=true width=425 height=344></embed>";
        sw.Write(Finalplaycode);
        sw.Close();
        string PathToNavigate = Directory.GetParent(Application.ExecutablePath) + @"\utube.html";
        webBrowser1.Navigate(PathToNavigate);

我的示例视频链接是:http://www.youtube.com/watch?v=oZdnezj9Dfg&feature=BFa&list=PLD3E900BFF6534896&lf=plpp_video

谁能帮我解决这个问题?我错过了任何插件或其他东西吗?我正在使用 .NetFramework 4.0

【问题讨论】:

  • 您运行的是 32 位应用程序还是 64 位应用程序?如果您尝试使用 Google Chrome 或 Internet Explorer 导航到它,嵌入是否有效?
  • 我使用的是 32 位应用程序。你说的导航是什么意思?您的意思是单击 Windows 应用程序中的链接并打开带有发送 URL 的新浏览器并播放视频?如果是的话,我知道我能做到。但我正在尝试在我的 Windows 应用程序上播放视频。我找到了这篇文章,但找不到 FlashObjects.. social.msdn.microsoft.com/Forums/en-US/winformsdesigner/thread/…

标签: c# winforms stream youtube webbrowser-control


【解决方案1】:

我看到的一个问题是您没有引用嵌入中的参数。您的嵌入将生成为:

<embed src=http://www.youtube.com/v/video_id...>

你需要引用这些参数:

<embed src="http://www.youtube.com/v/video_id...">

例如,这是一个在我的网站上工作的嵌入:

<embed type="application/x-shockwave-flash" width="425" height="344" 
src="http://www.youtube.com/v/UejelYnVI3U&amp;hl=en&amp;fs=1"></embed>

您可能有兴趣阅读 YouTube 官方文档。他们已经不再使用嵌入,转而使用 iframe。这让他们可以使用 HTML5 视频播放器(如果可用),或者退回到 Flash。详情请见http://www.google.com/support/youtube/bin/answer.py?answer=171780

更新:

下面的 HTML 文件以两种方式嵌入相同的视频:一种是使用 iframe,另一种是使用标准嵌入。当我使用WebBrowser 控件导航到它时,它可以找到:

<html>
<body>
<iframe class="youtube-player" type="text/html" width="640" height="385"
 src="http://www.youtube.com/embed/oZdnezj9Dfg" frameborder="0">
</iframe>

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0">
<param name="src" value="http://www.youtube.com/v/oZdnezj9Dfg&amp;hl=en&amp;fs=1" />
<embed type="application/x-shockwave-flash" width="425" height="344" 
  src="http://www.youtube.com/v/oZdnezj9Dfg&amp;hl=en&amp;fs=1">
</embed>
</object>

</body>
<html>

尝试复制它并在您的应用程序中导航到它。确保您的程序是这样创建嵌入的。

此外,如果您已经安装了 Flash,您可以删除外部的 &lt;object&gt; 标记。然后,Flash 嵌入看起来就像我最初展示的一样。

而且,您不需要在其周围使用 HTML 包装器。如果我只包含不带&lt;html&gt; 和其他标签的嵌入,它工作正常。

【讨论】:

  • 感谢您的回复。但问题出在我的 Windows 应用程序中,您的嵌入不起作用。我尝试嵌入 youtube 的原始嵌入,它使用 iFrame 和 HTML5 支持,它在我的 WebBroswer 控件上也失败了。那么如何在我的 Windows 应用程序上启用 Flash Player?
  • 或者你能建议我另一种方式吗?
  • 当我输入您的代码时,我的应用程序尝试安装 Adob​​e Flash Player.. 问题是在下载 8Mb 数据后,它说下载安装程序时发生错误 :(( 我认为我们是正确的方式,但无法安装 Flash 播放器:(
  • @Serkan:我建议您启动 Internet Explorer 并安装 Flash 播放器。会更容易看出它失败的原因。安装 Flash 后,它应该可以工作了。
  • 我已经安装了 64 位 Adob​​e Flash Player 11 插件和 Adob​​e Shockwave Flash Player 11.6 :( 我可以让你的 Gtalk 或 Skype 来讨论问题吗?
猜你喜欢
  • 2010-10-24
  • 2012-11-10
  • 2018-08-06
  • 2023-03-16
  • 2011-04-25
  • 1970-01-01
  • 2011-11-16
  • 2012-04-05
  • 2012-07-05
相关资源
最近更新 更多