Silverlight MediaElement未在更改事件中报告正确的DownloadProgress值

时间:2012-06-12 14:15:14

标签: asp.net wcf silverlight

我在ASP.NET应用程序的Silverlight 4岛中使用MediaElement控件。 MediaElement的源是使用带有transferMode="streamed"的webHttpBinding的WCF数据服务中的方法。该方法返回Stream。成功检索媒体并在客户端上播放。我遇到的问题是DownloadProgressChanged事件,我在下载过程中尝试更新进度条。根据{{​​3}},此事件应该触发:

  

每当下载的总内容量增加0.05或更多(因数为1.0,表示完成)或达到1.0时。

这不是我所看到的行为。我正在使用以下代码输出DownloadProgress

的值
private void previewMediaElement_DownloadProgressChanged(object sender, RoutedEventArgs e)
{
    Debug.WriteLine("progress = " + previewMediaElement.DownloadProgress);
    // Update value of a progress bar
}

以下是示例视频的结果:

  • progress = 7.34134975033385E-15
  • progress = 1.44467771079348E-14
  • progress = 2.15522044655359E-14
  • progress = 2.86576318231369E-14
  • progress = 4.14781056723434E-14
  • progress = 1

无论视频的大小如何,DownloadProgress值都会保持极小,直到它跳到1.随着视频大小的增加,这些极小值的数量也会增加。此事件是否应该正常用于流式响应?

0 个答案:

没有答案