我目前正在做一个个人项目来创建 ac# 小程序,让我知道人们什么时候拍手大笑(我只需要知道音量峰值)?使用笔记本电脑内部麦克风或输入线(用于外部麦克风)。我不是什么专家,所以我想知道是否有人可以指导我如何使用 NAudio 来实现我的目标。
此致。
我目前正在做一个个人项目来创建 ac# 小程序,让我知道人们什么时候拍手大笑(我只需要知道音量峰值)?使用笔记本电脑内部麦克风或输入线(用于外部麦克风)。我不是什么专家,所以我想知道是否有人可以指导我如何使用 NAudio 来实现我的目标。
此致。
首先从 dll-files.com 下载最新版本的NAudio
然后将 NAudio 添加到您的项目参考中
然后在using
组中插入下面给出的代码:
using NAudio;
using NAudio.CoreAudioApi;
using NAudio.Wave;
添加上面给出的代码后,添加这个 void "For Mono Use" 或者如果你想要立体声,请往下
private void Mono_REC(ProgressBar pb)
{
MMDeviceEnumerator MDE = new MMDeviceEnumerator();
MMDevice MD = MDE.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Multimedia);
WaveIn mic = new WaveIn();
mic.StartRecording();
var AMI = MD.AudioMeterInformation;
pb.Value = AMI.MasterPeakValue * 100;
}
立体声
private void Stereo_REC(ProgressBar left, ProgressBar right)
{
MMDeviceEnumerator MDE = new MMDeviceEnumerator();
MMDevice MD = MDE.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Multimedia);
WaveIn mic = new WaveIn();
mic.StartRecording();
var AMI = MD.AudioMeterInformation;
left.Value = AMI.PeakValues[0] * 100;
right.Value = AMI.PeakValues[1] * 100;
}
如果mic.StartRecording();
在任何一个或两个空隙中都不起作用,则删除:
WaveIn mic = new WaveIn();
mic.StartRecording();
并添加:WaveIn mic = new WaveIn();
在所有空隙之外并添加mic.StartRecording();
以下任何一项:
private void Form1_Load(Object sender, EventArgs e) {}
private void Button1_Click(Object sender, EventArgs e) {}