2016-07-15 24 views
0

我有一個WPF應用程序,用於培訓目的我正在加載和流式傳輸視頻。目前它在我使用內部服務器(IIS)時起作用。然而,由於它承擔了本地資源的壓力,我們正試圖利用我們的Azure帳戶,該帳戶包含CDN服務。如何在使用Azure作爲媒體資源(CDN)時更正我的WPF應用程序中的錯誤?

我的想法是,我可以從

source = new Uri(@"http://192.168.1.2/videos/NewCoupons.wmv", UriKind.Absolute); 

轉出的URL

source = new Uri(@"https://myazurespace.blob.core.windows.net/asset-8e1-snip-04%3A25Z", UriKind.Absolute); 

我砍了Azure的鏈接斷開(-snip-),因爲它是這樣長成可讀並且與這個問題無關。如果我剪下鏈接進入我的瀏覽器,瀏覽器會提示播放視頻,所以我知道這個鏈接很好。但是,當我嘗試從我的WPF運行它時,我得到一個{「對象引用未設置爲對象的實例。」} System.NullReferenceException有關異常錯誤的權利,請參見下文。

private void PlayButton_Click(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     if (mediaElement.Source != null) 
      mediaElement.Play(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("Error: " + ex.ToString()); 
    } 
} 

所以我必須在我的代碼中使用不同的東西來使用來自外部CDN的媒體嗎?順便說一下,我剪切並粘貼了瀏覽器異常中的鏈接,以確保其中的某些內容不會變形,並確實正確地從Azure中提取視頻。

+0

似乎是WPF團隊不想修復的已知錯誤。 WPF MediaElement爲HTTPS URL引發NullReferenceException。使用HTTPS,您的本地版本也會失敗。由於該錯誤設置爲「不修復」,因此最好的辦法可能就是使用HTTP URL。鏈接到官方錯誤頁面:https://connect.microsoft.com/VisualStudio/feedback/details/934355/in-a-wpf-standalone-application-exe-when-the-source-of-a-mediaelement-is- set-to-https-uri-it-throws-a-nullreferenceexception – rmc00

+0

Azure允許更改嗎?我無法找到改變這種情況的設置。 –

+0

我知道Azure Blob存儲應該支持HTTP和HTTPS,但我不知道獲取HTTP鏈接而不是HTTPS鏈接的具體細節,對不起。 – rmc00

回答

1

似乎是WPF團隊不想解決的已知錯誤。 WPF MediaElement爲HTTPS URL引發NullReferenceException。使用HTTPS,您的本地版本也會失敗。由於該錯誤設置爲「不修復」,因此最好的辦法可能就是使用HTTP URL。鏈接到官方錯誤頁面:connect.microsoft.com/VisualStudio/feedback/details/934355/

根據註釋,您需要更新視頻流的URI以使用HTTP。

相關問題