具有源URL的WPF MediaElement是否从未使用过Mespan?

具有源URL的WPF MediaElement是否从未使用过Mespan?,wpf,url,mediaelement,Wpf,Url,Mediaelement,我尝试播放来自URL源的视频。当MediaOpened被激发时,测试在 private void OnMediaOpened(object sender, EventArgs e) { if (mediaView.NaturalDuration.HasTimeSpan) { // ... } // ... } 始终返回false,并且无法在媒体时间跨度内定位 备注:如果我使用一个文件作为源文件,则Hastinespan为true,并且可以检索Me

我尝试播放来自URL源的视频。当
MediaOpened
被激发时,测试在

private void OnMediaOpened(object sender, EventArgs e)
{
    if (mediaView.NaturalDuration.HasTimeSpan)
    {
        // ...
    }
    // ...
}
始终返回false,并且无法在媒体时间跨度内定位

备注:如果我使用一个文件作为源文件,则
Hastinespan
为true,并且可以检索
MediaElement.NaturalDuration.TimeSpan

基于URL的源总是这样吗

对于基于URL的源,是否有其他方法可以获取媒体的持续时间


我正在使用.net 4.6.1。

问题似乎在于您使用的视频格式。我测试了这段代码,效果很好

XAML:

 <MediaElement
            x:Name="mediaView"
            MediaOpened="OnMediaOpened"
            Source="http://mirrors.standaloneinstaller.com/video-sample/Panasonic_HDC_TM_700_P_50i.mp4" />
 private void OnMediaOpened(object sender, RoutedEventArgs e)
        {
            if (mediaView.NaturalDuration.HasTimeSpan)
            {
                MessageBox.Show("It has TimeSpan and its duration is : " + Convert.ToString(mediaView.NaturalDuration) );
            }
        }

同时,我不能重复我的问题中描述的问题。通过servlet从我的Tomcat流式传输的视频(参见我对HYA答案的评论)现在有了时间跨度。我想知道这是否是由于.Net framework中的“小”更新造成的。

是的,它与您使用的URL一起工作。我用于测试的URL是“”,这是我计算机上的Tomcat 9 Web服务器,提供了一个自行开发的Java servlet。在播放视频之前,我正在测试Http连接,“HttpWebResponse.ContentType”是“video/mp4”。备注:最近我还使用其MediaView开发了一个JavaFX桌面应用程序。在这种环境下,访问上面的URL会带来持续时间。嗯,我不太明白为什么我对我的问题的回答被否决了。在创建问题时,这个问题是可复制的,我增强了我的应用程序以应对这种情况。几周后,我发现这个问题不知怎么地消失了。