MediaElement网页视频无法停止缓冲。

13

我正在使用MediaElement播放网页视频。当我离开这个页面时,我注意到在任务管理器中我的应用仍在使用10%的网络并且没有降下来,直到视频下载完成为止。

我尝试了以下方法,但都没有成功。

    //open link;
    mediaElement.Source = welcomeVideoURL;

    //when I leave the page OnNavigatedFrom()
    mediaElement.Stop();
    mediaElement.ClearValue(MediaElement.SourceProperty);
    mediaElement.Source = null;

我也尝试将源设置为虚拟链接,但仍然不行。

我认为打开链接作为流并使用mediaElement.SetSource()可能有效,但我还没有找到相关内容……也许是我搜索方法不对。

谢谢。


1
你尝试过不使用 mediaElement.AudioCategory = AudioCategory.ForegroundOnlyMedia 吗?并且,你的服务器是否支持处理HTTP Range呢?如果不支持,那么就无法将视频分部下载,只能一次性全部下载。 - kiewic
1
尝试过了,不起作用。还说它已经过时了。我相信MediaElement内部的后台下载器只是没有Dispose。但是尝试了你的HttpRandomAccessStream,完美地工作了! - Stamos
1
请查看这里。虽然上下文可能不同,但您可以通过将isEnabled更改为false来强制使流停止,然后执行您的标准.Stop()并在处理程序中置空。也可以强制进行处理。 - Gabe
你试过使用 .Close() 吗?因为 .Stop() 只会将流重置为从头开始播放。尝试关闭流。 - Gabe
@Gabe isEnabled、Close() 和 Stop() 或类似的方法不存在。 - Stamos
https://msdn.microsoft.com/library/windows/apps/windows.ui.xaml.controls.mediaelement.aspx - Stamos
1个回答

1

我在@kiewic的评论中找到了这个使用HttpClient的MediaElement,它与其他问题有关。我可以管理流和下载过程,并轻松地处理它。

 HttpRandomAccessStream videoStream = await HttpRandomAccessStream.CreateAsync(new Windows.Web.Http.HttpClient(), videoUrl);
 mediaElement.SetSource(videoStream, videoStream.ContentType);

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