【问题标题】:WPF WebBrowser Control will not load video in a locally hosted HTML pageWPF WebBrowser 控件不会在本地托管的 HTML 页面中加载视频
【发布时间】:2014-09-19 18:16:15
【问题描述】:

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

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

尝试将这个question 的答案中的建议应用到 Internet Explorer 11,我尝试使用这个link 中的信息让我的可执行文件中的 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() 方法的代码(此表单的构造函数接收来自另一个类的 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 上托管它。提前感谢您提供的任何帮助。

【问题讨论】:

    标签: c# html wpf


    【解决方案1】:

    终于想通了。尽管我说我尝试了this question 的答案,但我实际上错误地使用了 FEATURE_BROWSER_EMULATION 键。我试图将 FEATURE_BROWSER_EMULATION 添加到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl,而实际上它需要在 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer 进行修改\Main\FeatureControl\FEATURE_BROWSER_EMULATION。一旦我为我的应用程序创建了一个值为 0x2AF8 的新 DWORD 条目(共享其名称),WebBrowser 控件立即开始正常工作。我敢肯定这是一个新手错误,但希望这对将来的其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 2020-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多