我有一个带有视频缩略图的图像和一个带有真实视频的 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
}
}
}
当视频为 42 毫秒(第一帧)时,我想进行从缩略图到视频的无缝过渡。问题是似乎从来没有发生过时间跨度改变的事件......