播放器

来源:互联网 发布:网络诗歌一百首诗歌 编辑:程序博客网 时间:2024/04/25 04:09

1.前台代码:

  <Grid x:Name="LayoutRoot" Background="White" Height="237" Width="499">
       
        <MediaElement Height="0"  HorizontalAlignment="Left" Margin="12,12,0,0" Name="haha" VerticalAlignment="Top" Width="0"  LoadedBehavior="Manual" MediaEnded="myElement_MediaEnded" />
        <Button Content="播放" Height="23" HorizontalAlignment="Left" Margin="10,41,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
        <Button Content="暂停" Height="23" HorizontalAlignment="Left" Margin="111,41,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
        <Button Content="停止" Height="23" HorizontalAlignment="Left" Margin="211,41,0,0" Name="button3" VerticalAlignment="Top" Width="75" Click="button3_Click" />
        <Button Content="静音" Height="23" HorizontalAlignment="Left" Margin="319,41,0,0" Name="button4" VerticalAlignment="Top" Width="75" Click="button4_Click" />
        <Label Height="23" HorizontalAlignment="Left" Margin="138,84,0,0" Name="label1" VerticalAlignment="Top" Width="120" />
        <TextBlock Height="23" HorizontalAlignment="Left" Margin="10,113,0,0" Name="textBlock2" Text="当前进度;" VerticalAlignment="Top" />
        <Slider Height="23" HorizontalAlignment="Left" Margin="64,108,0,0" Name="slider1" VerticalAlignment="Top" Width="293" Value="{Binding ElementName=myElement,Path=Position}" ValueChanged="slider1_ValueChanged" />
        <Label Height="23" HorizontalAlignment="Right" Margin="0,113,12,0" Name="label2" VerticalAlignment="Top" Width="132" />
        <Label Height="23" HorizontalAlignment="Left" Margin="12,84,0,0" Name="label3" VerticalAlignment="Top" Width="120" />
        <TextBlock Height="23" HorizontalAlignment="Left" Margin="259,147,0,0" Name="textBlock5" Text="音量;" VerticalAlignment="Top" />
        <Slider Height="23" HorizontalAlignment="Left" Margin="295,141,0,0" Name="slider2" VerticalAlignment="Top" Width="100" ValueChanged="slider2_ValueChanged" />
        <Label Height="23" HorizontalAlignment="Left" Margin="389,136,0,0" Name="label4" VerticalAlignment="Top" Width="59" />
        <Button Content="下载" Height="23" HorizontalAlignment="Left" Margin="412,41,0,0"  VerticalAlignment="Top" Name="btnDown" Width="75" Click="btnDown_Click_1" />
        <Button Content="关闭" Height="23" HorizontalAlignment="Left" Margin="424,214,0,0" Name="button5" VerticalAlignment="Top" Width="75" Click="button5_Click" />
    </Grid>

2.后台代码:public partial class PlayWindow : System.Windows.Controls.UserControl
    {
           string  Url = "d://chen2.wav"; //音频文件路径
           string sPath = "d://学习保存文件路径
        System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();//定义timer
        public PlayWindow()
        {
            InitializeComponent();
     
        }
      
      public PlayWindow( string SoundUrl)
        {
            InitializeComponent();
            Url = SoundUrl;
            haha.Source = new Uri( Url, UriKind.Absolute);//URL的绝对路径
            timer.Interval = new TimeSpan(0,0,1);//时分秒的初始值
            timer.Tick += new EventHandler(timer_Tick);//调用timer_tick
            timer.Start();
         
        }
      void timer_Tick(object sender, EventArgs e)
      {
             label2.Content = string.Format(
                    "{0}{1:00}:{2:00}:{3:00}",
                    "播放进度:",
                    haha.Position.Hours,
                    haha.Position.Minutes,
                    haha.Position.Seconds);
             label3.Content = string.Format("下载进度:{0:##%}", haha.DownloadProgress);
        
      }
     

        private void InitializePropertyValues()
        {
            //haha.Volume = (double)volumeSlider.Value;
           // haha.Source = new Uri(Url, UriKind.Absolute);
        }
        /// <summary>
        /// 下载按钮引发的事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
         //播放进度
        private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {

            try
            {
                haha.Position = TimeSpan.FromSeconds((haha.NaturalDuration.TimeSpan.TotalSeconds * slider1.Value) /10);//播放器的进度
            }
            catch (Exception ex)
            {
               
                throw ex;
            }

         }
        /// <summary>
        /// 播放
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
          haha.Play();
        }
        /// <summary>
        /// 暂停
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            haha.Pause();
        }
        /// <summary>
        /// 停止
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, RoutedEventArgs e)
        {
            haha.Stop();
        }
        /// <summary>
        /// 静音
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, RoutedEventArgs e)
        {
            haha.IsMuted = !haha.IsMuted;
        }
        /// <summary>
        /// 音量控制
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void slider2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            //音量控制          
            double d = (double)(((double)slider2.Value) / 10);
            haha.Volume = d;
            label4.Content = (double.Parse(d.ToString("F2")) * 100) + "%";
        }
        /// <summary>
        /// 下载操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDown_Click_1(object sender, RoutedEventArgs e)
        {

            System.Windows.Forms.SaveFileDialog sf = new System.Windows.Forms.SaveFileDialog();
            sf.Filter = "音频文件|*.wav";
            if (sf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                String targetPath = sf.FileName;
                System.IO.File.Copy(Url, targetPath, true);//把文件copy的另一个地方
            }


        }
        /// <summary>
        ///  隐藏当前窗口
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Click(object sender, RoutedEventArgs e)
        {      
            haha.Stop();
            haha.Close();
            this.LayoutRoot.Visibility = Visibility.Hidden;
        }

        private void button6_Click(object sender, RoutedEventArgs e)
        {
            Url = "d://chen2.wav"; //音频文件路径
            sPath = "d://学习保存文件路径
            PlayWindow pw = new PlayWindow(Url);
            //SearchChatHistory pw = new SearchChatHistory(soundUrl);
            addPlay.Content = pw;
            addPlay.Visibility = Visibility.Visible;
          
        }

       
    }

原创粉丝点击