C#实现播放器功能

播放器具有的功能:播放、选择音乐文件、上下音乐切换,如图:


控件有button、ListBox、Windows Media Player、Timer 、ContextMenuStrip

下面上代码:

首先是播放按钮,当播放时显示暂停,暂停是显示播放:

    private void button1_Click(object sender, EventArgs e)
        {
            if (button1.Text == "播放") {
                musicPlayer.Ctlcontrols.play();
                button1.Text = "暂停";
            }
            else if (button1.Text == "暂停") {
                musicPlayer.Ctlcontrols.pause();
                button1.Text = "播放";
            }
        }

停止按钮就是停止音乐:

 private void button2_Click(object sender, EventArgs e)
        {
            musicPlayer.Ctlcontrols.stop();
        }

然后是播放下一首音乐按钮:

 /// <summary>
        /// 点击下一首播放
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            int index = listBox1.SelectedIndex;
            listBox1.SelectedIndices.Clear();
            index++;
            if (index == listBox1.Items.Count) {
                index = 0;
            }
            listBox1.SelectedIndex = index;
            musicPlayer.URL = listPath[index];
            musicPlayer.Ctlcontrols.play();
            button1.Text = "暂停";
        }

播放上一首与此差不多:

  private void button5_Click(object sender, EventArgs e)
        {
            int index = listBox1.SelectedIndex;
            listBox1.SelectedIndices.Clear();
            index--;
            if (index < 0 )
            {
                index = listBox1.Items.Count-1;
            }
            listBox1.SelectedIndex = index;
            musicPlayer.URL = listPath[index];
            musicPlayer.Ctlcontrols.play();
            button1.Text = "暂停";
        }

最后是我们的选择音乐文件:

 List<string> listPath = new List<string>();
        private void button3_Click_1(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.InitialDirectory = @"C:\Users\fei\Music\";
            ofd.Filter = "音乐文件|*.wav|MP3文件|.mp3|所有文件|*.*";
            ofd.Title = "请选择文件:";
            ofd.Multiselect = true;
            ofd.ShowDialog();
            string[] path = ofd.FileNames;
            for (int i = 0; i < path.Length; i++) {
                listPath.Add(path[i]);
                //将文件名存储到listbox中
                listBox1.Items.Add(Path.GetFileName(path[i]));

            }
        }

然后是边角料,就是当音乐播放到最后的时候,直接播放下一首音乐Timer控件 :

  if(musicPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying){
              
                label1.Text = musicPlayer.currentMedia.duration.ToString() + "\r\t" + musicPlayer.Ctlcontrols.currentPosition.ToString();

                double d1 = double.Parse(musicPlayer.currentMedia.duration.ToString());
                double d2 = double.Parse(musicPlayer.Ctlcontrols.currentPosition.ToString()) +1 ;
                if (d1<=d2)
                {
                    int index = listBox1.SelectedIndex;
                    listBox1.SelectedIndices.Clear();
                    index++;
                    if (index == listBox1.Items.Count)
                    {
                        index = 0;
                    }
                    listBox1.SelectedIndex = index;
                    musicPlayer.URL = listPath[index];
                    musicPlayer.Ctlcontrols.play();
                    button1.Text = "暂停";
                }
            }

到此,基本功能完毕。

做个项目下载链接:https://download.csdn.net/download/qwqwdf/10419247


 
 

猜你喜欢

转载自blog.csdn.net/qwqwdf/article/details/80343471