实例介绍
【实例简介】源码在player文件夹,仅仅实现了 选择音乐文件,然后 双击能播放。。。
【实例截图】
【核心代码】
完整版,全套资料,源代码素材包!轻松学编程!
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace player { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { musicPlayer.settings.autoStart = false; //musicPlayer.URL = @"E:\星星\音乐管理\Kugou\【春光灿烂猪八戒】好春光.mp3"; lblVolumeState.Image =Image.FromFile(AppDomain.CurrentDomain.BaseDirectory "files\\播放.png"); } private void btnPlay_Click(object sender, EventArgs e) { musicPlayer.Ctlcontrols.play(); } private void btnPause_Click(object sender, EventArgs e) { musicPlayer.Ctlcontrols.pause(); } private void btnStop_Click(object sender, EventArgs e) { musicPlayer.Ctlcontrols.stop(); } private void btnPlayOrPause_Click(object sender, EventArgs e) { if (btnPlayOrPause.Text == "播放") { musicPlayer.Ctlcontrols.play(); btnPlayOrPause.Text = "暂停"; } else if(btnPlayOrPause.Text=="暂停") { musicPlayer.Ctlcontrols.pause(); btnPlayOrPause.Text = "播放"; } } List<string> list = new List<string>(); private void btnSelectMusic_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = @"E:\星星\音乐管理\Kugou"; ofd.Filter = "音乐文件|*.mp3|歌词文件|*.lrc|所有文件|*.*"; ofd.Multiselect = true; ofd.Title = "请选择要播放的音乐文件,思密达~~~"; ofd.ShowDialog(); //获得所有兑换矿中所有的文件 string[] path = ofd.FileNames; for(int i = 0; i < path.Length; i ) { //将文件的名称加载到listbox中 listBox1.Items.Add(Path.GetFileName(path[i])); //将文件的全路径存储到泛型集合中 list.Add(path[i]); } } /// <summary> ///双击播放音乐 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listBox1_DoubleClick(object sender, EventArgs e) { if (listBox1.Items.Count == 0) { return; } musicPlayer.URL = list[listBox1.SelectedIndex]; musicPlayer.Ctlcontrols.play(); IsExistLrc(list[listBox1.SelectedIndex]); } //下一曲 private void btnNext_Click(object sender, EventArgs e) { //获得当前的下标 int index = listBox1.SelectedIndex; listBox1.SelectedIndices.Clear(); index ; if (index == listBox1.Items.Count) { index = 0; } //将改变后的索引的值赋值给listbox1的选中的索引 listBox1.SelectedIndex = index; musicPlayer.URL = list[index]; musicPlayer.Ctlcontrols.play(); } private void btnUp_Click(object sender, EventArgs e) { int index = listBox1.SelectedIndex; //清空当前选中的所有索引列表 listBox1.SelectedIndices.Clear(); index--; if (index == 0) { index = listBox1.Items.Count; } listBox1.SelectedIndex = index; musicPlayer.URL = list[index]; musicPlayer.Ctlcontrols.play(); } private void btnAdd_Click(object sender, EventArgs e) { musicPlayer.settings.volume = 5; } private void btnDec_Click(object sender, EventArgs e) { musicPlayer.settings.volume -= 5; } //静音或者放音 private void lblVolumeState_Click(object sender, EventArgs e) { if (lblVolumeState.Tag.ToString() == "1") { musicPlayer.settings.mute = true; lblVolumeState.Image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory "files\\暂停.png"); lblVolumeState.Tag = 2; } else if(lblVolumeState.Tag.ToString() == "2") { musicPlayer.settings.mute = false; lblVolumeState.Image = Image.FromFile(AppDomain.CurrentDomain.BaseDirectory "files\\播放.png"); lblVolumeState.Tag = 1; } } //右键删除几首歌曲 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); } } private void timer1_Tick(object sender, EventArgs e) { // lblInformation.Text = musicPlayer.currentMedia.duration.ToString() "\r\n" musicPlayer.currentMedia.durationString "\r\n" musicPlayer.Ctlcontrols.currentPosition.ToString() "\r\n" musicPlayer.Ctlcontrols.currentPositionString;// } /// <summary> /// 当播放状态发生改变的时候触发这个事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void musicPlayer_PlayStateChange(object sender, AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e) { // MessageBox.Show(musicPlayer.playState.ToString()); if(musicPlayer.playState== WMPLib.WMPPlayState.wmppsMediaEnded) { //进行下一曲 int index = listBox1.SelectedIndex; listBox1.SelectedIndices.Clear(); index ; if (index == listBox1.Items.Count) { index = 0; } listBox1.SelectedIndex = index; musicPlayer.URL = list[index]; } if(musicPlayer.playState== WMPLib.WMPPlayState.wmppsReady) { musicPlayer.Ctlcontrols.play(); } } //确定当前歌曲是否有歌词 void IsExistLrc(string songPath) { songPath = songPath.TrimEnd('.','m','p','3'); songPath = ".lrc"; if (File.Exists(songPath)) { string[] lrcText=File.ReadAllLines(songPath, Encoding.Default); FormatLrc(lrcText); } else { lblLRC.Text = "--------歌词未找到---------------"; } } List<double> listTime = new List<double>();//存储事件 List<string> litLrc = new List<string>();//存储歌词 /// <summary> /// 格式化歌词数组 /// </summary> /// <param name="path"></param> void FormatLrc(string[] lrcText) { for(int i = 3; i < lrcText.Length; i ) { string[] temp= lrcText[i].Split(new char[] { '[', ']' }, StringSplitOptions.RemoveEmptyEntries); string[] newTemp= temp[0].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (Convert.ToInt32(newTemp[0])==0) { } double time = double.Parse(newTemp[0]) * 60 double.Parse( newTemp[1]); listTime.Add(time); litLrc.Add(temp[1]); } } private void timer2_Tick(object sender, EventArgs e) { for (int i = 0; i < listTime.Count; i ) { if (musicPlayer.Ctlcontrols.currentPosition >= listTime[i] && musicPlayer.Ctlcontrols.currentPosition <= listTime[i 1]) { lblLRC.Text = litLrc[i]; } } } } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论