WPF MediaElement实现音乐功能增加

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

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

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

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

前台加入以下代码:

 

  1. < StackPanel Background="Black"> 
  2. < MediaElement Source="numbers.
    wmv"
     Name="myMediaElement"   
  3. Width="450" Height="250" 
    LoadedBehavior="Manual" 
    UnloadedBehavior="Stop" Stretch="Fill"   
  4. MediaOpened="Element_MediaOpened" 
    MediaEnded="Element_MediaEnded"/> 
  5. < StackPanel HorizontalAlignment=
    "Center" Width="450" 
    Orientation="Horizontal"> 
  6. < !-- 播放按钮. --> 
  7. < Image Source="3D_menu_07.png" 
    MouseDown="OnMouseDownPlayMedia" 
    Margin="5" /> 
  8. < !-- 暂停按钮. --> 
  9. < Image Source="3D_menu_09_2.png" 
    MouseDown="OnMouseDownPauseMedia"
     Margin="5" /> 
  10. < !-- 停止按钮. --> 
  11. < Image Source="list4_01.png" 
    MouseDown="OnMouseDownStopMedia" 
    Margin="5" /> 
  12. < !-- 音量设置. --> 
  13. < TextBlock Foreground="White" 
    VerticalAlignment="Center" 
    Margin="5" >Volume< /TextBlock> 
  14. < Slider Name="volumeSlider" 
    VerticalAlignment="Center" 
    ValueChanged="ChangeMediaVolume"   
  15. Minimum="0" Maximum="1" Value="0.5" 
    Width="70"/> 
  16. < !-- 播放速度设置. --> 
  17. < TextBlock Foreground="White" 
    Margin="5" VerticalAlignment=
    "Center">Speed< /TextBlock> 
  18. < Slider Name="speedRatioSlider" 
    VerticalAlignment="Center" 
    ValueChanged="ChangeMediaSpeedRatio"   
  19. Value="1" Width="70" /> 
  20. < !-- 播放进度. --> 
  21. < TextBlock Foreground="White" 
    Margin="5" VerticalAlignment=
    "Center">Seek To< /TextBlock> 
  22. < Slider Name="timelineSlider" 
    Margin="5" ValueChanged=
    "SeekToMediaPosition" Width="70"/> 
  23. < /StackPanel> 
  24. < /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
相关推荐

2009-12-24 10:04:31

WPF右键菜单

2012-12-03 10:41:06

SkyDrive微软云计算

2009-12-23 10:01:26

WPF功能

2009-12-25 13:41:33

2009-12-25 17:02:33

WPF多媒体

2009-11-13 09:15:34

WPF

2012-08-06 09:52:03

Android搜索功能

2023-12-19 16:34:52

Ardour数字音乐开源

2011-02-15 09:39:37

Ubuntu OneUbuntu 11.0

2013-04-17 16:58:32

Windows PhoMediaElemen

2009-12-29 10:06:09

WPF Canvas

2021-03-12 15:17:20

智能音箱心脏监测物联网

2010-01-04 17:00:34

VromeChromeChrome Vim扩

2011-07-27 09:41:34

MySQL

2009-12-28 17:33:19

WPF视频音频

2009-12-24 17:57:53

WPF页面跳转

2009-12-28 11:14:29

WPF显示文本

2009-12-24 13:31:25

WPF UI设计

2023-03-03 00:08:36

微软机器人聊天

2013-07-10 09:18:13

微软Office 365
点赞
收藏

51CTO技术栈公众号