在 WPF 应用程序中嵌入 Youtube 视频
Embedding Youtube videos in WPF application
我正在尝试直接从我的简单 WPF 应用程序播放 Youtube 视频。
我研究了几种方法:
使用 WebBrowser 控件
在这种情况下,您似乎只需要将 Youtube 视频 URL 应用到 WebBrowser
源字段,然后对 URL 本身进行一些更改,例如:
Original URL = https://www.youtube.com/watch?v=xxxxxxx
Changed URL = 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 Embedded Framework,因为 Chromium 是 Google Chrome 的基础,只需保持库更新,您将始终支持 Web 浏览器中的最新功能。
我通常这样做:
https://www.youtube.com/embed/XXXXXX
XXXXX 是您的视频代码
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]);
这对我有用。为您的 播放按钮 事件试试这个。
我正在尝试直接从我的简单 WPF 应用程序播放 Youtube 视频。
我研究了几种方法:
使用 WebBrowser 控件 在这种情况下,您似乎只需要将 Youtube 视频 URL 应用到
WebBrowser
源字段,然后对 URL 本身进行一些更改,例如:Original URL = https://www.youtube.com/watch?v=xxxxxxx
Changed URL = 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 Embedded Framework,因为 Chromium 是 Google Chrome 的基础,只需保持库更新,您将始终支持 Web 浏览器中的最新功能。
我通常这样做:
https://www.youtube.com/embed/XXXXXX
XXXXX 是您的视频代码
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]);
这对我有用。为您的 播放按钮 事件试试这个。