2010-06-15 50 views
0

我有一個MediaElement,我將其Source設置爲基於有效String的新Uri。WPF MediaElement自然持續時間

例如:

MediaElementName.Source =新URI( 「串」);

的字符串是一個有效的路徑,並調試完畢後,有時會設置「MediaElementName」的NaturalDuration,有時不..

我一直沒有工作結果現在google搜索至少2小時..

有沒有人在這裏有一個想法,爲什麼有時它會設置NaturalDuration,有時它不會?我能夠播放wav,但不知道wav文件有多長時間(持續時間)。

任何幫助或想法表示讚賞,謝謝!

-BTG

回答

0

我其實只是退後了一步,而是使用檢索FileInfo的信息。

FileInfo test = new FileInfo("myFilepath"); 
double size = test.Length; 
1

我知道這是方式tooooo晚,但無論如何我的經驗是這個問題

一)編解碼器的兩種變體(FLAC可以是這樣的一個例子)無法找出時間。檢查並查看Windows媒體播放器是否顯示進度條(某些flac文件是由定製硬件生成的,有這個問題)我懷疑文件中沒有「索引」。另外flac格式給出了不同的結果,具體取決於它是在本地文件上運行還是通過http運行(我懷疑這是因爲它無法在流中搜索時找不到長度)。

b)一些編解碼器在渲染一些素材之前不會給出持續時間,要解決這個問題我有一個使用Player.NaturalDuration.HasTimeSpan的計時器,然後獲取TimeSpan。這通常會在媒體開始播放幾秒鐘內獲得一段時間。在Player_MediaOpened中檢查時間範圍並不可靠。