NAudio windows应用程序表单,有延迟环回(输入到DirectSoundOut)

Posted

技术标签:

【中文标题】NAudio windows应用程序表单,有延迟环回(输入到DirectSoundOut)【英文标题】:NAudio windows application form, has delay loopingback(Input to DirectSoundOut) 【发布时间】:2017-01-22 07:56:24 【问题描述】:

问题:

作为学校项目的一部分,我尝试使用 NAudio 库构建一个提供吉他 AMP 的应用程序。

当我插入吉他时,它会识别它,并且一切正常,但是在输入和扬声器的输出之间存在巨大的延迟。

这是我的源代码:

   private void button2_Click(object sender, EventArgs e)
        
            if (sourceList.SelectedItems.Count == 0) return;

            int deviceNumber = sourceList.SelectedItems[0].Index;
            sourceStream = new WaveIn();
            sourceStream.DeviceNumber = deviceNumber;
            sourceStream.WaveFormat = new WaveFormat(44100, WaveIn.GetCapabilities(deviceNumber).Channels);
            sourceStream.StartRecording();

            WaveInProvider waveIn = new WaveInProvider(sourceStream);

            waveOut = new DirectSoundOut();
            waveOut.Init(waveIn);
            waveOut.Play();
        

在此代码中,我捕获了一个按钮单击事件,该事件使用选定的输入(麦克风/吉他)并将接收到的声音转换为输出。 输入和输出之间的延迟大约为 1 秒,这是一个交易破坏者。

如何改善延迟,使应用程序响应更快?

【问题讨论】:

【参考方案1】:

DirectSoundOutWaveIn 不是特别低延迟的音频 API。对于这样的事情,ASIO 更可取。不幸的是,AsioOut 使用起来有点复杂,但它应该可以让您获得更低的延迟。

【讨论】:

非常感谢!

以上是关于NAudio windows应用程序表单,有延迟环回(输入到DirectSoundOut)的主要内容,如果未能解决你的问题,请参考以下文章

NAudio - 如何在结束后立即播放音频而不会有任何延迟?

如果扬声器远离麦克风,Google Speech/NAudio 会有很大的延迟

NAudio 流读取方法延迟

NAudio,Windows服务,多线程

带有效果的 Windows 8.1 应用音频(NAudio 或 SharpDX)

如何在 Windows XP 上运行 nAudio?