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