我正在尝试直接从我的简单 WPF 应用程序播放 Youtube 视频。
我研究了几种方法来做到这一点:
使用WebBrowser控件 在这种情况下,您似乎只需将 Youtube 视频 URL 应用于
WebBrowser
源字段,然后对 URL 本身进行一些更改,例如:
原始网址 = https://www.youtube.com/watch?v=xxxxxxx
已更改网址 = https://www.youtube.com/v/xxxxxxx
另一种方法只是建议使用 ShockWave Flash 对象,基本上应该有相同的结果(下面的视频教程)
我已经尝试了这两种情况,似乎解决方案已经过时,因为我收到以下错误:
所以问题是:
有没有什么方法可以在 WPF 应用程序中简单地播放 YouTube 视频,无论是否有所描述的灵魂。或者也许我做错了什么。 谢谢。
当您使用本机
WebBrowser
控件时,请记住它由 Internet Explorer 提供支持(不确定 Windows 10 是否使用 Edge 来处理该控件),这两种过时的浏览器可能不支持新的 YouTube 播放器。 YouTube 切换了视频播放器以支持新的 HTML5 播放器,并且不再支持 Flash,因此 ShockWave Flash 对象无法工作。
您可以尝试使用更现代的嵌入式浏览器。在 C# 中,您最好的选择可能是 CEF 移植到 C#,CefSharp。 CEF 代表 Chromium 嵌入式框架,因为 Chromium 是 Google Chrome 的基础,所以只需保持库更新,您将始终支持 Web 浏览器中的最新功能。
string html = "<html><head>";
html += "<meta content='IE=Edge' http-equiv='X-UA-Compatible'/>";
html += "<iframe id='video' src= 'https://www.youtube.com/embed/{0}' width='640' height='360' frameborder='0' allow = \"autoplay; encrypted-media\" allowFullScreen></iframe>";
html += "</body></html>";
this.webBrowser1.DocumentText = string.Format(html, txtboxLink.Text.Split('=')[1]);
这对我有用。尝试在您的播放按钮事件中使用此方法。
我通常这样做:
https://www.youtube.com/embed/XXXXXX
XXXXX 是您的视频代码
使用 Nuget:Microsoft.Web.WebView2
<wpf:WebView2 Source="https://www.youtube.com/embed/<Video ID>"/>