使用 C# 程序从 PC 麦克风获取音频

Posted

技术标签:

【中文标题】使用 C# 程序从 PC 麦克风获取音频【英文标题】:Get Audio from PC microphone with a C# program 【发布时间】:2012-06-05 08:03:38 【问题描述】:

我需要使用 C# 程序从装有 Windows 7 的 PC 捕获音频。我需要得到所有频率直到 20 khz。不知道有没有办法?

【问题讨论】:

我会开始购买能够“听到”高达 20kHz 频率的麦克风,然后在谷歌上搜索“c#record audio” 【参考方案1】:

尝试使用 winmm.dll api 函数。这是一个简单的例子。

    using System;
    using System.Runtime.InteropServices;
    using System.Threading;

    namespace MicrophoneTest
    
        class Program
        

            [DllImport("winmm.dll")]
            private static extern int mciSendString(string MciComando, string MciRetorno, int MciRetornoLeng, int CallBack);

            static void Main(string[] args)
            
                //create Test alias
                mciSendString("open new type waveaudio alias Test", null, 0, 0);

                //start
                mciSendString("record Test", null, 0, 0);

                Thread.Sleep(3000);

                //pause
                mciSendString("pause Test", null, 0, 0);

                //save
                mciSendString("save Test " + "test.wav", null, 0, 0);
                mciSendString("close Test", null, 0, 0);

                //press any key
                Console.ReadKey();
            
        
    

函数签名MSDN: mciSendString function.

命令列表MSDN: Command Strings。

【讨论】:

【参考方案2】:

您可以在 GitHub https://github.com/naudio/NAudio 上查看 NAudio 库。

可以在这里找到一个使用 NAudio 录制麦克风输入的好项目 http://voicerecorder.codeplex.com/。

【讨论】:

【参考方案3】:

我找到了一些可以帮助你的链接

访问http://www.codeproject.com/Articles/2615/DirectShow-NET? 还是http://www.codeproject.com/Articles/4889/A-full-duplex-audio-player-in-C-using-the-waveIn-w?

或者您可以使用 Matalab 并使用 Liydos dll 将其与 .Net 链接

【讨论】:

以上是关于使用 C# 程序从 PC 麦克风获取音频的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Macbook 麦克风获取音频数据?

C# 中的麦克风到扬声器音频流

适用于 macOS 的 Xcode 应用程序。这就是我设置从 USB 麦克风输入获取音频的方式。一年前工作,现在不行。为啥

如何捕获麦克风缓冲区

从麦克风获取音频[关闭]

如何从麦克风实时获取原始音频帧或从 iOS 中保存的音频文件获取原始音频帧?