7

使用 C#,我如何播放(暂停、转发...)声音文件(mp3、ogg)?该文件可能在硬盘上,也可能在互联网上。

是否有任何图书馆或类可以减轻我的工作?

4

5 回答 5

7

如果你不介意在你的项目中包含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 构建网站以导航您的音乐库

Windows 媒体对象模型

让音乐播放!

编辑:

自从我写了这个,我找到了一个更简单的方法,如果你不介意在你的代码中包含 WPF 类。WPF(.NET 3.0 及更高版本)有一个MediaPlayer类,它是 Windows Media Player 的包装器。这意味着您不必编写自己的包装器,这很好,因为正如我上面提到的,WMP API 相当笨重且难以使用。

于 2008-09-24T20:27:51.037 回答
4

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

于 2008-09-24T20:31:17.427 回答
2

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;
            }
        }
于 2014-02-12T12:12:44.930 回答
0

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

于 2008-09-24T20:36:38.117 回答
0

使用PlaySound API 调用

于 2008-09-24T20:20:15.737 回答