在WPF中使用媒体元素从HTTPS网站播放媒体会抛出空引用异常。

9
我想从https网站播放视频到我的媒体元素,但是出现了以下异常:

“System.NullReferenceException”类型的异常在PresentationCore.dll中发生,但未在用户代码中处理

更多信息:对象引用未设置为对象实例。

这是我的xmal代码:
 <MediaElement x:Name="mediaElement" LoadedBehavior="Manual"  Stretch="Fill" Loaded="OnMediaElementLoaded" MediaOpened="MediaElement_OnMediaOpened" />

var uri = new Uri("https://f60b7719060a37f20253-4343910d3bf76239b8a83e4f56d17dc5.ssl.cf2.rackcdn.com/mov-2015-06-07-22-08-09-391574e61009867cfcb1a1641639b39e55c8a34c.mp4", UriKind.RelativeOrAbsolute);
mediaElement.Source = uri;
mediaElement.Play();//Getting exception here.

有什么帮助可以提供吗?我也尝试了使用其他的http请求。


你的代码在哪个点上出现了这个异常? - Dhrumil
在 mediaElement.Play(); 中我遇到了这个异常。 - user1845163
什么是“NullReferenceException”以及如何修复它?(https://dev59.com/O2445IYBdhLWcg3w3N6z) - Soner Gönül
这并不是直接回答你的问题,但它解释了如何使用MediaElement:http://pmichaels.net/2015/03/01/playing-media-in-windows-universal-apps/ - Paul Michaels
相关或重复问题:如何使WPF MediaElement在其来源是https uri时播放MediaElement不支持身份验证。在尝试其他解决方案之前,请尝试使用http访问资源,如果服务器与您同在,它可能会以未加密的方式提供文件。 - mins
2个回答

9
评论员试图通过提供完全不相关的信息来显得聪明,但实际上,MediaElement无法从HTTPS源播放,这是一个已经被认可但没有优先修复的错误
您必须提供非HTTPS源URL或先将内容保存到文件中,然后再加载它(可以使用虚拟文件系统来完成)。

-1

我刚刚发现了一种使用通用 Windows 平台 (UWP) 的方法来实现它。这个解决方案可以成功地使用 MediaElement 播放来自 https 源的视频。实现方式与您的类似,只是它从 URI 创建了一个流,并将其设置为 MediaElement 的源。感谢 https://github.com/kiewic

https://github.com/kiewic/MediaElementWithHttpClient

MediaElement mediaPlayer = new MediaElement();
HttpClient client = new HttpClient();

Uri uri = new Uri("https://f60b7719060a37f20253-4343910d3bf76239b8a83e4f56d17dc5.ssl.cf2.rackcdn.com/mov-2015-06-07-22-08-09-391574e61009867cfcb1a1641639b39e55c8a34c.mp4");
HttpRandomAccessStream stream = await HttpRandomAccessStream.CreateAsync(client, uri);

mediaPlayer.SetSource(stream, "video/mp4");

问题标题明确指定了WPF。 - Yoshi Askharoun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接