减少Win 8 MediaElement中的缓冲区长度

时间:2014-09-10 21:56:42

标签: windows live-streaming buffering

我正致力于实施流媒体客户端,该客户端从用户本地网络上的服务器获取流式传输的音频和视频,并实时呈现。我一直在使用MediaElement处理接收流:

<MediaElement x:Name="mediaElement"
              AutoPlay="True"
              Source="{Binding StreamUri}" />

我们需要这个MediaElement尽可能地响应。客户端上的用户可以向流服务器发送可以改变流内容的命令,我们希望能够立即向用户显示他们的更改结果。但是,似乎存在5秒的硬编码缓冲区长度,导致用户的操作和结果之间持续5秒的延迟。

有没有办法可以减少或消除这个缓冲时间?我找到了MediaElement.BufferingTime属性,但这似乎只存在于Silverlight和Windows Phone 7中。

(由于遗留原因,我们必须使用Windows 8而不是升级到Windows 8.1。)

1 个答案:

答案 0 :(得分:0)

MediaElement的属性RealTimePlayback减少了流播放的延迟:

MediaElement media = new MediaElement();
media.RealTimePlayback = true;

<MediaElement RealTimePlayback="True" />

(支持的最低客户端:Windows 8)

https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh871376.aspx