如何将视频的长度赋给进度条的最大值

本文关键字:最大值 视频 | 更新日期: 2023-09-27 18:11:29

我想将视频文件自然持续时间转换为秒,因为我想设置进度条的最大值。但是我有这样的错误指定的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)值。这个错误的原因是什么?是否有任何替代的解决方案,给视频的长度进度条的最大值??

如何将视频的长度赋给进度条的最大值

首先,NaturalDuration的类型是Duration,所以类型转换将不同于Positionhttps://msdn.microsoft.com/en-us/library/system.windows.controls.mediaelement.naturalduration%28v=vs.110%29.aspx?f=255& MSPPError = -2147217396

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