在 WPF 应用程序中嵌入 Youtube 视频

问题描述 投票:0回答:4

我正在尝试直接从我的简单 WPF 应用程序播放 Youtube 视频。

我研究了几种方法来做到这一点:

  1. 使用WebBrowser控件 在这种情况下,您似乎只需将 Youtube 视频 URL 应用于

    WebBrowser
    源字段,然后对 URL 本身进行一些更改,例如:

    原始网址 = https://www.youtube.com/watch?v=xxxxxxx
    已更改网址 = https://www.youtube.com/v/xxxxxxx

  2. 另一种方法只是建议使用 ShockWave Flash 对象,基本上应该有相同的结果(下面的视频教程)

https://www.youtube.com/watch?v=714w3HQDTcA

我已经尝试了这两种情况,似乎解决方案已经过时,因为我收到以下错误: enter image description here

所以问题是:

有没有什么方法可以在 WPF 应用程序中简单地播放 YouTube 视频,无论是否有所描述的灵魂。或者也许我做错了什么。 谢谢。

c# wpf youtube
4个回答
2
投票

问题的原因

当您使用本机

WebBrowser
控件时,请记住它由 Internet Explorer 提供支持(不确定 Windows 10 是否使用 Edge 来处理该控件),这两种过时的浏览器可能不支持新的 YouTube 播放器。 YouTube 切换了视频播放器以支持新的 HTML5 播放器,并且不再支持 Flash,因此 ShockWave Flash 对象无法工作。

一个可能的解决方案

您可以尝试使用更现代的嵌入式浏览器。在 C# 中,您最好的选择可能是 CEF 移植到 C#,CefSharp。 CEF 代表 Chromium 嵌入式框架,因为 Chromium 是 Google Chrome 的基础,所以只需保持库更新,您将始终支持 Web 浏览器中的最新功能。


2
投票
        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]);

这对我有用。尝试在您的播放按钮事件中使用此方法。


1
投票

我通常这样做:

https://www.youtube.com/embed/XXXXXX

XXXXX 是您的视频代码

另请检查这个答案 如何将 YouTube 视频嵌入 WPF MediaElement 并保存视频?


0
投票

使用 Nuget:Microsoft.Web.WebView2

<wpf:WebView2 Source="https://www.youtube.com/embed/<Video ID>"/>
© www.soinside.com 2019 - 2024. All rights reserved.