91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#基于winform實現音樂播放器的方法

發布時間:2022-02-10 13:48:01 來源:億速云 閱讀:257 作者:iii 欄目:開發技術

今天小編給大家分享一下C#基于winform實現音樂播放器的方法的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

首先,右鍵工具箱的組件,找到選擇項,找到Windows Media Player組件并添加。

設計界面:

C#基于winform實現音樂播放器的方法

首先實現基本的功能

給“”老板播放器“的播放暫停添加代碼

MusicPlayer.Ctlcontrols.play();  //播放
MusicPlayer.Ctlcontrols.pause();//暫停
MusicPlayer.Ctlcontrols.stop();//停止

首先給Windows Media Player控件改名為MusicPlayer,并在程序加載時關閉自動播放和賦予一個默認的地址。

 private void Form1_Load(object sender, EventArgs e)
        {

            //在程序加載的時候,取消播放器的自動播放功能
            MusicPlayer.settings.autoStart = false;
            MusicPlayer.URL = @"E:\CloudMusic\陳亮 - 無題.mp3";

            label1.Image = Image.FromFile(@"C:\Users\14505\Desktop\繼續.jpg");
        }

接下來是播放鍵的按鈕

List<string> list = new List<string>();//用于儲存音樂的全路徑
 private void btnPlayorPause_Click(object sender, EventArgs e)
        {
            if (btnPlayorPause.Text == "播放")
            {
                if (b)
                {
                    //獲得選中的歌曲  讓音樂從頭播放
                    MusicPlayer.URL = list[listBox1.SelectedIndex];
                }
                MusicPlayer.Ctlcontrols.play();
                btnPlayorPause.Text = "暫停";
            }
            else if (btnPlayorPause.Text == "暫停")
            {
                MusicPlayer.Ctlcontrols.pause();
                btnPlayorPause.Text = "播放";
                b = false;
            }
        }

用list集合來存儲文件的路徑,并且listbox控件的items也對應這list,這樣我們可以通過點擊listbox選中內容(獲取它的索引)來找到對應索引的list集合中的路徑并播放。

給listbox添加雙擊事件:

 /// <summary>
        /// 雙擊播放對應的音樂
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listBox1_DoubleClick(object sender, EventArgs e)
        {
            if (listBox1.Items.Count == 0)
            {
                MessageBox.Show("請首先原則音樂");
                return;
            }
            try
            {
                MusicPlayer.URL = list[listBox1.SelectedIndex];
                MusicPlayer.Ctlcontrols.play();
                btnPlayorPause.Text = "暫停";
                lblinformation.Text = MusicPlayer.Ctlcontrols.currentPosition.ToString();
            }
            catch { }
        }

接下來是打開按鈕,我們需要打開對話框選取想要的音樂文件

 /// <summary>
        /// 打開按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "請選擇您的文件";
            ofd.Filter = "音樂文件|*.mp3|全部文件|*.*";
            ofd.InitialDirectory = @"E:\CloudMusic";
            ofd.Multiselect = true;
            ofd.ShowDialog();

            //獲得在文本框中選擇的全路徑
            string[] path = ofd.FileNames;
            for (int i = 0; i < path.Length; i++)
            {
                list.Add(path[i]);
                //將音樂文件的文件名存儲到listbox中

                listBox1.Items.Add(Path.GetFileName(path[i]));
            }
        }

下面是上一首下一首的功能,我們只需要獲取listbox控件中當前選中項的索引,在使用lst即可

 /// <summary>
        /// 下一曲
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button5_Click(object sender, EventArgs e)
        {

            //獲得當前選中的索引
            int a = listBox1.SelectedIndex + 1;
            //清空所有選中的索引   這里是因為我們開啟了多選屬性,才需要清理
            listBox1.SelectedIndices.Clear();
            if (a == listBox1.Items.Count)
            {
                a = 0;
            }
            //將改變后的索引重新賦值給當前選中項的索引
            listBox1.SelectedIndex = a;
            MusicPlayer.URL = list[a];
            MusicPlayer.Ctlcontrols.play();
        }
        /// <summary>
        /// 上一曲
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button6_Click(object sender, EventArgs e)
        {
            int a = listBox1.SelectedIndex - 1;
            listBox1.SelectedIndices.Clear();
            if (a < 0)
            {
                a = listBox1.Items.Count - 1;
            }
            //將改變后的索引重新賦值給當前選中項的索引
            listBox1.SelectedIndex = a;
            MusicPlayer.URL = list[a];
            MusicPlayer.Ctlcontrols.play();
        }

給listbox控件添加一個右鍵菜單,我們需要多選刪除功能。
這里必須先清除集合中的內容,再清除listbox控件中的內容,否則會引起程序的異常。

 /// <summary>
        /// 點擊刪除選中項
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 刪除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //要刪除列表中的選中項

            //先刪集合
            //首先獲得要刪除的歌曲的數量
            int count = listBox1.SelectedItems.Count;
            for (int i = 0; i < count; i++)
            {
                //先刪集合
                list.RemoveAt(listBox1.SelectedIndex);
                //在刪列表
                listBox1.Items.RemoveAt(listBox1.SelectedIndex);
            }


        }

接下來是靜音和外放按鈕,這里我使用label控件添加了圖片(百度自行找播放和暫停的圖片即可)

 /// <summary>
        /// 點擊放音或靜音
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void label1_Click(object sender, EventArgs e)
        {
            if (label1.Tag.ToString() == "1")
            {
                //目的:讓你靜音
                MusicPlayer.settings.mute = true;//靜音
                //顯示靜音的圖片
                label1.Image = Image.FromFile(@"C:\Users\14505\Desktop\暫停.jpg");
                label1.Tag = "2";
            }
            else
            {
                MusicPlayer.settings.mute = false;
                //顯示放音圖片
                label1.Image = Image.FromFile(@"C:\Users\14505\Desktop\繼續.jpg");
                label1.Tag = 1;
            }
        }

接下來要加一個播放完自動下一首的功能
我這里使用了歌曲全部時常和當前播放時長去比較,當前播放時常+1等于全部時長時,我們就切換下一首
或者使用bool判斷控件的播放狀態也是一樣的道理

private void timer1_Tick(object sender, EventArgs e)
        {
               //如果播放器的狀態時正在播放中
            if (MusicPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)
            {
                lblinformation.Text = MusicPlayer.currentMedia.duration.ToString() + "\r\n" + MusicPlayer.currentMedia.durationString + "\r\n" + MusicPlayer.Ctlcontrols.currentPositionString;

                double b1 = double.Parse(MusicPlayer.currentMedia.duration.ToString());
                double b2 = double.Parse(MusicPlayer.Ctlcontrols.currentPosition.ToString())+1;
                //如果歌曲當前的播放時間等于歌曲的總時間,自動播放下一曲    //比較時間的值
                if (b1<=b2)
                {
                    //獲得當前選中的索引
                    int a = listBox1.SelectedIndex + 1;
                    //清空所有選中的索引
                    listBox1.SelectedIndices.Clear();
                    if (a == listBox1.Items.Count)
                    {
                        a = 0;
                    }
                    //將改變后的索引重新賦值給當前選中項的索引
                    listBox1.SelectedIndex = a;
                    MusicPlayer.URL = list[a];
                    MusicPlayer.Ctlcontrols.play();
                }
            }
            //比較時間的值
          
        }

運行截圖:

C#基于winform實現音樂播放器的方法

以上就是“C#基于winform實現音樂播放器的方法”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蓬莱市| 松滋市| 南雄市| 平远县| 出国| 郯城县| 廊坊市| 本溪| 西华县| 芜湖县| 西乌| 茌平县| 读书| 嘉鱼县| 靖远县| 遵义县| 余姚市| 益阳市| 长顺县| 元氏县| 浮山县| 福建省| 理塘县| 虹口区| 静安区| 新郑市| 博乐市| 汉沽区| 福州市| 赫章县| 驻马店市| 江都市| 聊城市| 彭山县| 桂林市| 长葛市| 隆回县| 定兴县| 封开县| 张家口市| 封丘县|