【问题标题】:MediaElement web Video doesn't stop bufferingMediaElement 网络视频不会停止缓冲
【发布时间】:2016-05-18 11:42:12
【问题描述】:

我正在使用 MediaElement 播放网络视频。当我离开页面时,我在任务管理器中注意到我的应用仍在使用 10% 的网络,并且直到下载完视频才掉线。

我尝试执行以下操作,但没有成功。

    //open link;
    mediaElement.Source = welcomeVideoURL;

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

还尝试将源设置为虚拟链接,但仍然没有成功。

我认为将链接作为流打开并使用mediaElement.SetSource() 可以工作,但我没有找到任何相关内容...也许我搜索不正确。

谢谢。

【问题讨论】:

  • 你试过没有mediaElement.AudioCategory = AudioCategory.ForegroundOnlyMedia。而且,您的服务器是否能够处理 HTTP 范围?如果没有,则无法分段下载视频,应一次性下载。
  • 试过了,不行。还说它已弃用。我相信 MediaElement 内部的后台下载器不会处理。但是尝试了您的 HttpRandomAccessStream 并且效果很好!。
  • 看看this。上下文可能会有所不同,但您可以通过将isEnabled 更改为false 然后执行标准.Stop() 并在处理程序中清空来强制流丢弃。也可以强制处置
  • 你试过.Close()了吗?因为.Stop() 仅将其重置为从头开始播放。尝试关闭信息流。
  • @Gabe isEnabled、Close() 和 Stop() 或任何类似的都不存在。

标签: c# windows-8.1 win-universal-app mediaelement


【解决方案1】:

在@kiewic 的评论中发现了这个MediaElementWithHttpClient 在其他question 中。我可以管理流和下载过程并轻松处理它。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多