2016-08-20 54 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

相关问题