我编写了一个自定义媒体流源,可以播放来自不断增长的源文件(mpeg传输流)的媒体。 一旦到达其媒体流的末尾,它将从媒体文件中读取新的持续时间并继续传送样本。 MediaElement不断播放。
不幸的是,我还没有找到更新MediaElement.NaturalDuration属性的方法。因此我不能进入“重新加载”区域,因为我不知道它并将我的位置变化设置为其NaturalDuration值。
我在获取新的流长度后尝试调用ReportOpenMediaCompleted。然后Naturalduration得到更新,但我不能再玩了。
有没有其他方法可以处理它?</ p>
答案 0 :(得分:1)
有时候生活会如此简单: - )
我在初始化MediaStreamSource时解决了它给MediaElement一个“幻想”的持续时间值:
protected override void OpenMediaAsync()
{
...
mediaSourceAttributes[MediaSourceAttributesKeys.Duration] = TimeSpan.FromHours(10).Ticks.ToString(CultureInfo.InvariantCulture);
this.ReportOpenMediaCompleted(mediaSourceAttributes, mediaStreamDescriptions);
}
唯一要做的就是用“实际”持续时间更新我的滑块控件。 现在它就像一个魅力......
的Tilo