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

一个朋友问了我个问题,说怎么在wpf程序中增加音乐.搜索了下msdn看到了个类MediaElement.
把用法总结下贴出来.
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 >

后台加入以下代码:

void  OnMouseDownPlayMedia( object  sender, MouseButtonEventArgs args)
        
{

            myMediaElement.Play();
//播放加载好的视频文件.

            InitializePropertyValues();

        }


        
void  OnMouseDownPauseMedia( object  sender, MouseButtonEventArgs args)
        
{

            myMediaElement.Pause();
//暂停播放

        }


        
//  Stop the media.
         void  OnMouseDownStopMedia( object  sender, MouseButtonEventArgs args)
        
{

            myMediaElement.Stop();
//停止播放,再次播放会从头开始

        }


        
private   void  ChangeMediaVolume( object  sender, RoutedPropertyChangedEventArgs < double >  args)
        
{
            myMediaElement.Volume 
= (double)volumeSlider.Value;//更改音量
        }


        
private   void  ChangeMediaSpeedRatio( object  sender, RoutedPropertyChangedEventArgs < double >  args)
        
{
            myMediaElement.SpeedRatio 
= (double)speedRatioSlider.Value;//更改播放速度
        }


        
// 播放开始调用的事件
         private   void  Element_MediaOpened( object  sender, EventArgs e)
        
{
            
//设置播放进度条的最大值
            timelineSlider.Maximum = myMediaElement.NaturalDuration.TimeSpan.TotalMilliseconds;
        }


        
// 播放结束调用事件
         private   void  Element_MediaEnded( object  sender, EventArgs e)
        
{
            myMediaElement.Stop();
        }


        
// 播放进度
         private   void  SeekToMediaPosition( object  sender, RoutedPropertyChangedEventArgs < double >  args)
        
{
            
int SliderValue = (int)timelineSlider.Value;

            TimeSpan ts 
= new TimeSpan(0000, SliderValue);
            myMediaElement.Position 
= ts;//这里跳转到播放的哪个地方
        }


        
// 点击开始时设置播放的音量和播放速度
         void  InitializePropertyValues()
        
{
            myMediaElement.Volume 
= (double)volumeSlider.Value;
            myMediaElement.SpeedRatio 
= (double)speedRatioSlider.Value;
        }
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值