c# - 无法在 C# WebBrowser 中播放任何 YouTube 视频

标签 c# flash youtube webbrowser-control shockwave

我正在 Windows 7 64 位上使用 C#.NET(Windows 窗体)开发一个轻量级桌面应用程序,可以搜索和播放 YouTube 视频。

我花了整整一夜的时间试图让应用程序以所有可能的方式播放视频(我尝试过 WebBrowser 和 Shockwave ActiveX Control),但我无法在应用程序中播放任何视频,除非我强制WebBrowser 通过 URL https://www.youtube.com/watch?v= 导航到完整的 YouTube 视频页面{VIDEO_ID}。

我真正想要的是能够仅将播放器本身嵌入 WebBrowser,而不是整个 YT 视频页面。这是我到目前为止所尝试的:

可以,但不是我需要的:

WebBrowser.Navigate("https://www.youtube.com/watch?v=" + video.Id);

不工作:
WebBrowser.Navigate("https://www.youtube.com/embed/" + video.Id);
Browser.Navigate("about:blank");
Browser.Document.OpenNew(true);

Browser.DocumentText =
    "<html><body>" +
        "<iframe width='420' height='315' src='https://www.youtube.com/embed/" + video.Id + "&html5=1' frameborder='0' allowfullscreen></iframe>" +
    "</body></html>";
Browser.DocumentText = 
    "<object width='640' height='390'>" +
        "<param name='movie' value='https://www.youtube.com/v/" + video.Id + "?version=3&autoplay=1'></param>" +
        "<param name='allowScriptAccess' value='always'></param>" +
        "<embed src='https://www.youtube.com/v/" + video.Id + "?version=3&autoplay=1' " +
            "type='application/x-shockwave-flash' allowscriptaccess='always' width='640' height='390'></embed>" +
    "</object>";
AxShockwaveCtl.GotoMovie("https://www.youtube.com/v/" + video.Id);
AxShockwaveCtl.Play();
AxVideo.SRC = "https://www.youtube.com/v/" + video.Id;
AxVideo.swURL = "https://www.youtube.com/v/" + video.Id;
AxVideo.Play();

我相信我也尝试了 WebBrowser.Document.Write 等其他东西,但没有任何效果。我在这里看到了关于这个问题的其他问题,但他们似乎最终都以某种方式解决了他们的问题,我试图做他们所做的,但在我的情况下没有任何效果。还尝试更改所有 Internet Explorer 设置。当我在像 IE 11 或 Chrome 这样的“完整”浏览器上时,一切正常,但我的应用程序只显示一个黑色矩形,YouTube 视频应该在哪里。

最佳答案

问题来自最新的 Windows 更新。无法判断问题出在哪里,但故障出在闪光灯组件上。

因此,如果您强制在 html5 模式下播放 youtube 视频,它应该可以工作。
尝试关注
WebBrowser.Navigate("https://www.youtube.com/embed/" + video.Id + "?html5=1");

关于c# - 无法在 C# WebBrowser 中播放任何 YouTube 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34572413/

相关文章:

c# - Visual Studio MVC3 强类型 View 展示一切

c# - 从头开始使用 NHibernate : tips for a new, 大型应用程序

c# - 使用 luna 或 classic 时如何删除 WPF 窗口的边框?

c# - 组合多个 Where's 时如何格式化 linq 以用 OR 替换 AND

actionscript-3 - ActionScript 3 示例(仅限代码)

javascript - 将 Flash Google Maps API 转换为基于 Flash 的 Javascript?

flash - 为什么位图的性能优于矢量、as3?

android - 拦截YouTube搜索

android - 更改youtube api android的进度栏

ios - YouTube 嵌入视频无法启动