2014-09-19 155 views
0

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

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

试图将此建议应用于对此Internet Explorer 11的此question的答案,我尝试使用此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> 

这里是调用web浏览器控件的Navigate()方法(构造这种形式的代码从另一个类接收网址 - 我敢肯定的问题不在这里,不过,因为我可以看到实际的导航似乎是工作和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。预先感谢您提供的任何帮助。

回答

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控件立即开始正常工作。我相信一个新手的错误,但希望这可以帮助别人在将来。

相关问题