MSDN 教程短片 WPF 17(简单播放器的制作)
WPF做一个简单播放器
WPF中有个MediaPlayer类,它位于System.Windows.Media命名空间下。基于Windows Media Player构建起来的,所以下面做的播放器的前提是 电脑上必须安装Windows Media Player 10或更高版本。
一、打开vs,新建一个应用程序项目。
我们在窗体拖入一个MediaElement控件
<MediaElement Name="mediaElement1" Margin="0,0,0,61"> </MediaElement>
下面我们来触发这个控件的播放。
<Grid.Triggers>
<EventTrigger SourceName="mediaElement1"
RoutedEvent="MediaElement.Loaded"> <EventTrigger.Actions> <BeginStoryboard x:Name="sb"> <Storyboard> <MediaTimeline Source="xbox.wmv" Storyboard.TargetName="mediaElement1" RepeatBehavior="Forever" /> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </Grid.Triggers>
这里我们在MediaElement.Loaded加载的时候开始显示。
这里要注意Source这里的xbox.wmv放在bin目录下。也可以用..\..\xbox.wmv来读取你放的位置。
这是可以按F5运行。
下面我们来增加些功能,比如加个暂停,重新开始,拖拉进度。
拖入两个Button按钮和一个Slider。
<Button Height="23" HorizontalAlignment="Left" Margin="68,0,0,7"
Name="btnPause" VerticalAlignment="Bottom" Width="75">Pause</Button> <Button Height="23" Margin="162,0,126,7" Name="btnResume"
VerticalAlignment="Bottom">Resume</Button> <Slider Height="21" Margin="43,0,55,37" Name="timeSlider"
VerticalAlignment="Bottom" />
在Grid.Trigger里添加触发它的事件。
<EventTrigger SourceName="btnPause" RoutedEvent="Button.Click"> <EventTrigger.Actions> <PauseStoryboard BeginStoryboardName="sb" /> </EventTrigger.Actions> </EventTrigger> <EventTrigger SourceName="btnResume" RoutedEvent="Button.Click"> <EventTrigger.Actions> <ResumeStoryboard BeginStoryboardName="sb" /> </EventTrigger.Actions> </EventTrigger> 给MediaElement一个MediaOpened事件叫mediaElement1_MediaOpened
和在MediaTimeline里加个事件CurrentTimeInvalidated=
"MediaTimeline_CurrentTimeInvalidated"
private void mediaElement1_MediaOpened(object sender, RoutedEventArgs e) { timeSlider.Maximum=mediaElement1.NaturalDuration.TimeSpan.TotalMilliseconds; } private void MediaTimeline_CurrentTimeInvalidated(object sender,EventArgs e) { timeSlider.Value = mediaElement1.Position.TotalMilliseconds; } 这里timeSlider的最大时间点也就是结束点是mediaElement1总的秒数。
timeSlider随着mediaElement1的播放而移动。
作者:dingli
出处:http://www.cnblogs.com/dingli/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。