c#简易音乐播放器制作(media)

c#mediaAPI

这里我将会给大家讲讲关于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

若有什么疑问,请在评论区下方回复,谢谢

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值