Nuget导包:
<PackageReference Include="NAudio" Version="2.1.0" />
引包
using NAudio.Wave;
var waveInEvent = new WaveInEvent();
waveInEvent.BufferMilliseconds = 20; // 指定每X毫秒采集一次
waveInEvent.WaveFormat = new WaveFormat(16000, 16, 1); // 16K, 16, 1,这里选择适合自己的参数
var wavName = $"Test_{
DateTime.UtcNow:MMdd_HH.mm.ss}.wav";
var writer = new WaveFileWriter(wavName, waveInEvent.WaveFormat);
waveInEvent.DataAvailable += (s, args) => writer.Write(args.Buffer, 0, args.BytesRecorded);
// 开始采集
waveInEvent.StartRecording();
// 这里做事情
// 结束做事情
// 结束采集
waveInEvent.StopRecording();
writer.Close();