播放需要身份验证的视频的正确方法是什么?
视频托管在使用基本身份验证的服务器上,凭据必须在标头上的cookie上传递。
我尝试过AdaptiveMediaSource但我收到的错误是服务器不支持该协议。
我试过这个https://github.com/kiewic/MediaElementWithHttpClient/tree/master/MediaElementWithHttpClient,但是我收到了一个不支持Range的错误。
任何帮助都会非常感激。
我定位Windows 10周年纪念版
干杯 ħ
答案 0 :(得分:1)
您可以尝试使用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 Adaptive Streaming功能目前支持播放Http Live Streaming(HLS)和Dynamic Streaming over HTTP(DASH)内容。有关支持的HLS协议标记的列表,请参阅HLS标记支持。 如果您的服务器不支持这些协议,则无法使用自适应流媒体功能。
我试过这个https://github.com/kiewic/MediaElementWithHttpClient/tree/master/MediaElementWithHttpClient,但是我收到了一个不支持Range的错误。
请参阅演示的Readme.md文件中的注释。 注意:服务器必须支持HTTP Range标头。如果您的服务器不支持HTTP范围标头,则无法直接使用该演示。
答案 1 :(得分: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"));
}
但是服务器仍然需要支持范围请求。