适用于.NET的跨平台音频库

时间:2013-03-30 02:12:49

标签: c# .net audio microphone

要求:

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

我似乎从谷歌搜索中找不到多少。有没有人用过这样的东西?

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

我可能愿意使用p / invoke,但我对本机代码并不是特别熟悉,而且很难。如果有人可以推荐本地图书馆,我会试一试。

2 个答案:

答案 0 :(得分:3)

ManagedBass是具有MIT许可证的un4seen Bass库的新.NET跨平台包装器。它不仅是包装器 - 它还具有客观的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 :(得分:1)

BASS.NET应该是单声道的跨平台,你可以做你想要的使用它,就像在这个答案中所说:https://stackoverflow.com/a/6796571/2208058

http://bass.radio42.com/