2010-08-02 80 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