zoukankan      html  css  js  c++  java
  • 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运行。

    image

    下面我们来增加些功能,比如加个暂停,重新开始,拖拉进度。

    拖入两个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的播放而移动。

    效果:
    image

  • 相关阅读:
    css3:让IE兼容background-size的方法
    判断浏览器版本是否是ie9以下浏览器,提示升级
    正则表达式
    H5页面内容较少时如何让页面全屏在手机显示呢
    页面滚动指定高度时添加样式或动画
    使用js实现导航切换效果变化(收集案例)
    单行文字定时滚动(收集案例)
    使用zepto.js完成的手机相册
    Repaint 、Reflow 的基本认识和优化
    Web-[强网杯 2019]随便注
  • 原文地址:https://www.cnblogs.com/dingli/p/1942823.html
Copyright © 2011-2022 走看看