使用 C#,我如何播放(暂停、转发...)声音文件(mp3、ogg)?该文件可能在硬盘上,也可能在互联网上。
是否有任何图书馆或类可以减轻我的工作?
如果你不介意在你的项目中包含Microsoft.VisualBasic.dll,你可以这样做:
var audio = new Microsoft.VisualBasic.Devices.Audio();
audio.Play("some file path");
如果你想做更复杂的事情,我知道的最简单的方法是使用Windows Media Player API。您添加 DLL,然后使用它。API 有点笨拙,但确实有效;我用它来制作我自己的围绕 Windows Media Player 的音乐播放器包装器以供个人使用。以下是一些帮助您入门的有用链接:
编辑:
自从我写了这个,我找到了一个更简单的方法,如果你不介意在你的代码中包含 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;
}
}
有一个媒体播放器控件——基本上是媒体播放器使用的。你可以把它放在你的程序中,并且有一个 API 可以用来控制它。我认为这是最好的快速解决方案。