我需要使用 C# 程序从装有 Windows 7 的 PC 捕获音频。我需要得到所有频率直到 20 khz。你知道有没有办法做到这一点?
问问题
15763 次
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:命令字符串。
于 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 回答