用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;}

就是好玩,歌还是能放的,不能实现歌播放完了自动跳到下一首,但是点击播放键是可以跳的,随机也是。跳还是从第一首歌开始跳。
总结:播放器是老师教的,显然他没教那么全,原因是基础有限,许多方法,不能调用。但随机播放和单曲循环在我的升级下,还有切换上一首,下一首,声音的控制还是实现了。会将第三方控件引入到常规控件,和用代码调用就行了。
如果当作一个单纯的好玩还是可以的,不能乱复制看不懂的代码,要不然越搞越乱!!!

winform第三方控件wmp相关推荐

  1. C#--Winform第三方控件资源汇总

    最近在用C#Winform做一个关于GNSS作业仿真的软件,这次界面想做的和别人写的WPF一样炫酷些,然而自定义控件太麻烦,于是就到网络搜索轮子哥造好的轮子,随着编程世界的开源化和中国程序员的崛起,有 ...

  2. Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)

    利用午休时间继续把过去写的一些代码翻出来说一说,文章可能写的比较简略,但是我会努力把核心意思表达清楚,具体代码可直接访问 Github 获取. Github 地址:https://github.com ...

  3. Winform分页控件之纯分页显示处理

    在之前介绍的Winform分页控件中,都以分页控件+显示表格控件作为一个整体性的控件,不可分开,这样做的目的是可以实现更多的操作,集成更多丰富的特性,减少我们开发的工作量,这种情况虽然适用于大多数的情 ...

  4. VB调用C#写的WinForm.NET控件

    点击下载本文配套的演示程序代码http://files.cnblogs.com/xdesigner/VB-CS-WinformControl.zip. 一.前言: 虽然IT开发技术日新月异,不过业界仍 ...

  5. winform/timer控件/权限设置/三级联动

    winform/timer控件/权限设置/三级联动 一.timer控件 组件--timer timer是一个线程,默认可以跨线程访问对象 属性:Enabled--可用性 Interval--间隔时间 ...

  6. winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法。

    winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解决方法. 参考文章: (1)winform上控件太多,绘制时会逐个出现,通常说双缓冲能解决但实际不能解决的问题的解 ...

  7. 如何在多线程中调用winform窗体控件2——实例篇

    如何在多线程中调用winform窗体控件2--实例篇 针对之前文章<如何在多线程中调用winform窗体控件>,下面举个我项目中的实际案例,这是一个我自定义控件在异步设置焦点时的代码.在新 ...

  8. DELPHI第三方控件及组件大全(安装方法与使用)

    一,DELPHI第三方控件安装方法介绍 1.对于单个控件,Componet–>install component..–>PAS或DCU文件–>install; 2.对于带*.dpk文 ...

  9. 学习笔记---母板页、用户控件、第三方控件及视图状态管理

    一.母版页 在制作页面的过程中, 多个页面往往具有相同的页面Header和页面Footer, 多个页面只是在中间部分有变化. 那么我们完全可以避免在每个页面中都写一遍页头和页尾的代码, 这种技术就是母 ...

最新文章

  1. Centos下卸载openjdk并安装自定义jdk
  2. 算法----------找到 K 个最接近的元素
  3. wcf返回datatable必须给tablename赋值
  4. MySQL全文索引应用简明教程
  5. 如何将本地 Windows 电脑中的文件复制(上传)到远程的 Windows 服务器主机上
  6. 8086加法指令ADD
  7. java 多线程跑数据_java——多线程的实现方式、三种办法解决线程赛跑、多线程数据同步(synchronized)、死锁...
  8. 一步步编写操作系统 43 汇编语言和c语言的理解
  9. mysql集群 clu_MySQL高可用之PXC简介
  10. Docker技术入门与实战 第二版-学习笔记-3-Dockerfile 指令详解
  11. LODOP批量打印多页模版进行维护
  12. 教你如何创建unity3d多个定时器,以及定时器的其他操作
  13. 代码织入 android,这可能是Android最傻瓜式的AOP框架
  14. SDN、NFV:一枝独秀不是春
  15. Visio中字体与Word中字体的对应
  16. IDEA 报错 LoggerFactory is not a Logback LoggerContext but Logback is on the classpath,如何排除依赖冲突
  17. 2017-2018年QS世界大学计算机科学及信息系统专业排名
  18. 2023美赛E题程序建模思路
  19. windows下ssh出现windows Load key “C:\\Users\\xxx/.ssh/id_rsa“: bad permissions
  20. 微信开发工具及Hbuilder中引用阿里巴巴矢量库(步骤一样)

热门文章

  1. 前端学习(1355)模板语法循环
  2. 前端学习(653):算数运算符
  3. 前端学习(642):字面量
  4. 第九十期:哪种人是软件设计中的稀缺型人才?
  5. 第四十九期:化繁为简的五种码农必备工具
  6. 第七十期:IT技术人员的自我修养
  7. Qt 调用VISA库通过SCPI程控仪器-以IT8906A电子负载为例
  8. 神经稀疏体素场论文笔记
  9. 七、线性表的链式存储结构
  10. bootstrap简单使用