NAudio 作者:
Sound Code - Mark Heath's Blog NAudio
安装NAudio:

声明变量:
private WaveIn cap;
private WaveOut waveOut;
private BufferedWaveProvider bwp;

load事件里,初始化:
cap = new WaveIn(); // cap, capture
waveOut = new WaveOut();
//cap.DataAvailable += (s, args) => Console.WriteLine($"数据长度:{args.Buffer.Length};0:{args.Buffer[0]};1:{args.Buffer[1]};2:{args.Buffer[2]};3:{args.Buffer[3]}"); // 订阅事件
bwp = new BufferedWaveProvider(cap.WaveFormat);
bwp.DiscardOnBufferOverflow = true;
cap.DataAvailable += Cap_DataAvailable;
cap.StartRecording(); // 开始录制
waveOut.Init(bwp);
waveOut.Play();

private void Cap_DataAvailable(object sender, WaveInEventArgs e)
{
//Console.WriteLine($"数据长度:{e.Buffer.Length};0:{e.Buffer[0]};1:{e.Buffer[1]};2:{e.Buffer[2]};3:{e.Buffer[3]}");
// 将double[]转换为byte[]并写入到MemoryStream中
if (waveOut != null)
{
bwp.AddSamples(e.Buffer, 0, e.BytesRecorded);
}
}

681

被折叠的 条评论
为什么被折叠?



