使用c#实现简单的音乐播放器

一、功能需求

  1. 播放MP3文件:可播放MP3文件
  2. 播放OGG文件:可播放OGG文件
  3. 用户界面:一个简单的窗口,包含播放和暂停按钮及文件选择功能
  4. 异常处理:程序能处理可能处理可能出现的异常,如文件不存在、文件读取错误等
  5. 兼容性:确保代码能在多个c#版本上运行

二、设计思路分析

  • 架构选择

    考虑到需求中的界面友好和跨版本兼容性,我们可以选择选择Windows Forms作为开发平台,Windows Forms提供了一个简单而强大的方法来创建桌面应用程序,并且与C#高度兼容,在开发过程,我们选择.NETFramework 4.8.0进行程序设计。

  • 设计思路

    1. 界面设计: 使用Windows Forms工具箱中的控件如按钮、标签和文件对话框构建用户界面。
    2. 功能编码: 使用OpenFileDialog允许用户选择音频文件。 根据文件扩展名调用相应的播放器对象进行播放。 播放控制,包括开始、暂停和停止。
    3. 异常处理: 捕获并响应各种可能的运行时错误,如文件读取失败、文件格式不支持等,为用户提供清晰的错误信息。
  • 难点分析

    1. 文件格式支持: 处理多种音频格式(MP3,OGG等)要求使用不同的库,这可能导致代码复杂度增加。
    2. 异常处理: 音频文件的播放中可能遇到多种异常情况,如文件损坏、编解码器不支持等。

三、窗体设计

按照需求设计窗体,并进行一定的美化

image.png

  • Label:展示当前播放的歌曲
  • Listbox:展示歌曲列表
  • AxWindowsMediaPlayer:播放常规音乐
  • Button:选择歌曲文件、停止播放、下一曲
  • TraceBarl:用于音量控制

四、代码实现

  1. 头文件引入

    using AxWMPLib;
    using NAudio.Vorbis;
    using NAudio.Wave;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Reflection.Emit;
    using System.Text;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using static System.Windows.Forms.VisualStyles.VisualStyleElement;
    
  2. 类成员变量定义

    List<string> localmusiclist = new List<string> { };
    private WaveOutEvent waveOut = new WaveOutEvent();
    private VorbisWaveReader currentVorbisReader;
    

    在类中,localmusiclist在音乐播放时用来追踪和管理用户加载的音乐文件集合,waveOut用于播放ogg文件,currentVorbisReader为当前播放ogg文件的状态

  3. 按钮控件

    • 歌曲文件选择

      private void button1_Click(object sender, EventArgs e)
      {
          string[] files = { };
      
      
          openFileDialog1.Filter = "选择音频|*.mp3;*.flac;*.wav;*.ogg";
          //同时打开多个文件
          openFileDialog1.Multiselect = true;
      
          if (openFileDialog1.ShowDialog()
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值