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】:DirectSoundOut
和 WaveIn
不是特别低延迟的音频 API。对于这样的事情,ASIO 更可取。不幸的是,AsioOut
使用起来有点复杂,但它应该可以让您获得更低的延迟。
【讨论】:
非常感谢!以上是关于NAudio windows应用程序表单,有延迟环回(输入到DirectSoundOut)的主要内容,如果未能解决你的问题,请参考以下文章
NAudio - 如何在结束后立即播放音频而不会有任何延迟?
如果扬声器远离麦克风,Google Speech/NAudio 会有很大的延迟