C# 检查麦克风输入

C# 检查麦克风输入,c#,.net,input,naudio,C#,.net,Input,Naudio,我试图弄清楚如何使用C#测试连接麦克风的输入,以查看它是否通过了一定的音量 我听说过,但在它的示例和演示中,我所能找到的只是一些工具,这些工具记录用户,然后将记录保存到一个文件中,稍后可以对其进行测试。老实说,这并不是我想要的。当声音超过给定音量时,可以通过修改waveIn_data函数来录制声音 bool startRecording=false; 无效waveIn_数据可用(对象发送方,WaveInEventArgs e) { 对于(int index=0;index

我试图弄清楚如何使用C#测试连接麦克风的输入,以查看它是否通过了一定的音量


我听说过,但在它的示例和演示中,我所能找到的只是一些工具,这些工具记录用户,然后将记录保存到一个文件中,稍后可以对其进行测试。老实说,这并不是我想要的。

当声音超过给定音量时,可以通过修改waveIn_data函数来录制声音

bool startRecording=false;
无效waveIn_数据可用(对象发送方,WaveInEventArgs e)
{
对于(int index=0;index
startRecording是一个标志,指示输入语音已超过给定音量,因此我们开始将数据写入wave文件

bool startRecording = false;
void waveIn_DataAvailable(object sender, WaveInEventArgs e)
{
    for (int index = 0; index < e.BytesRecorded; index += 2)
    {
        short sample = (short)((e.Buffer[index + 1] << 8) | 
                            e.Buffer[index + 0]);
        float sample32 = sample / 32768f;
        if (sample32 > 0.2)  //0.2 is desired volume; sample32 is 0~1
        {
            // Start recording
            startRecording = true;
        }            
    }
    if (startRecording)
    {
        waveFile.Write(e.Buffer, 0, e.BytesRecorded);
        waveFile.Flush();
    }
}