2010-11-01 89 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