Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NET跨平台音频库_C#_.net_Audio_Microphone - Fatal编程技术网

C# NET跨平台音频库

C# NET跨平台音频库,c#,.net,audio,microphone,C#,.net,Audio,Microphone,要求: 实时从麦克风获取原始输入 实时播放原始输入 我似乎从谷歌上找不到什么。有人用过这样的东西吗 我使用的是C#,它需要在Windows、Linux和Mac上工作,后两种是Mono 我可能愿意使用p/invoke,但我对本机代码不是特别熟悉,这将非常困难。如果有人能推荐一个本地库,我会试一试。BASS.NET应该是跨平台的mono,你可以用它来做你想做的事情,如下面的答案所示: 是一种新的.NET跨平台包装器,用于具有MIT许可证的un4seen Bass库。它不仅是包装器,还具有目标AP

要求:

  • 实时从麦克风获取原始输入
  • 实时播放原始输入
我似乎从谷歌上找不到什么。有人用过这样的东西吗

我使用的是C#,它需要在Windows、Linux和Mac上工作,后两种是Mono


我可能愿意使用p/invoke,但我对本机代码不是特别熟悉,这将非常困难。如果有人能推荐一个本地库,我会试一试。

BASS.NET应该是跨平台的mono,你可以用它来做你想做的事情,如下面的答案所示:

是一种新的.NET跨平台包装器,用于具有MIT许可证的un4seen Bass库。它不仅是包装器,还具有目标API。看看这篇博文

下面是使用包装器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.
    }
}
以下是使用objective 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();
        }
    }
}

我打赌这篇文章很快就会被关闭,因为stackoverflow的一些人倾向于认为这类文章是无用的,他们总是关闭这些文章,但我认为这很重要。我会投赞成票。C#SDL可能会工作,因为SDL可以跨mac windows和linux移植。不确定C#包装器是否适用于mono。我没有看到麦克风的支持。不过,谢谢。这是一个非常严格的许可证。我会记住这一点,但我更喜欢另一种选择。我为每个API添加了示例代码。不幸的是,这篇博文已经过时了。我建议使用Bass.Net,因为几乎没有任何关于ManagedBass的文档,而且由于依赖关系不明确,我无法运行它。