我最近开始研究C#。
我想要做的是在10秒后停止在WPF应用程序中播放的视频。我知道我需要某种计时器(DispatcherTimer),但不知道如何使用它。
对此方面的任何帮助表示赞赏。
XAML代码:
<MediaElement Canvas.Left="20" Canvas.Top ="40"
Name="VideoControl" LoadedBehavior="Manual" UnloadedBehavior="Stop"
MediaOpened="VideoControl_MediaOpened" Source="c:\users\ayymmoo\documents\visual
studio 2010\Projects\play_video\play_video\How I Met Your Mother Season 06 Episode 03
- Unfinished.avi">
</MediaElement>
Xaml.cs代码
void PlayClick(object sender, EventArgs e)
{
VideoControl.Play();
}
void PauseClick(object sender, EventArgs e)
{
VideoControl.Pause();
}
void StopClick(object sender, EventArgs e)
{
VideoControl.Stop();
}
private void VideoControl_MediaOpened(object sender, RoutedEventArgs e)
{
}
我试图用你定义的那个替换我的代码......并且它第一次正常工作但是当我从暂停位置再次播放时它在10秒之前再次暂停并且暂停间隔变得更小我一次又一次地玩这是代码
public void PlayClick(object sender, EventArgs e) {
VideoControl.Play();
var dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 10);
dispatcherTimer.Start();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
VideoControl.Pause();
}
答案 0 :(得分:0)
您可以尝试使用此代码
启动你的计时器
var dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0,0,10);
dispatcherTimer.Start();
Ticked Method foreach interval
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
....
}
答案 1 :(得分:0)
将您的计时器移出此范围到私有字段,在构造函数中初始化它,然后在PlayClick方法中启动计时器,但不要忘记在dispatcherTimer_Tick方法中停止计时器。
我认为第一次运行计时器时,它会起作用,然后第二次,你创建另一个计时器,但是第一次计时器仍然每隔十秒触发一次,然后恰好在你点击后不到十秒钟第二次玩。