winform第三方控件wmp

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器lunix系统开启多用户,Ubuntu 服务器设置软件多用户访问

django 学习第一天搭建环境目前django版本是1.10,我学习的基础教材是 Web Development with Django Cookbook, Second Edition 搭建好配置环境 ssh免认证登录 修改一下 ...sed实例精解&#xff0d;&#xff0d;例说sed完整版

存储过程知识总结【一】

/**描述&#xff1a; 存储过程知识点总结&#xff0c;以Northwind数据库的Employees表为例*/ --1.没有参数的存储过程create procedure usp_NoParameterSelectasbegin select * from dbo.Employeesend GO --执行测试EXECUTE usp_NoParameterSelect GO--2.带参数的存…

1034. 有理数四则运算(20)

本题要求编写程序&#xff0c;计算2个有理数的和、差、积、商。输入格式&#xff1a;输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数&#xff0c;其中分子和分母全是整型范围内的整数&#xff0c;负号只可能出现在分子前&#xff0c;分母不为0。输出格式&…

ADO.NET,浅显

ADO.NET 之非查询操作 ADO.net是c sharp中一种将数据库与软件连接的技术. 在用户来操作窗口,来对数据库进行更改. 非查询操作死代码 ; Using Data.SqlClient;//导入数据库客户端 string sql string.Format("增删改的sql语句,要操作的变量用占位符表示"); //如果用w…

ajax的学多久,ajax第二天学习

post方式发送请求要首先设置请求头(参数设置为ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")-->send中放入要发送的参数(keyvalue&keyvalue)-->发送数据(ajax.send(context))当xml作为载体的时候servlet中声明发送…

马后炮之12306抢票工具(四)--抢票Demo,2014年1月9日终结版

时隔一年多&#xff0c;终于朋友的忽悠下吧抢票Demo的最后一步完善了&#xff0c;与2014年1月9日成功生成车票。 Demo仅经过自己测试&#xff0c;并未在高峰期进行测试&#xff0c;代码质量很差&#xff0c;因为赶工&#xff0c;套用去年模板并未使用设计模式。 代码存在如下BU…

华为虚拟一键部署服务器,一键部署云服务器

一键部署云服务器 内容精选换一换SAP NetWeaver分布式部署如图1所示。该部署方式是由多个SAP实例组成&#xff0c;一个SAP实例是一组同时开始和结束的进程。在分布式系统中&#xff0c;所有实例都运行在独立的云服务器上&#xff0c;主要包括以下实例&#xff1a;ABAP Central …

ADO.NET多值查询

1,新控件,可以显示很多数据,视觉清晰.相当于表. listView,列表视图 添加与数据库相关的列名. SqlDataReader sdr cmd.ExecuteReader(); listView.Items.Clear();//避免数据重复 while(sdr.Read())//读所有行 {string a sdr["第一个列名"].ToString();ListviewIte…

1040. 有几个PAT(25

字符串APPAPT中包含了两个单词“PAT”&#xff0c;其中第一个PAT是第2位(P),第4位(A),第6位(T)&#xff1b;第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串&#xff0c;问一共可以形成多少个PAT&#xff1f;输入格式&#xff1a;输入只有一行&#xff0c;包含一个字符串…

我的世界服务器显示不出地图,为什么我的世界服务器地图加载不了

期中一段&#xff1a;java:751) ~[ahb.class:?]at net.minecraft.world.World.func_147439_a(World.java:677) ~[ahb.class:?]at com.tmtravlr.jaff.entities.EntityFish.isInTank(EntityFish.java:89) ~[EntityFish.class:?]at com.tmtravlr.jaff.entities.EntityFish.func…

dataGridview与下拉框高级绑定

//在dataGridView里批量显示所有数据string sql "select * from mingxing";SqlConnection con new SqlConnection(address);//今天所学,生成适配器工具sda,批量读取(读完)SqlDataAdapter sda new SqlDataAdapter(sql, con);//创建对象dt,可以理解为是客户端的一个…

1041. 考试座位号(15)

每个PAT考生在参加考试时都会被分配两个座位号&#xff0c;一个是试机座位&#xff0c;一个是考试座位。正常情况下&#xff0c;考生在入场时先得到试机座位号码&#xff0c;入座进入试机状态后&#xff0c;系统会显示该考生的考试座位号码&#xff0c;考试时考生需要换到考试座…

前端学习(971):swiper插件使用

引入 2复制div部分 不要修改里面的文件 3复制css样式 4复制js 注意winows.addEventListener 加载后使用 5运行结果

登录的基本逻辑

登录的基本逻辑 1,验证账号密码的正确性 与数据库相匹配的代码 string sql "select count[*] from 表名 where pwd ‘’ and ac ‘’ "; //单值结果(0/1)判断是否正确,有一条结果返回。 using System.Data.SqlClient; public static string address “Data So…

ncm转MP3的工具

网易下载歌曲,发现带有.ncm的歌曲不能听,所以我查资料,怎么解决. 查到3种方式. 1,网页搜索F12 network,找到mp3的文件,右键播放. 2,将歌曲缓存,在网易设置,c盘找到缓存文件,有uc文件和连同的个2文件,uc改为mp3,再用网易打开,收藏歌单,下载. . . . 但前两种方式然并ruan. 3, htt…

1051. 复数乘法 (15)

复数可以写成(A Bi)的常规形式&#xff0c;其中A是实部&#xff0c;B是虚部&#xff0c;i是虚数单位&#xff0c;满足i2 -1&#xff1b;也可以写成极坐标下的指数形式(R*e(Pi))&#xff0c;其中R是复数模&#xff0c;P是辐角&#xff0c;i是虚数单位&#xff0c;其等价于三角…