C#WindowsForm项目,音乐播放器,播放mp3和ogg格式音乐

音乐播放器目录

要求

要求1:

要求2:

项目展示

​编辑

详细步骤

1.创建项目

2.安装Naudio.Vorbis第三方库

3.播放实现

总结 


要求
 

要求1:

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

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

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

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

要求2:

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

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

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

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


项目展示



 


详细步骤

1.创建项目

使用环境:VS 2022的.NET framework 4.7.2的框架

要想使音乐播放之前,需要选择我们想要播放的歌曲,先从工具箱里创建一个button按钮,来实现视图上的音乐播放,然后创建一个openFileDialog来选择音乐文件。用字符串数组files来存放输入的文件。openFileDialog1.Filter来提示用户应输入.mp3、.flac、.wav的文件。
 

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "打开音频|*.ogg";

string oggFilePath = "";

if (openFileDialog.ShowDialog() == DialogResult.OK)
{
    oggFilePath = openFileDialog.FileName;
}

2.安装Naudio.Vorbis第三方库

在播放音乐之前,我们还需要安装Naudio.Vorbis第三方库实现音乐播放。
在Nuget程序包里搜索Naudio.Vorbis并安装。


在文件开头调用第三方库

using NAudio;
using NAudio.Wave;
using NAudio.Vorbis;

3.播放实现

使用VorbisWaveReader来读取.ogg文件。注意,这里需要确保已经添加了支持.ogg格式的NAudio扩展库(如NAudio.Vorbis)。
创建一个WaveOutEvent实例来播放音频。WaveOutEvent是NAudio中用于播放音频的类,它使用事件驱动的方式来处理音频播放,这在多线程环境中更为安全。
使用waveOut.Init(vorbisReader)来初始化WaveOutEvent实例,并设置其输入为从vorbisReader读取的音频流。
调用waveOut.Play()开始播放音频。
使用一个while循环来等待音频播放完成。这里使用Thread.Sleep(100)来避免死循环,但它也导致程序在这段时间内处于阻塞状态,无法响应其他事件或用户输入。这通常不是最佳实践,因为它会降低用户体验。更好的方法是使用事件或回调来处理播放完成的情况。
播放完成后,调用waveOut.Stop()(尽管在大多数情况下,当音频播放完毕时,WaveOutEvent会自动停止),然后释放waveOut和vorbisReader的资源。

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "打开音频|*.ogg";

string oggFilePath = "";

if (openFileDialog.ShowDialog() == DialogResult.OK)
{
    oggFilePath = openFileDialog.FileName;
}

using (var vorbisReader = new VorbisWaveReader(oggFilePath))
{
    // 创建一个WaveOutEvent实例来播放音频  
    using (var waveOut = new WaveOutEvent())
    {
        // 初始化WaveOutEvent实例,并设置其输入为VorbisFileReader  
        waveOut.Init(vorbisReader);

        // 开始播放音频  
        waveOut.Play();

        // 等待播放完成,或者可以添加其他逻辑,比如响应播放事件  
        while (waveOut.PlaybackState == PlaybackState.Playing)
        {
            System.Threading.Thread.Sleep(100); // 等待一段时间,避免死循环  
        }

        // 播放完成后,停止并释放WaveOutEvent资源  
        waveOut.Stop();
        waveOut.Dispose();
    }

    // 释放VorbisFileReader资源  
    vorbisReader.Dispose();

即可实现对Ogg格式文件的音乐播放功能。


 

总结 
 

这个播放器基于 Windows Forms,使用了 NAudio 库来处理音频文件的播放和控制。通过 UI 按钮和交互,用户可以管理和播放音频文件。总体而言,这个音乐播放器可以添加多种格式的音乐文件,并支持基本的播放、停止、切换功能,同时还能播放特定的 .ogg 格式音乐文件。 

clown地址:Editing Windows-/Program.cs at main · Cherishclears/Windows- (github.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值