用windows media player 制作一个简单的的音乐播放器。
先把播放器的属性设为null。
private void button5_Click(object sender, EventArgs e)//从本地添加歌曲按钮 {OpenFileDialog of = new OpenFileDialog();//打开文件对话框of.Filter = "(mp3,wav,mp4,mov,wmv,mpg)|*.mp3;*.wav;*.mp4;*.mov;*.wmv;*.mpg|all files|*.*";of.Multiselect = true;//多选文件DialogResult dr = of.ShowDialog();//弹出窗口if (dr.ToString() == "OK"){foreach (string music in of.FileNames)//迭代,用music 去遍历filenames{listBox1.Items.Add(music.Split('\\')[music.Split('\\').Length - 1]);//本来是加入music会显示绝对路径,但用分割,得到最后一个歌曲名,遍历得到所有歌曲}}}int i = 0;//用i和listBox1.SelectedIndex来控制该播放哪首歌,最后一首歌用listBox1.Items.Count;表示private void listBox1_DoubleClick(object sender, EventArgs e)//歌单列表双击播放{Player.URL = listBox1.SelectedItem.ToString();//播放器的地址在所添加listbox的选项Player.Ctlcontrols.play();//播放器播放i = listBox1.SelectedIndex;i++;}private void Form5_Load(object sender, EventArgs e)//加载出来是顺序的状态{comboBox1.SelectedIndex = 2;//默认顺序播放}#region 点击播放形式private void button1_Click(object sender, EventArgs e)//点击播放键{if (listBox1.SelectedIndex >= 0){if (comboBox1.Text == "随机"){Random r = new Random();i = r.Next(0, listBox1.Items.Count);listBox1.SelectedIndex = i;Player.URL = listBox1.SelectedItem.ToString();//播放器的地址在所添加listbox的选项Player.Ctlcontrols.play();//播放器播放}else if (comboBox1.Text == "顺序播放")//顺序播放{if (i < listBox1.Items.Count){listBox1.SelectedIndex = i;Player.URL = listBox1.SelectedItem.ToString();Player.Ctlcontrols.play();i++;}else{i = 0;listBox1.SelectedIndex = i;Player.URL = listBox1.SelectedItem.ToString();Player.Ctlcontrols.play();i++;}}else{Player.URL = listBox1.SelectedItem.ToString();Player.Ctlcontrols.play();//Player.URL = listBox1.SelectedItem.ToString();//Player.Ctlcontrols.play();//MessageBox.Show(""+listBox1.Items.Count);}}elseMessageBox.Show("请先添加歌曲");}#endregion#region damn//private void Player_StatusChange(object sender, EventArgs e)//{// if (comboBox1.Text == "单曲循环")// {// if ((int)Player.playState == 1)// {// //停顿2秒钟再重新播放 // System.Threading.Thread.Sleep(2000);// //重新播放 // Player.Ctlcontrols.play();// }// }//}#endregion private void button2_Click(object sender, EventArgs e)//暂停键{Player.Ctlcontrols.pause();}#region 切换歌曲功能private void button3_Click(object sender, EventArgs e)//切换上一首歌的键{i = listBox1.SelectedIndex;if (i > 0){i--;listBox1.SelectedIndex = i;//上一首歌播放 Player.URL = listBox1.SelectedIndex.ToString();//获取第几个歌曲Player.URL = listBox1.SelectedItem.ToString();//要播的歌曲Player.Ctlcontrols.play();}else{//listBox1.SelectedIndex = listBox1.Items.Count;i = listBox1.Items.Count;i--;listBox1.SelectedIndex = i;Player.URL = listBox1.SelectedIndex.ToString();Player.URL = listBox1.SelectedItem.ToString();//Player.Ctlcontrols.play();}}private void button4_Click(object sender, EventArgs e)//切换下一首歌的键{i = listBox1.SelectedIndex;if (i < listBox1.Items.Count - 1)//!!!{i++;listBox1.SelectedIndex = i;Player.URL = listBox1.SelectedIndex.ToString();Player.URL = listBox1.SelectedItem.ToString();//Player.Ctlcontrols.play();}else{i = 0;listBox1.SelectedIndex = i;//如果列表选中的歌是最后一首歌,从第一首歌播放i++;Player.URL = listBox1.SelectedIndex.ToString();Player.URL = listBox1.SelectedItem.ToString();//Player.Ctlcontrols.play();}}#endregion#region 声音功能private void button6_Click(object sender, EventArgs e){Player.settings.volume += 5;//5、设置静音 播放器名称.settings.mute = true;//取消静音 播放器名称.settings.mute = false;//6、声音加大 播放器名称.settings.volume += 5;//7、声音减小 播放器名称.settings.volume -= 5;}private void button7_Click(object sender, EventArgs e){Player.settings.volume -= 5;}private void button8_Click(object sender, EventArgs e){if (i % 2 == 0){Player.settings.mute = true;//设置静音}else{Player.settings.mute = false;i++;}}#endregion#region 播放时间private void button9_Click(object sender, EventArgs e){Player.Ctlcontrols.fastForward();}#endregionprivate void button10_Click(object sender, EventArgs e){// 获取当前播放的时间double cp = Player.Ctlcontrols.currentPosition;// 后退10秒cp = cp - 10;if (cp <= 0)cp = 0;// 将时间赋值给播放器Player.Ctlcontrols.currentPosition = cp;}
就是好玩,歌还是能放的,不能实现歌播放完了自动跳到下一首,但是点击播放键是可以跳的,随机也是。跳还是从第一首歌开始跳。
总结:播放器是老师教的,显然他没教那么全,原因是基础有限,许多方法,不能调用。但随机播放和单曲循环在我的升级下,还有切换上一首,下一首,声音的控制还是实现了。会将第三方控件引入到常规控件,和用代码调用就行了。
如果当作一个单纯的好玩还是可以的,不能乱复制看不懂的代码,要不然越搞越乱!!!