3

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

4

3 回答 3

4

只需尝试使用 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 函数

命令列表MSDN:命令字符串

于 2016-08-04T15:25:29.160 回答
3

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

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

于 2012-06-05T08:47:53.803 回答
2

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

访问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 链接

于 2012-06-05T08:45:21.700 回答