跨平台的.NET音频库

12

需求:

  • 实时从麦克风获取原始输入
  • 在实时中播放该原始输入

我在谷歌上找不到太多相关信息。有人使用过类似的东西吗?

我正在使用C#,它需要在Windows、Linux和Mac上工作,后两者需要使用Mono。

我可能愿意使用p/invoke,但我对本地代码并不特别熟悉,这可能会很困难。如果有人可以建议一个本地库,我会尝试一下。


7
我打赌这篇帖子很快就会被关闭,因为一些Stack Overflow上的人有偏见认为这种帖子是无用的,他们总是关闭这些帖子,但我认为这很重要。我会点个赞。 - David
C# SDL可能可用,因为SDL在Mac、Windows和Linux上都是可移植的。不确定C#包装器是否与Mono兼容。http://cs-sdl.sourceforge.net - Lucas Holt
我没有看到麦克风支持。不过还是谢谢。 - Drew DeVault
2个回答

6

ManagedBass是一个新的.NET跨平台封装器,使用MIT许可证对un4seen Bass库进行封装。它不仅是封装器-还有面向对象的API。请看this博客文章。

这里是使用封装器API播放文件的示例:

using ManagedBass;

class Program
{
    static void Main()
    {
        Bass.Init(); // Initialize with default options.

        int handle = Bass.CreateStream("YOUR_FILE.mp3");

        Bass.ChannelPlay(handle); // Begin Playback.

        Console.ReadKey(); // Wait till user presses a Key.

        Bass.ChannelStop(handle); // Stop Playback.

        Bass.ChannelFree(handle); // Free the Stream.

        Bass.Free(); // Free the device.
    }
}

这是使用目标API的相同内容:

using ManagedBass;

class Program
{
    static void Main()
    {
        using (var Player = new MediaPlayer()) // Create a Player.
        {
            Player.Load("YOUR_FILE.mp3"); // Load a file.

            Player.Start(); // Begin Playback.

            Console.ReadKey();
        }
    }
}

1
我为每个API添加了示例代码。 - czesio
很遗憾,这篇博客文章已经过时了。我建议使用Bass.Net,因为ManagedBass几乎没有任何文档,并且由于依赖关系不清晰,我无法使其运行。 - Xan-Kun Clark-Davis

2

1
这是一个非常严格的许可证。我会记住这个,但我更喜欢另一种选择。 - Drew DeVault

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接