我MediaElement
在 ASP.NET 应用程序的 Silverlight 4 岛中使用控件。的来源MediaElement
是 WCF 数据服务中使用 webHttpBinding 和transferMode="streamed"
. 该方法返回一个Stream
. 媒体已成功检索并在客户端上播放。我遇到的问题是DownloadProgressChanged
我在下载过程中尝试更新进度条。根据MSDN 文档,此事件应触发:
每当下载的总内容量增加 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
}
这是示例视频的结果:
- 进度 = 7.34134975033385E-15
- 进度 = 1.44467771079348E-14
- 进度 = 2.15522044655359E-14
- 进度 = 2.86576318231369E-14
- 进度 = 4.14781056723434E-14
- 进度 = 1
无论视频大小如何,该DownloadProgress
值都保持极小,直到它跳到 1。随着视频大小的增加,这些极小值的数量也会增加。对于流式响应,此事件是否应该正常工作?