相关文章推荐
仗义的竹笋  ·  UnmanagedType Enum ...·  1 年前    · 
逼格高的酱牛肉  ·  [译] SIGSEGV:Linux ...·  2 年前    · 
果断的移动电源  ·  node.js - ...·  3 年前    · 
谈吐大方的盒饭  ·  How to avoid ...·  3 年前    · 
注册/登录

WPF MediaElement实现音乐功能增加

开发 开发工具
WPF MediaElement作为一个WPF中的类,是初学者必须要掌握的一个基础知识。在学习的过程中,我们可以知道,这个类可以帮助我们实现音乐的添加。

当我们在实际开发中,要想在程序中添加音乐的话,可以使用一个叫做 WPF MediaElement的类。那么具体的使用方法又是怎样的呢?#t#

一个朋友问了我个问题,说怎么在wpf程序中增加音乐.搜索了下msdn看到了个WPF MediaElement.
把用法总结下贴出来.

WPF MediaElement是一个播放audio和video的类.

前台加入以下代码:

  • < StackPanel Background = "Black" >
  • < MediaElement Source = "numbers.
    wmv"
    Name = "myMediaElement"
  • Width = "450" Height = "250"
    LoadedBehavior = "Manual"
    UnloadedBehavior = "Stop" Stretch = "Fill"
  • MediaOpened = "Element_MediaOpened"
    MediaEnded = "Element_MediaEnded" />
  • < StackPanel HorizontalAlignment =
    "Center" Width = "450"
    Orientation = "Horizontal" >
  • < !-- 播放按钮. -- >
  • < Image Source = "3D_menu_07.png"
    MouseDown = "OnMouseDownPlayMedia"
    Margin = "5" />
  • < !-- 暂停按钮. -- >
  • < Image Source = "3D_menu_09_2.png"
    MouseDown = "OnMouseDownPauseMedia"
    Margin = "5" />
  • < !-- 停止按钮. -- >
  • < Image Source = "list4_01.png"
    MouseDown = "OnMouseDownStopMedia"
    Margin = "5" />
  • < !-- 音量设置. -- >
  • < TextBlock Foreground = "White"
    VerticalAlignment = "Center"
    Margin = "5" > Volume < /TextBlock >
  • < Slider Name = "volumeSlider"
    VerticalAlignment = "Center"
    ValueChanged = "ChangeMediaVolume"
  • Minimum = "0" Maximum = "1" Value = "0.5"
    Width = "70" />
  • < !-- 播放速度设置. -- >
  • < TextBlock Foreground = "White"
    Margin = "5" VerticalAlignment =
    "Center" > Speed < /TextBlock >
  • < Slider Name = "speedRatioSlider"
    VerticalAlignment = "Center"
    ValueChanged = "ChangeMediaSpeedRatio"
  • Value = "1" Width = "70" />
  • < !-- 播放进度. -- >
  • < TextBlock Foreground = "White"
    Margin = "5" VerticalAlignment =
    "Center" > Seek To < /TextBlock >
  • < Slider Name = "timelineSlider"
    Margin = "5" ValueChanged =
    "SeekToMediaPosition" Width = "70" />
  • < /StackPanel >
  • < /StackPanel >
  • 后台加入以下WPF MediaElement代码:

    1. void OnMouseDownPlayMedia
      (object sender, MouseButton
      EventArgs args)  
    2. ...{  
    3. myMediaElement.Play();
      //播放加载好的视频文件.  
    4. InitializePropertyValues();  
    5. }  
    6. void OnMouseDownPauseMedia
      (object sender, MouseButton
      EventArgs args)  
    7. ...{  
    8. myMediaElement.Pause();//暂停播放  
    9. }  
    10. // Stop the media.  
    11. void OnMouseDownStopMedia
      (object sender, MouseButton
      EventArgs args)  
    12. ...{  
    13. myMediaElement.Stop();
      //停止播放,再次播放会从头开始  
    14. }  
    15. private void ChangeMediaVolume
      (object sender, RoutedProperty
      ChangedEventArgs
      < double> args)  
    16. ...{  
    17. myMediaElement.Volume = 
      (double)volumeSlider.Value;//更改音量  
    18. }  
    19. private void ChangeMediaSpeed
      Ratio(object sender, 
      RoutedPropertyChangedEventArgs
      < double> args)  
    20. ...{  
    21. myMediaElement.SpeedRatio = 
      (double)speedRatioSlider.Value;
      //更改播放速度  
    22. }  
    23. //播放开始调用的事件  
    24. private void Element_MediaOpened
      (object sender, EventArgs e)  
    25. ...{  
    26. //设置播放进度条的***值  
    27. timelineSlider.Maximum = 
      myMediaElement.NaturalDuration.
      TimeSpan.TotalMilliseconds;  
    28. }  
    29. //播放结束调用事件  
    30. private void Element_MediaEnded
      (object sender, EventArgs e)  
    31. ...{  
    32. myMediaElement.Stop();  
    33. }  
    34. //播放进度  
    35. private void SeekToMediaPosition
      (object sender, RoutedProperty
      ChangedEventArgs
      < double> args)  
    36. ...{  
    37. int SliderValue = (int)timeline
      Slider.Value;  
    38. TimeSpan ts = new TimeSpan
      (0, 0, 0, 0, SliderValue);  
    39. myMediaElement.Position = ts;
      //这里跳转到播放的哪个地方  
    40. }  
    41. //点击开始时设置播放的音量和播放速度  
    42. void InitializePropertyValues()  
    43. ...{  
    44. myMediaElement.Volume = 
      (double)volumeSlider.Value;  
    45. myMediaElement.SpeedRatio = 
      (double)speedRatioSlider.Value;  

    以上就是WPF MediaElement的相关介绍。

    责任编辑:曹凯 CSDN
    点赞
    收藏