如何显示正在Silverlight中的MediaElement控件中播放的视频文件的时间?
答案 0 :(得分:2)
Position
上有MediaElement
个属性。此视频和源代码可以帮助您http://www.silverlight.net/learn/quickstarts/audioandvideo/
答案 1 :(得分:1)
最后我用这种方式解决了我的问题: 我使用Textblock控件并将文本属性绑定到MediaElement控件的Position属性,然后我使用IvalueConverter在TextBlock中显示适当的时间:
<TextBlock MinWidth="40" Text="{Binding ElementName=myMediaElement, Path=Position, Converter={StaticResource TimeConverterFormatter}}"/>
TimeConverterFormatter是一个将TimeSpan值转换为短时格式的类。因为MediaElement中的position属性显示的Timespan值类似于“0:00:00:00.0000000”,我想要的经过时间值如下:“00:00”
public class TimeConverterFormatter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value.ToString().Length == 16)
return value.ToString().Substring(3, 2) + ":" + value.ToString().Substring(6, 2);
return value.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
答案 2 :(得分:1)
我意识到这是一个古老的问题,但在WPF中你可以使用普通的StringFormat
做你想做的事情:
<TextBlock Text="{Binding Position, ElementName=myMediaElement,
StringFormat={}{0:hh}:{0:mm}, FallbackValue=00:00, Mode=OneWay}" />
我无法确定你是想要小时,分钟还是分钟和秒钟,所以这是后者:
<TextBlock Text="{Binding Position, ElementName=myMediaElement,
StringFormat={}{0:mm}:{0:ss}, FallbackValue=00:00, Mode=OneWay}" />
我无法保证它在Silverlight中可以正常工作。
答案 3 :(得分:0)
不确定Silverlight,但这应该可以显示mm:ss。
lblLength.Content = String.Format("{0:mm}:{0:ss}", mediaElement.Position);