我创建了一个带有WebBrowser控件的Windows应用程序并试图播放YouTube视频..我已经安装了Adobe 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
答案 0 :(得分:2)
我看到的一个问题是你没有引用嵌入中的参数。您的嵌入将生成为:
<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&hl=en&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&hl=en&fs=1" />
<embed type="application/x-shockwave-flash" width="425" height="344"
src="http://www.youtube.com/v/oZdnezj9Dfg&hl=en&fs=1">
</embed>
</object>
</body>
<html>
尝试复制并在应用程序中导航到它。确保您的程序正在创建嵌入。
此外,如果您已安装Flash,则可以删除外部<object>
标记。然后,Flash嵌入看起来就像我最初显示的那样。
而且,并不要求你有HTML包装器。如果我只包含没有<html>
和其他标签的嵌入,它可以正常工作。