17,747
社区成员




private void btn2_Click(object sender, RoutedEventArgs e)
{
Debug.WriteLine("Before Position = " + mediaElement.Position);
mediaElement.Position += TimeSpan.FromSeconds(20);
Debug.WriteLine("After Position = " + mediaElement.Position);
mediaElement1.Clock = mc; //点击该按钮 接着播放视频
mediaElement1.Play();
}
<MediaElement LoadedBehavior="Manual" />
MediaClock mc;
int judge = 0;
private void MediaTimeline_CurrentTimeInvalidated(object sender, EventArgs e)
{
if (mediaElement1.Position.Seconds == 5)
{
if (judge == 0)
{
judge = 1;
mc = mediaElement1.Clock;
mediaElement1.Clock = null;
mediaElement1.Pause();
MessageBox.Show("视频播放已经5秒了"); //视频播放到5秒暂停
}
}
}
private void btn2_Click(object sender, RoutedEventArgs e)
{
mediaElement1.Clock = mc; //点击该按钮 接着播放视频
mediaElement1.Play();
}
private void btn1_Click(object sender, RoutedEventArgs e)
{
mediaElement1.Pause(); //单击该按钮暂停视频
}
<Window x:Class="WpfMediaElementControl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="711" Width="625">
<Grid>
<MediaElement Name="myMediaElement" Width="598" Height="460" LoadedBehavior="Manual" Canvas.Left="0" Canvas.Top="0">
<MediaElement.Triggers>
<EventTrigger RoutedEvent="MediaElement.Loaded">
<EventTrigger.Actions>
<BeginStoryboard Name="myBegin" >
<Storyboard Name="sb" SlipBehavior="Slip" >
<MediaTimeline Source="Medias\Maps.mp4" BeginTime="0:0:0" Duration="0:1:30"
Storyboard.TargetName="myMediaElement" CurrentTimeInvalidated="MediaTimeChanged"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</MediaElement.Triggers>
</MediaElement>
<Button Content="Stop" Height="23" HorizontalAlignment="Left" Margin="85,597,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>
</Window>
private void MediaTimeChanged(object sender, EventArgs e)
{
//Debug.WriteLine(myMediaElement.Position.TotalMilliseconds + " " + myMediaElement.Position.TotalSeconds);
if (!isPause)
{
//Debug.WriteLine(" --> " + (myMediaElement.Position.TotalMilliseconds - 10000));
if ((myMediaElement.Position.TotalMilliseconds - 10000) < 100 &&
(myMediaElement.Position.TotalMilliseconds - 10000) > 0)
{
myMediaElement.Pause();
isPause = true;
}
}
}
private void button1_Click(object sender, RoutedEventArgs e)
{
myMediaElement.Pause();
sb.Pause();
myBegin.Storyboard.Pause();
}
<MediaElement Height="120" HorizontalAlignment="Left" Margin="152,49,0,0" Name="mediaElement1" MediaOpened="mediaElement1_MediaOpened" VerticalAlignment="Top" Width="160">
<MediaElement.Triggers>
<EventTrigger>
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<MediaTimeline Source="视频路径" Storyboard.TargetName="mediaElement1" CurrentTimeInvalidated="MediaTimeline_CurrentTimeInvalidated"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</MediaElement.Triggers>
</MediaElement>
private void MediaTimeline_CurrentTimeInvalidated(object sender, EventArgs e)
{
if (mediaElement1.Position.Seconds == 20)
{
MessageBox.Show("视频播放已经20秒了");
}
}