一、前言
前段时间想用C#写一个音频播放器,找来找去找到一个音频开源库:CSCore,发现有挺多家网站采用了它的底层库,它支持的音频格式也挺全。
CSCore 是一个完全用 C# 编写的免费 .NET 音频库。 尽管它仍然是一个相当年轻的项目,但它提供了大量功能,例如播放或捕获音频、编码或解码许多不同的编解码器、效果等等。
CSCore 基于一个可扩展的架构,它允许您无需努力即可满足您的需求。 您可以构建音乐播放器、语音聊天、录音机等! 支持的平台:仅限 Windows、linux 和 mac 实验版(参见 https://github.com/filoe/cscore/tree/netstandard)。--摘自Github官网
参考了一下它的Demo,特此记录一下编写的过程。编写的时候可以参考它的在线文档。
二、编写
首先打开Visual Studio,打开项目-管理NuGet程序包,搜索CSCore并安装;
支持.NET Framework 4.0及以上,在.NET Core中导入会提示不兼容,不过好像也可以正常用。
先封装一个MusicPlayer类
namespace AudioPlayer
{
/// <summary>
/// 封装音频播放器
/// </summary>
public class MusicPlayer : Component
{
private ISoundOut _soundOut;
private IWaveSource _waveSource;
public event EventHandler<PlaybackStoppedEventArgs> PlaybackStopped;
/// <summary>
/// 获取播放器的播放状态
/// </summary>
public PlaybackState PlaybackState
{
get
{
if (_soundOut != null)
return _soundOut.PlaybackState;
return PlaybackState.Stopped;
}
}
/// <summary>
/// 目前播放音频的位置
/// </summary>
public TimeSpan Position
{