使用 Nadio 创建 Clapper 软件

Posted

技术标签:

【中文标题】使用 Nadio 创建 Clapper 软件【英文标题】:Create Clapper software with Naudio 【发布时间】:2011-06-30 23:23:10 【问题描述】:

我想创建一个在拍手后通过麦克风收听的软件..

我的第一个实现是尝试让软件在我听到高音量声音时发出警告。

但我想知道是否有人可以在正确的方向上帮助我?

public partial class ClapperForm : Form

    WaveIn waveInStream;

    public ClapperForm()
    
        InitializeComponent();
    

    private void btnStart_Click(object sender, EventArgs e)
    
        //start the streaming
        waveInStream = new WaveIn();
        waveInStream.DataAvailable += new EventHandler<WaveInEventArgs>(waveInStream_DataAvailable);
        waveInStream.StartRecording();
    

    void waveInStream_DataAvailable(object sender, WaveInEventArgs e)
    
        //check out what volume it is
    
    private void btnStop_Click(object sender, EventArgs e)
    
        if (waveInStream != null)
        
            //Stop streaming
            waveInStream.StopRecording();
            waveInStream.Dispose();

            waveInStream = null;
        
    

【问题讨论】:

【参考方案1】:

假设您正在录制 16 位音频(这是默认设置),那么 e.Buffer 的内容可以这样解释:

for (int n = 0; n < e.BytesRecorded; n += 2)

    short sampleValue = BitConverter.ToInt16(e.Buffer, n);        

然后你可以寻找 Math.Abs​​(sampleValue) 的高值。

【讨论】:

以上是关于使用 Nadio 创建 Clapper 软件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Nadio 播放 wav 的延迟。错误使用线程?

如何使用 Nadio 获取 midi 事件的实时时间

如何使用 Nadio c# 使声音更大?

获取麦克风输入电平 Nadio

Nadio - 多声音设备播放和录音问题

查找类