2014-09-19 154 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控件立即開始正常工作。我相信一個新手的錯誤,但希望這可以幫助別人在將來。

相關問題