用C#写一个音乐播放器
时间: 2023-08-10 08:21:15 浏览: 155
好的,下面是一个用C#实现的简单音乐播放器:
```csharp
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;
using WMPLib;
namespace MusicPlayer
{
public partial class Form1 : Form
{
// 创建Windows Media Player对象
private WindowsMediaPlayer player;
public Form1()
{
InitializeComponent();
// 初始化Windows Media Player
player = new WindowsMediaPlayer();
// 设置播放器属性
player.settings.autoStart = false;
player.settings.volume = 50;
player.PlayStateChange += new _WMPOCXEvents_PlayStateChangeEventHandler(player_PlayStateChange);
// 加载音乐列表
LoadMusicList();
}
// 加载音乐列表
private void LoadMusicList()
{
// 清空原有列表
listBox1.Items.Clear();
// 获取音乐文件夹路径
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyMusic);
// 遍历音乐文件夹下的所有音乐文件
foreach (string file in Directory.GetFiles(path, "*.mp3"))
{
// 添加到列表中
listBox1.Items.Add(Path.GetFileName(file));
}
}
// 播放音乐
private void PlayMusic(string path)
{
// 设置播放器的URL
player.URL = path;
// 开始播放
player.controls.play();
// 更新状态栏
toolStripStatusLabel1.Text = "正在播放:" + Path.GetFileName(path);
}
// 播放按钮的点击事件
private void button1_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex >= 0)
{
// 获取选中项的完整路径
string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyMusic), listBox1.SelectedItem.ToString());
// 播放音乐
PlayMusic(path);
}
}
// 暂停按钮的点击事件
private void button2_Click(object sender, EventArgs e)
{
player.controls.pause();
}
// 停止按钮的点击事件
private void button3_Click(object sender, EventArgs e)
{
player.controls.stop();
}
// 列表框的选中项改变事件
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// 如果没有选中项,则禁用播放按钮
if (listBox1.SelectedIndex < 0)
{
button1.Enabled = false;
}
else
{
button1.Enabled = true;
}
}
// 播放状态改变事件
private void player_PlayStateChange(int NewState)
{
// 如果播放完毕,则更新状态栏
if ((WMPPlayState)NewState == WMPPlayState.wmppsMediaEnded)
{
toolStripStatusLabel1.Text = "播放完毕";
}
}
}
}
```
这个程序使用了Windows Media Player对象来实现音乐的播放、暂停和停止功能。它还可以从Windows音乐文件夹中自动加载所有MP3文件,并将它们添加到列表框中。当用户选择一个文件并点击“播放”按钮时,程序将使用Windows Media Player对象播放选定的音乐文件。程序还会更新状态栏以显示当前播放的音乐文件。