我正在尝试从https网站运行视频,我在设置媒体元素的来源并调用mediaelement.play
后收到此异常。
这是我的代码,
<MediaElement Name="mediaElement1" LoadedBehavior="Manual" >
mediaElement1.Source = new Uri("https://f60b7719060a37f20253-4343910d3bf76239b8a83e4f56d17dc5.ssl.cf2.rackcdn.com/mov-2015-05-25-22-01-53-a0731841b309b95209417646a2559d51077345cb.mp4");
//mediaElement1.LoadedBehavior = MediaState.Play;
mediaElement1.Play();
类型
的第一次机会异常'System.NullReferenceException'
发生在PresentationCore.dll
请帮忙吗?苦苦挣扎了一整天,但没有运气。
我使用webclient实现了相同的功能,将文件下载到temp文件夹并尝试从该位置播放。但它在我的机器上工作,在某些机器上由于缺乏许可而无法工作。
这是我的解决方法
private readonly WebClient _webClient = new WebClient();
private string fileName ;
private string tempPath ;
private void BtnPlay_Click(object sender, RoutedEventArgs e)
{
try
{
tempPath = Path.GetTempPath();
_webClient.DownloadFileCompleted += webClient_DownloadFileCompleted;
var uri = newnew Uri("https://f60b7719060a37f20253-4343910d3bf76239b8a83e4f56d17dc5.ssl.cf2.rackcdn.com/mov-2015-05-25-22-01-53-a0731841b309b95209417646a2559d51077345cb.mp4", UriKind.RelativeOrAbsolute);
fileName = tempPath + uri.Segments[1];
if (!File.Exists(fileName))
_webClient.DownloadFileAsync(uri, fileName);
else
{
mediaElement.Source = new Uri(fileName, UriKind.Absolute);
if (mediaElement.LoadedBehavior != MediaState.Play)
mediaElement.Play();
}
}
catch (Exception ex)
{
}
}
void webClient_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
mediaElement.Source = new Uri(fileName, UriKind.Absolute);
if (mediaElement.LoadedBehavior != MediaState.Play)
mediaElement.Play();
}
它不能在某些机器上工作(temp文件夹)没有写入权限 提前谢谢。