音乐播放器目录
要求
要求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)