2010-11-01 119 views
3

我有一個WinForms窗體,其中使用了MediaElement。一切正常(或多或少)完美。唯一的一點是,加載訪問NaturalDuration.TimeSpan.TotalSeconds媒體文件(MP3)之後拋出一個異常MediaElement.NaturalDuration在查詢TimeSpan.TotalSeconds時拋出異常

InvalidOperatoinException:一個TimeSpan屬性不能用於自動持續時間值返回。

(由自己從德國翻譯)

我怎樣才能訪問時間跨度財產?有

我使用VisualStudio的快速.NET 4中,C#在Windows 7

任何提示中我發現所有的例子中使用無特殊設置(確定,他們似乎是WPF原生...) ?

回答

10

您需要等待MediaOpened事件觸發,NaturalDuration將在此後可用。要檢查值是否可用,可以使用NaturalDuration.HasTimeSpan屬性。

+0

謝謝!奇蹟般有效!它甚至在NaturalDuration的文檔中聲明...事後... – 2010-11-01 13:16:39

+0

mediaElement1.MediaOpened + = new RoutedEventHandler(mediaElement1_MediaOpened); void mediaElement1_MediaOpened(object sender,RoutedEventArgs e) { 持續時間d = mediaElement1.NaturalDuration; } – 2011-11-18 18:48:33

+0

@Discord我有同樣的問題。奇怪的是,我得到了Player_MediaOpened(object sender,EventArgs e)結尾的持續時間?!那我該如何解決呢? – 2015-11-18 13:58:08