用C#实现音乐文件播放

1.代码要求

要求1:

1. 程序应能够读取MP3文件,并播放其中的音频。

2. 程序应能够处理可能出现的异常,如文件不存在、文件读取错误等。

3. 程序应具有良好的用户界面,方便用户进行操作。

4. 程序应具有良好的兼容性,能在不同版本的C#中正常运行。

要求2:

1. 程序应能够播放ogg文件。

2. 程序应能够处理可能出现的异常,如文件不存在、文件读取错误等。

3. 程序应具有良好的用户界面,方便用户进行操作。

4. 程序应具有良好的兼容性,能在不同版本的C#中正常运行。

2.代码实现

using System;
using System.Windows.Forms;
using WMPLib;  // Windows Media Player 控件
using NAudio.Vorbis;  // NAudio Vorbis 控件

namespace MusicPlayerApp
{
    public partial class Form1 : Form
    {
        private WindowsMediaPlayer mediaPlayer; // Windows Media Player 控件
        private VorbisWaveReader vorbisReader; // Vorbis 控件

        public Form1()
        {
            InitializeComponent();
        }

        private void btnBrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "MP3 Files (*.mp3)|*.mp3|OGG Files (*.ogg)|*.ogg"; // 支持的文件类型

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string filePath = openFileDialog.FileName;
                txtFilePath.Text = filePath;

                // 根据文件类型选择合适的播放方式
                if (filePath.EndsWith(".mp3"))
                {
                    PlayMP3(filePath);
                }
                else if (filePath.EndsWith(".ogg"))
                {
                    PlayOGG(filePath);
                }
                else
                {
                    MessageBox.Show("Unsupported file format!"); // 不支持的文件格式
                }
            }
        }

        private void PlayMP3(string filePath)
        {
            try
            {
                if (mediaPlayer == null)
                {
                    mediaPlayer = new WindowsMediaPlayer();
                }
                mediaPlayer.URL = filePath;
                mediaPlayer.controls.play();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error playing MP3 file: " + ex.Message); // 播放MP3文件时出错
            }
        }

        private void PlayOGG(string filePath)
        {
            try
            {
                if (vorbisReader == null)
                {
                    vorbisReader = new VorbisWaveReader(filePath);
                }
                if (mediaPlayer != null)
                {
                    mediaPlayer.close();
                }
                mediaPlayer = new WindowsMediaPlayer();
                mediaPlayer.URL = filePath;
                mediaPlayer.controls.play();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error playing OGG file: " + ex.Message); // 播放OGG文件时出错
            }
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            if (mediaPlayer != null)
            {
                mediaPlayer.controls.stop();
            }
        }
    }
}

3.总结

功能实现:

程序能够读取 MP3 文件并使用 Windows Media Player 控件播放其中的音频。

程序能够读取 OGG 文件并使用 NAudio.Vorbis 控件播放其中的音频。

提供了浏览文件的功能,用户可以选择要播放的音乐文件。

提供了播放和停止按钮,用户可以控制音乐的播放和停止。

异常处理:

程序对可能出现的异常进行了处理,如文件不存在、文件读取错误等。

异常信息会以消息框的形式提示用户,方便用户了解并处理异常情况。

用户界面:

程序提供了简单的用户界面,包括文件路径文本框、浏览文件按钮、播放按钮和停止按钮。

用户可以通过界面方便地选择音乐文件并控制音乐的播放和停止。

兼容性:

程序使用了 Windows Media Player 控件和 NAudio.Vorbis 控件,这两个控件能够在不同版本的 C# 中正常运行。

代码的编写遵循了 C# 的基本语法和常见的编程规范,提高了程序的兼容性。

提示和依赖:

程序提供了使用 Windows Media Player 控件和 NAudio.Vorbis 控件的提示,帮助用户理解程序的实现原理。

对于不同的音频文件类型,程序使用了不同的控件进行播放,提高了程序的灵活性和兼容性。

综上所述,该程序实现了音乐文件播放的功能,并且具有良好的异常处理、用户界面和兼容性,能够满足用户的基本需求。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值