2010-08-02 81 views
2

我已经写了一个自定义mediastreamsource,可以播放来自不断增长的源文件(mpeg传输流)的媒体。 一旦达到其媒体流的末尾,它将从媒体文件中读取新的持续时间并继续提供样本。 MediaElement连续播放。自定义MediaStreamSource和MediaElement.Naturalduration属性

不幸的是,我没有找到更新MediaElement.NaturalDuration属性的方法。因此,我无法进入“重新加载”区域,因为我不知道它,并将我的位置更改为NaturalDuration值。

我试图在获取新的流长度后调用ReportOpenMediaCompleted。然后Naturalduration得到更新,但我不能再玩了。

有没有其他的方式来处理它?

+0

嗨 告诉我你的程序的源代码? 我真的很想知道如何才能实现这个难题... ,因为我有同样的问题,但我没能解决它:( 我会这样appriciated如果你能帮助我。 非常感谢 – 2011-02-04 00:50:45

回答

1

有时生活可以如此简单:-)

我解决它给人的MediaElement是“天方夜谭”的持续时间值初始化我的媒体流时:

protected override void OpenMediaAsync() 
{ 
... 
mediaSourceAttributes[MediaSourceAttributesKeys.Duration] = TimeSpan.FromHours(10).Ticks.ToString(CultureInfo.InvariantCulture); 
this.ReportOpenMediaCompleted(mediaSourceAttributes, mediaStreamDescriptions); 
} 

唯一剩下要做的就是更新我的带有“真实”持续时间的滑块控件。 现在它就像一个魅力...

的Tilo