我有一个带有视频缩略图的图像和一个带有真实视频的MediaElement,如下所示:
<Image Source="{Binding thumbnailurl}"/>
<MediaElement Position="{Binding currenttime}" MediaOpened="MediaElement_Opened" Source="{Binding videourl}" AutoPlay="True" Visibility="Collapsed"/>在视频的当前时间上使用属性已更改的侦听器:
private TimeSpan _currenttime;
public TimeSpan currenttime
{
get { return _currenttime; }
set
{
if (_currenttime == value) return;
_currenttime = value;
NotifyTimeSpanChanged("timespan");
}
}
protected void NotifyTimeSpanChanged(string name)
{
System.ComponentModel.PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new System.ComponentModel.PropertyChangedEventArgs(name));
}
}有了这个晚间处理程序:
private void MyClass_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName.Equals("timespan"))
{
MediaElement me = (MediaElement)sender;
if (me.Position.Milliseconds > 42)
{
me.Visibility = Visibility.Visible; // show video now
}
}
}我想做一个无蒸汽过渡,从缩略图到视频时,视频是42ms (第一帧)。问题是似乎从来没有发生过时间跨度改变的事件……
发布于 2013-05-28 05:37:39
您可以添加TimeSpan的属性(让我们称其为CurrentTime)并将MediaElement的Position属性绑定到CurrentTime。
当CurrentTime改变时,检查它是否“大于”任意的ε(比方说42ms,这大约是一帧的持续时间)。如果它更大,执行可见性技巧并停止比较。
https://stackoverflow.com/questions/16778591
复制相似问题