首页 文章

WPF MediaElement自然持续时间

提问于
浏览
0

我有一个MediaElement,它根据有效的String将Source设置为新的Uri .

例如:

MediaElementName.Source = new Uri(“string”);

该字符串是一个有效的路径,在调试之后,它有时会设置“MediaElementName”的NaturalDuration,有时它不会...

我现在谷歌搜索至少2个小时没有工作结果..

有没有人在这里知道为什么有时它会设置NaturalDuration,有时它不会?我能够播放wav,但它不知道wav文件有多长(持续时间) .

感谢任何帮助或想法,谢谢!

-BTG

2 回答

  • 1

    我知道这太晚了但是无论如何我的经验是这个问题的两个变种

    a)编解码器(flac可以是此示例)无法找出持续时间 . 检查并查看Windows Media Player是否显示进度条(我自定义硬件生成的一些flac文件有此问题)我怀疑文件中没有“索引” . 另外,flac格式给出了不同的结果,这取决于它是在本地文件上运行还是在http上运行(我怀疑这是因为当它无法在流中搜索时它无法找到长度) .

    b)有些编解码器在提供一些材料之前不给出持续时间,为了解决这个问题,我有一个运行的计时器,它使用Player.NaturalDuration.HasTimeSpan,然后获取TimeSpan . 这通常会在媒体开始播放的几秒钟内得到一段时间 . 检查Player_MediaOpened中的时间 Span 并不可靠 .

  • 0

    我实际上只是后退了一步,而是使用FileInfo检索信息 .

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

相关问题