WPF WebBrowser控件不会在本地托管的HTML页面中加载视频

本文关键字:HTML 视频 加载 控件 WebBrowser WPF | 更新日期: 2023-09-27 18:22:37

我有一个用C#编写的WPF应用程序。此应用程序具有两个相邻的WPF WebBrowser控件。每一个都导航到不同的本地托管HTML文件。每个HTML文件都有一个视频元素,指向存储在同一目录中的.mp4视频文件。

我的问题是视频内容不会在WebBrowser控件中呈现。如果我使用完全相同的URL,并将其放入同一台电脑上的Internet Explorer 11中,视频内容运行得非常好。我知道WebBrowser控件的实际导航正在工作,因为页面呈现了一半。我可以正确地看到背景颜色显示,但仅此而已。如果我右键单击其中一个控件并查看源代码,我可以在那里看到正确的HTML。

为了将此问题的答案中的建议应用于Internet Explorer 11,我尝试使用此链接中的信息使可执行文件中的WebBrowser控件像IE11一样运行,但没有成功。

我不确定这是否相关,但我已经在Internet Explorer的"Internet选项"中选中了"允许活动内容在我的计算机上的文件中运行"。

以下是视频的HTML标记:

<div id="video_holder">
<video id="video" width="1200" height="900" autoplay>
    <source src=".'FANCY.mp4" type="video/mp4">
</video>
</div>

这是调用WebBrowser控件的Navigate()方法的代码(这个Form的构造函数从另一个类接收URL——不过我很确定问题不在这里,因为我可以看到实际的导航似乎正在工作,HTML开始呈现):

public partial class TwoPaneWindow : Window
{
    private string leftUrl;
    private string rightUrl;
    public TwoPaneWindow(string left, string right)
    {
        leftUrl = left;
        rightUrl = right;
    }
    public void StartWindow()
    {
        InitializeComponent();
        this.Show();
        LeftBrowser.Navigate(leftUrl);
        RightBrowser.Navigate(rightUrl);
    }
}

有人能说出发生了什么事吗?我在安装在Windows 8.1上的IIS上托管此。提前感谢您提供的任何帮助。

WPF WebBrowser控件不会在本地托管的HTML页面中加载视频

终于明白了这一点。尽管我说我尝试了这个问题的答案,但实际上我错误地使用了FEATURE_BROWSER_EMULATION键。我试图将FEATURE_BROWSER_EMULATION添加到HKEY_LOCAL_MACHINE''SOFTWARE''Microsoft''Internet Explorer''Main''FeatureControl中,但实际上它需要在HKEY_CURRENT_USER'' SOFTWARE''Microsoft''Iternet Explorer''Main''FeatureControl''FEATURE_BROWSER-EMULATION中进行修改。一旦我为我的应用程序创建了一个值为0x2AF8的新DWORD条目(共享其名称),WebBrowser控件立即开始正常工作。我确信这是一个新手的错误,但希望这能在未来帮助其他人。