C#实现简单的音乐播放器

这篇博客详细介绍了如何利用C#编程语言创建一个基本的音乐播放器。内容涵盖从设计用户界面到实现音频文件的播放功能,包括C#中的多媒体处理库的使用和事件处理机制。
摘要由CSDN通过智能技术生成

在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Linq;
using System.Media;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 音乐播放器
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //SoundPlayer sound = new SoundPlayer();

        /// <summary>
        /// 全局变量,进度条的画布
        /// </summary>
        Graphics graphics;

        Bitmap Start = new Bitmap(20, 20);
        Bitmap Pause = new Bitmap(20, 20);
        Bitmap UpSong = new Bitmap(20, 20);
        Bitmap NextSong = new Bitmap(20, 20);
        private void Form1_Load(object sender, EventArgs e)
        {
            ///实例化进度条的画布
            graphics = panel1.CreateGraphics();
            ///实例化音量的画布
            yinLiang = panel2.CreateGraphics();
            axWindowsMediaPlayer1.settings.volume = 50;
            label4.Text = axWindowsMediaPlayer1.settings.volume.ToString();
            //括号中的内容是筛选器上的选项文字,|后面的是要选择的文件夹类型
            openFileDialog1.Filter = "(请选择音乐文件)|*.wav;*.mp3";
            openFileDialog2.Filter = "(请选择图片文件)|*.jpg;*.png;*.jpeg";

            #region 注释
            //找图片
            /通过文件夹对象来寻找图片
            //DirectoryInfo directory = new DirectoryInfo(paths);
            /返回当前文件目录下的文件列表
            //FileInfo[] imgInfo = directory.GetFiles();
            /遍历出所有的文件列表,并判断哪些是图片
            //foreach (var item in imgInfo)
            //{
            //    ///获取后缀名
            //    string kou = item.Extension;
            //    ///判断后缀名
            //    if (kou==".jpg"||kou==".png")
            //    {
            //        bgList.Add(item.Name);
            //    }
            //}
            #endregion

            pictureBox2.Image = Start;
            
        }

        /// <summary>
        /// 每次添加所有音乐路径
        /// </summary>
        string[] RoodList;
        /// <summary>
        /// 创建一个musicList集合用来装歌曲名称
        /// </summary>
        List<string> musicList = new List<string>();
        /// <summary>
        /// 装所有的音乐路径
        /// </summary>
        List<string> musicPath = new List<string>();

        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog()==DialogResult.OK)
            {
                //获取所有选中的文件的文件名(包含路径)
                RoodList = openFileDialog1.FileNames;
                for (int i = 0; i < RoodList.Length; i++)
                {
                    //获取选中文件的文件名
                    FileInfo info = new FileInfo(RoodList[i]);
                    bool b = false;
                    if (musicList.Count > 0)
                    {
                        b = musicList.Contains(info.Name);
                    }
                    if (b == false)
                    {
                        ///将歌曲添加至musicList集合中
                        musicList.Add(info.Name);
                        listBox1.Items.Add(info.Name);
                        musicPath.Add(info.FullName);
                    }
                }
                //给音乐控件添加播放列表
                //foreach (string s in RoodList)
                //{
                //    axWindowsMediaPlayer1.currentPlaylist.appendItem(axWindowsMediaPlayer1.newMedia(s));
                //}
            }
        }

        /// <summary>
        /// musicList中歌曲的索引
        /// </summary>
        int currentIndex = 0;
        private void listBox1_DoubleClick(object sender, EventArgs e)
        {
            //listbox中选中的项
            object o = listBox1.SelectedItem;
            //音乐加载的路径
            //sound.SoundLocation = path + "\\" + o;
            //sound.Play();
            currentIndex = musicList.IndexOf(o.ToString());
            PlayMusic(musicPath[currentIndex]);
            pictureBox2.Image = Pause;
        }

        string musicString = "未找到相
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace MyQQ2010 { public partial class MusicForm : Form { public MusicForm() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //打开文件夹选项 OpenFileDialog f = new OpenFileDialog(); //设置能够选中的多个选项 f.Multiselect = true; //弹出文件对话框 DialogResult result = f.ShowDialog(); if ( DialogResult.OK==result) { //获取选中的歌曲的路径 string[] music = f.FileNames; //将歌曲添加到ListBox中 foreach (string item in music) { this.lstMusic.Items.Add(item); } } } //双击播放歌曲 private void lstmusic2_DoubleClick(object sender, EventArgs e) { //获取选中的歌曲 string music = this.lstmusic2.SelectedItem.ToString(); //播放歌曲 Player.URL = music; } private void 添加到播放列表ToolStripMenuItem_Click_1(object sender, EventArgs e) { if (this.lstMusic.SelectedItems.Count == 0) { MessageBox.Show("请选中你要选中的歌曲"); return; } else { //获取选中的歌曲 string music = this.lstMusic.SelectedItem.ToString(); //把选中的歌曲移动到播放列表中 this.lstmusic2.Items.Add(music); //从lstmusic中移除 this.lstMusic.Items.Remove(music); } } private void 删除音乐ToolStripMenuItem_Click_1(object sender, EventArgs e) { if (this.lstMusic.SelectedItems.Count == 0) { MessageBox.Show("请选中你要删除的歌曲"); } else { //获取选中的歌曲 string music = this.lstMusic.SelectedItem.ToString(); //把选中的歌曲删除掉 this.lstMusic.Items.Remove(music); } } private void 从列表中移除ToolStripMenuItem_Click_1(object sender, EventArgs e) { if (this.lstmusic2.SelectedItems.Count == 0) { MessageBox.Show("请选中你要删除的歌曲"); } else { //获取选中的歌曲 string music = this.lstmusic2.SelectedItem.ToString(); //把选中的歌曲删除 this.lstmusic2.Items.Remove(music); } } private void MusicForm_Load_1(object sender, EventArgs e) { //播放顺序默认为列表播放 this.cboPlayOrder.SelectedIndex = 0; this.trm1.Start(); } private void trm1_Tick(object sender, EventArgs e) { //判断歌曲播放的顺序 if (Player.playState == WMPLib.WMPPlayState.wmppsStopped) { if (this.cboPlayOrder.Text == "列表播放") { if (this.lstmusic2.SelectedIndex < this.lstmusic2.Items.Count - 1) { this.lstmusic2.SelectedIndex++; this.lstMusic.Items.Add(this.lstmusic2.SelectedItem.ToString()); Player.URL = this.lstmusic2.SelectedItem.ToString(); } else { this.lstmusic2.SelectedIndex = 0; Player.URL = this.lstmusic2.SelectedItem.ToString(); } } else if (this.cboPlayOrder.Text == "随机播放") { Random r = new Random(); int index = r.Next(0, this.lstmusic2.Items.Count - 1); this.lstmusic2.SelectedIndex = index; string item = this.lstmusic2.SelectedItem.ToString(); this.lstMusic.Items.Add(item);//随机播放的歌曲也要在lbmusic2中显示 Player.URL = item; } else { int index = this.lstmusic2.SelectedIndex; Player.URL = this.lstmusic2.SelectedItem.ToString(); } } } } }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值