我正致力于实施流媒体客户端,该客户端从用户本地网络上的服务器获取流式传输的音频和视频,并实时呈现。我一直在使用MediaElement处理接收流:
<MediaElement x:Name="mediaElement"
AutoPlay="True"
Source="{Binding StreamUri}" />
我们需要这个MediaElement尽可能地响应。客户端上的用户可以向流服务器发送可以改变流内容的命令,我们希望能够立即向用户显示他们的更改结果。但是,似乎存在5秒的硬编码缓冲区长度,导致用户的操作和结果之间持续5秒的延迟。
有没有办法可以减少或消除这个缓冲时间?我找到了MediaElement.BufferingTime
属性,但这似乎只存在于Silverlight和Windows Phone 7中。
(由于遗留原因,我们必须使用Windows 8而不是升级到Windows 8.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