如何播放声音文件

使用C#,如何播放(暂停,转发……)声音文件(mp3,ogg)? 该文件可以位于硬盘上,也可以位于Internet上。

那里有没有可以让我轻松工作的图书馆或class级?

如果您不介意在项目中包含Microsoft.VisualBasic.dll ,可以这样做:

var audio = new Microsoft.VisualBasic.Devices.Audio(); audio.Play("some file path"); 

如果你想做更复杂的事情,我所知道的最简单的方法是使用Windows Media Player API 。 您添加DLL,然后使用它。 API有点笨重,但确实有效; 我用它来制作我自己的音乐播放器包装Windows Media Player供个人使用。 以下是一些有用的链接,可帮助您入门:

使用ASP .NET 2.0构建Web站点以导航您的音乐库

Windows Media对象模型

让音乐播放!

编辑:

自从我写这篇文章以来,如果您不介意在代码中包含WPF类,我会找到一种更简单的方法。 WPF(.NET 3.0和转发版)有一个MediaPlayer类,它是Windows Media Player的包装器。 这意味着您不必编写自己的包装器,这很好,因为如上所述,WMP API相当笨重且难以使用。

我会推荐BASS图书馆 。 它可以播放基于文件的音乐文件和流媒体内容。 还有一个.NET包装器可用。

Alvas.Audio具有RecordPlayer类,具有以下可能性:

  public static void TestRecordPlayer() { RecordPlayer rp = new RecordPlayer(); rp.PropertyChanged += new PropertyChangedEventHandler(rp_PropertyChanged); rp.Open(new Mp3Reader(File.OpenRead("in.mp3"))); rp.Play(); rp.Forward(1000); rp.Pause(); } static void rp_PropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case RecordPlayer.StateProperty: RecordPlayer rp = ((RecordPlayer)sender); if (rp.State == DeviceState.Stopped) { rp.Close(); } break; } } 

使用PlaySound API调用

有媒体播放器控制 – 基本上是媒体播放器使用的。 你可以把它放在你的程序中,你可以使用一个API来控制它。 我认为这是最好的快速解决方案。