1.基本框架搭建
- 找到Window Media Player组件(后续简称player组件)添加进来
- 找到listbox组件用来存放歌曲列表,设置一个list集合歌曲的路径,listbox和这个list中数据绑定起来
2.基本功能
2.1 播放/暂停
通过给特定的button按钮绑定事件,实现播放暂停的功能
- 这里面用到了player组件的Ctlcontrols的播放,暂停功能。
- 还用到了player组件的URL属性用来标记当前播放歌曲的路径。
- 若button按钮上面Text为暂停时,则点击button的Text改为播放,且利用Ctlcontrols的play()方法。
- 播放操作如上面第三点
2.2上一曲,下一曲
- 设置一个count变量用来存放当前选定的歌曲下标。
2.上一曲: count - -;判断count是否小于0,如果小于0则让count = listbox.Items.Count - 1;
下一曲:则count++,判断count是否超过listbox的已有项,如果是则count = 0;
2.3 导入音乐文件
- 设置一个button按钮用来向listbox中导入新的歌曲。
- 使用c#的OpenFileDialog类来选择要导入的音乐
- 导入音乐也是先添加进存放歌曲路径的list集合中再添加到listbox中
2.4 右键删除指定音乐文件
- 给listbox条件一个右键菜单(ContextMenuStrip)里面写上删除按钮
- 获取listbox中需要删除的歌曲数量设置一个for循环逐步删除已经选定的歌曲
- 删除歌曲时要先删集合再删列表
3. 歌词显示功能
- 歌词显示功能模块中需要用到Timer定时器
- 先找到是否存在对应歌词的lrc文件
- 将lrc的歌词通过String.Split()分成时间和歌词两部分
- 将lrc文件的每行分割为时间和歌词后分别存入不同的集合中(下标和歌曲的下标一一对应)
- 建立一个for循环,循环遍历每一句歌词的时间。如果当前歌曲播放时间在timeList[i]和timeList[i+1]之间,则将当前行歌词lrcList[i]中的内容读入显示歌词的label标签中
4.编码中碰到的一些类和方法
4.1 openfileDialog组件介绍
- 这是一个弹出文件对话款的类
- InitialDirectory属性是设置文件对话框打开的默认路径
- Filter属性是过滤要选择的文件类型
- Multiselect属性是表示是否可以选择多个文件
- FileName属性是返回选中的文件路径,如果是多个文件则用FileNames
4.2 ListBox组件
1.listbox是列表框控件
2.add是给listbox添加内容,remove at是移除内容
4.3 String类的一些方法
- substring
- substring(int a,int b)返回字符串开始索引(包括)到结束索引(不包括)之间的字符串
- 例如
- String.Split
- 用多个字符来分隔字符串,但是分隔的字符串不包括分隔字符
- 例如
4.3 File类介绍
1.Exists方法:传递一个文件的路径,判断指定文件是否存在