NAudio windows 申请表,有延迟环回(Input to DirectSoundOut)

NAudio windows application form, has delay loopingback(Input to DirectSoundOut)

问题:

作为学校项目的一部分,我尝试构建一个使用 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();
        }

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

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

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