这里我将会给大家讲讲关于media制作音乐播放器的实例
首先,创造一个界面(c#的自带界面)↓
(排版可以自行定义)
接下来就是代码部分↓
1.导入包
using System.Media;
2.声明几个共有变量并实例化media
public List<string> pathget = new List<string>();//播放列表
public string play { get; set; }//播放器的状态:true播放中,false暂停中,noun没有队列
public bool loop { get; set; }//是否循环播放
SoundPlayer playsound = new SoundPlayer();//实例化
3.调用遍历文件夹的方法(方法出自https://blog.csdn.net/auccy/article/details/108725836)并微微地修改一下,顺便加上分割的方法
static List<string> Director(string dir)
{
List<string> path = new List<string>();
DirectoryInfo d = new DirectoryInfo(dir);
FileSystemInfo[] fsinfos = d.GetFileSystemInfos();
foreach (FileSystemInfo fsinfo in fsinfos)
{
if (fsinfo is DirectoryInfo)
{
Director(fsinfo.FullName);
}
else
{
path.Add(fsinfo.FullName);
}
}
return path;
}
public static string sp(string get)
{
string[] li = get.Split('\\');
return li[li.Length - 1];
}
4.制作窗口初始化程序
private void Form1_Load(object sender, EventArgs e)
{
play = "false";
loop = false;
if (!Directory.Exists(@"music"))
{
Directory.CreateDirectory(@"music");//调用现有的库
}
this.listBox1.MouseDoubleClick += new MouseEventHandler(listBox1_MouseDoubleClick);//添加listbox双击事件
List<string> path = new List<string>();
path = Director(@"music");//遍历文件夹
pathget = path;
for(int i = 0; i< path.Count; i++)
{
listBox1.Items.Add(sp(path[i]));//添加到listbox里面
}
}
(刚开始调用时可能会报错,但是把代码写完就不会了)
5.写入双击listbox后的代码
void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if(play == "false")//如果正在听
{
playsound.Dispose();//释放资源
int index = this.listBox1.IndexFromPoint(e.Location);//定位到listbox双击到的位置
playsound.SoundLocation = pathget[index];//调用相对应下标的歌曲
int time = playsound.LoadTimeout;//检测用了多久(默认值为10000)
label3.Visible = true;
label3.Text = time + "毫秒";
playsound.Play();//开始播放
play = "true";
}
}
6.写入各个按钮的事件
private void button2_Click(object sender, EventArgs e)//停止播放
{
play = "false";
playsound.Stop();
}
private void button3_Click(object sender, EventArgs e)//释放资源
{
playsound.Stop();
playsound.Dispose();
play = "false";
}
private void button5_Click(object sender, EventArgs e)//重复循环
{
if (!loop)
{
playsound.PlayLooping();
}
}
这样一个播放器就完成了。
但是有几点要注意!!!
1.media只支持wav的文件格式,可以把在网上歌曲下载下来在转换即可
2.文中music的位置是在
这个里面,演示↓
演示——musicplay
若有什么疑问,请在评论区下方回复,谢谢