2016-08-20 102 views
0

播放需要身份驗證的視頻的正確方法是什麼?如何使用mediaElement或mediaPlayerElement播放受保護的視頻

視頻託管在使用基本身份驗證的服務器上,憑據必須通過標頭上的cookie傳遞。

我已經嘗試了AdaptiveMediaSource,但是我得到了一個服務器不支持該協議的錯誤。

我試過這個https://github.com/kiewic/MediaElementWithHttpClient/tree/master/MediaElementWithHttpClient但我得到一個錯誤,說明Range不被支持。

任何幫助將不勝感激。

我針對Windows 10週年紀念版

乾杯 ^ h

+0

你可以分享託管你的視頻的URI嗎? – kiewic

回答

1

我已經回答在MSDN的相同情況。 https://social.msdn.microsoft.com/Forums/windowsapps/en-US/dea09e8e-dd85-48dd-8edb-59ef150f442e/how-to-play-a-protected-video-using-mediaelement-or-mediaplayerelement?forum=wpdevelop

您可以嘗試使用WebView控件查看它是否可以滿足您的要求。官方示例:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/XamlWebView

我試過AdaptiveMediaSource,但是我得到一個錯誤,表示服務器不支持該協議。

根據官方文件,https://msdn.microsoft.com/en-us/windows/uwp/audio-video-camera/adaptive-streaming 自適應流功能目前支持通過HTTP(DASH)內容的HTTP實時流(HLS)和動態流媒體播放。有關支持的HLS協議標籤的列表,請參閱HLS標籤支持。 如果您的服務器不支持這些協議,則無法使用自適應流式傳輸功能。

我試過這個https://github.com/kiewic/MediaElementWithHttpClient/tree/master/MediaElementWithHttpClient但我得到一個錯誤,說不支持Range。

請參閱演示的Readme.md文件中的註釋。 注意:服務器必須支持HTTP範圍標題。如果您的服務器不支持HTTP範圍標題,則不能直接使用演示。

0

在本issue注意到heroboy,在範圍頭請求處於初始響應不是強制性的,所以你可以嘗試從HttpRandomAccessStream.cs刪除以下檢查:

if (!response.Headers.ContainsKey("Accept-Ranges")) 
{ 
    throw new Exception(String.Format(
     "HTTP server does not support range requests: {0}", 
     "http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.5")); 
} 

但服務器仍然需要支持範圍請求

還有一個版本的sample for MediaPlayerElement

+0

嗨,隊友,謝謝你的迴應。看起來我運氣不好,因爲服務器不支持範圍請求。有任何建議嗎? – hlovbeyond