1.音乐播放器的功能
提供基本的音乐播放器功能,包括选择、播放、暂停、调节音量和下载音乐文件等功能,能够处理不同的音频格式
2.基本实现思路
使用C#中的控件来实现,包括button、listbox、Windows Media Player等。
3.代码实现
(1)定义两个实例变量files和localmusiclist,files存储用户选择的文件路径数组,localmusiclist存储本地音乐文件的路径
string[] files;
List<string> localmusiclist = new List<string> { };
(2)定义一个musicplay方法用来负责使用Windows Media Player控件 (axWindowsMediaPlayer1
) 播放音乐文件,同时在尝试播放之前验证文件是否存在,使用 Path.GetExtension(filename)
判断文件类型并处理不同格式(如 mp3
、ogg
等)
private void musicplay(string filename)
{
try
{
// 设置URL属性前检查文件是否存在
if (!File.Exists(filename))
{
throw new FileNotFoundException("文件不存在。", filename);
}
// 尝试设置Windows Media Player的URL
axWindowsMediaPlayer1.URL = filename;
// 获取文件扩展名
string extension = Path.GetExtension(filename).ToLower();
// 根据文件扩展名决定播放或输出信息
switch (extension)
{
case ".ogg":
Console.WriteLine("这是.ogg文件");
// 注意:Windows Media Player不支持.ogg格式,需要额外的逻辑来处理这种情况
break;
case ".mp3":
// 尝试播放MP3文件
axWindowsMediaPlayer1.Ctlcontrols.play();
break;
default:
Console.WriteLine("无法识别的文件格式");
break;
}
}
catch (FileNotFoundException ex)
{
// 处理文件未找到异常
MessageBox.Show($"文件未找到:{ex.FileName}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (COMException ex) // 假设axWindowsMediaPlayer1抛出的是COMException,但具体取决于其实现
{
// 处理COM组件异常,例如Windows Media Player控件相关的问题
MessageBox.Show($"Windows Media Player发生错误:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (Exception ex) // 捕获其他所有异常
{
// 处理其他未知异常
MessageBox.Show($"发生未知错误:{ex.Message}", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
(3)使用一个button用来处理用户点击按钮 (button1
) 以选择音乐文件(支持 mp3
、flac
、wav
),使用 OpenFileDialog
对话框,清空并更新 listBox1
显示选定的文件名,将选定的文件路径添加到 localmusiclist
中。
private void button1_Cli