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;
        }
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值