如何将视频的长度设置为进度条的最大值

时间:2016-10-03 15:24:06

标签: c# wpf

我想将视频文件自然持续时间转换为秒,因为我想设置进度条的最大值。但我有这样的错误指定的CAST无效

          <ProgressBar Name="pb"  Height="23" VerticalAlignment="Center"  
                       Value="{Binding ElementName=Video, Path=Position,
                       Converter={StaticResource progressbarconvert}}" 
                       Maximum="{Binding ElementName=Video,Path=NaturalDuration,
                       Converter={StaticResource progressbarconvert}}"></ProgressBar>

这是我的进度条的绑定代码。

        TimeSpan t = (TimeSpan)value;
        int seconds = t.Seconds;
        seconds += t.Minutes * 60;
        seconds += t.Hours * 360;
        return seconds;

这是我的转换器代码错误。我在 TimeSpan t =(TimeSpan)值时出错。这个错误的原因是什么?是否有任何替代解决方案将视频的长度提供给进度条的最大值???

1 个答案:

答案 0 :(得分:1)

首先,NaturalDuration的类型为Duration,因此转换将与Position不同 https://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement.naturalduration%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

其次,当你施放到持续时间时,你需要检查值HasTimeSpan,因为如果没有加载和播放视频你还没有这个值