需求


我们平时工作休闲之余往往会选择听一些歌曲休闲。但我们是否想过这些音乐播放器是怎么做的呢?你是否想动手试一试呢?

功能


实现音乐播放器的基本功能,可以选择文件播放,也可以拖拉文件播放。实现音乐播放器的常规功能。
本项目中,使用的是.wav文件。


watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NjI5MTA5,size_16,color_FFFFFF,t_70#pic_center.jpg
实现
首先。我们需要在VS中建立一个Windows窗体应用工程,自主进行页面设计。
之后进行代码的编写。我将主要的功能代码放在下面,大家可以自主运行。
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;        //Path类用到
  • using System.Media;    //SoundPlayer命名空间
  • namespace player
  • {
  •     public partial class Form1 : Form
  •     {
  •         public Form1()
  •         {
  •             InitializeComponent();
  •         }
  •         List<string> listsongs = new List<string>();   //用来存储音乐文件的全路径
  •         private void button1_Click(object sender, EventArgs e)
  •         {
  •             OpenFileDialog ofd = new OpenFileDialog();
  •             ofd.Title = "请选择音乐文件";      //打开对话框的标题
  •             ofd.InitialDirectory = @"F:\music";    //设置打开对话框的初始设置目录
  •             ofd.Multiselect = true; //设置多选
  •             ofd.Filter = @"音乐文件|*.mp3||*.wav|所有文件|*.*";    //设置文件格式筛选
  •             ofd.ShowDialog();   //显示打开对话框
  •             string[] pa_th = ofd.FileNames;       //获得在文件夹中选择的所有文件的全路径
  •             for (int i = 0; i < pa_th.Length;i++ )
  •             {
  •                 listBox1.Items.Add(Path.GetFileName(pa_th[i]));  //将音乐文件的文件名加载到listBox中
  •                 listsongs.Add(pa_th[i]);    //将音乐文件的全路径存储到泛型集合中
  •             }
  •         }
  •         SoundPlayer sp = new SoundPlayer();
  •         private void listBox1_DoubleClick(object sender, EventArgs e)
  •         {
  •             SoundPlayer sp = new SoundPlayer();
  •             sp.SoundLocation = listsongs[listBox1.SelectedIndex];
  •             sp.Play();
  •         }
  •         private void button2_Click(object sender, EventArgs e)
  •         {
  •             int index = listBox1.SelectedIndex; //获得当前选中歌曲的索引
  •             index--;
  •             if (index <0)
  •             {
  •                 index = listBox1.Items.Count-1;
  •             }
  •             listBox1.SelectedIndex = index; //将改变后的索引重新赋值给我当前选中项的索引
  •             sp.SoundLocation = listsongs[index];
  •             sp.Play();
  •         }
  •         private void button3_Click(object sender, EventArgs e)
  •         {
  •               int index = listBox1.SelectedIndex; //获得当前选中歌曲的索引
  •             index++;
  •             if (index==listBox1.Items.Count)
  •             {
  •                 index = 0;
  •             }
  •             listBox1.SelectedIndex = index; //将改变后的索引重新赋值给我当前选中项的索引
  •             sp.SoundLocation = listsongs[index];
  •             sp.Play();
  •         }
  •         private void Form1_DragEnter(object sender, DragEventArgs e)
  •         {
  •             if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Link;
  •             else e.Effect = DragDropEffects.None;
  •         }
  •         private void Form1_DragDrop(object sender, DragEventArgs e)
  •         {
  •             string[] filePath = (string[])e.Data.GetData(DataFormats.FileDrop);
  •             foreach (string file in filePath)
  •             {
  •                 //file就是单个文件路径
  •                 SoundPlayer sp = new SoundPlayer();
  •                 sp.SoundLocation = file;
  •                 sp.Play();
  •               //  MessageBox.Show(file);
  •             }
  •         }
  •         private void button4_Click(object sender, EventArgs e)
  •         {
  •             SoundPlayer sp = new SoundPlayer();
  •             if (listBox1.SelectedIndex > 0)
  •                 sp.SoundLocation = listsongs[listBox1.SelectedIndex];
  •             sp.Play();
  •         }
  •         private void groupBox2_Enter(object sender, EventArgs e)
  •         {
  •         }
  •         private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
  •         {
  •         }
  •         private void Form1_Load(object sender, EventArgs e)
  •         {
  •         }
  •     }
  • }
  • 复制代码
    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NjI5MTA5,size_16,color_FFFFFF,t_70#pic_center.jpg