12

我正在尝试从麦克风(或线路输入)录制音频数据,然后使用 C# 再次重播。

关于如何实现这一目标的任何建议?

4

4 回答 4

14

查看使用NAudio的开源.NET Voice Recorder项目。Coding4Fun 上有一篇文章解释了它是如何工作的。

于 2010-05-18T08:12:29.770 回答
2

请参阅控制台和多线程录制和回放

class Program
{

    static void Main(string[] args)
    {
        rex.Data += new RecorderEx.DataEventHandler(rex_Data);
        rex.Open += new EventHandler(rex_Open);
        rex.Close += new EventHandler(rex_Close);
        rex.Format = pcmFormat;
        rex.StartRecord();
        Console.WriteLine("Please press enter to exit!");
        Console.ReadLine();
        rex.StopRecord();
    }

    static RecorderEx rex = new RecorderEx(true);
    static PlayerEx play = new PlayerEx(true);
    static IntPtr pcmFormat = AudioCompressionManager.GetPcmFormat(1, 16, 44100);

    static void rex_Open(object sender, EventArgs e)
    {
        play.OpenPlayer(pcmFormat);
        play.StartPlay();
    }

    static void rex_Close(object sender, EventArgs e)
    {
        play.ClosePlayer();
    }

    static void rex_Data(object sender, DataEventArgs e)
    {
        byte[] data = e.Data;
        play.AddData(data);
    }
}
于 2014-02-02T12:32:25.093 回答
0

NAudio 的实时链接。

https://github.com/naudio/NAudio

它以 NuGet 包的形式提供

输出设备的相关资料:

https://github.com/naudio/NAudio/blob/master/Docs/OutputDeviceTypes.md

请记住常见问题解答中的以下性能:

“.NET 性能对于音频来说是否足够好?

虽然 .NET 无法与非托管语言竞争非常低延迟的音频工作,但它的性能仍然比许多人预期的要好。在相当普通的 PC 上,您可以轻松地将多个 WAV 文件混合在一起,包括通过各种效果和编解码器传递它们,以大约 50 毫秒的延迟播放无故障。”

于 2022-02-03T22:24:50.927 回答
0

不能评论,没有足够的代表,但我想让其他作者知道他的链接都死了。

于 2022-01-27T01:50:11.197 回答