2010-06-15 99 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中检查时间范围并不可靠。