如何使用AsioOut使用NAudio进行录音和播放我正在尝试使用C#直接获取声音输入并以更少的延迟发送输出。我正在使用支持ASIO的库NAudio来获得更好的延迟。特别是,我使用一个AsioOut对象进行录音,另一个对象使用BufferedWaveProvider初始化回放,该BufferedWaveProvider填充了一个回调函数:OnAudioAvailable,它允许我使用ASIO缓冲区。问题是我听到各种故障和延迟。我认为问题出在OnAudioAvailable函数中,缓冲区中充满了来自声卡的传入数据。声明:NAudio.Wave.AsioOutplayAsio;NAudio.Wave.AsioOutrecAsio;NAudio.Wave.BufferedWaveProvider缓冲区;播放程序:if(sourceList.SelectedItems.Count==0)return;intdeviceNumber=sourceList.SelectedItems[0].Index;recAsio=newNAudio.Wave.AsioOut(deviceNumber);recAsio.InitRecordAndPlayback(null,2,44100);//recchannel=1NAudio.Wave.WaveFormatformato=newNAudio.Wave.WaveFormat();buffer=newNAudio.Wave.BufferedWaveProvider(formato);recAsio.AudioAvailable+=newEventHandler(OnAudioAvailable);//Collegol'outputcolbufferplayAsio=newNAudio.Wave.AsioOut(deviceNumber);playAsio.Init(缓冲区);//注册recAsio.Play();//播放playAsio.Play();OnAudioAvailable()://CallbackprivateunsafevoidOnAudioAvailable(objectsender,NAudio.Wave.AsioAudioAvailableEventArgse){//CopiotuttiglielementidiInputBuffersinbufeliaggiungoincodaalbufferbyte[]buf=newbyte[e.SamplesPerBuffer];对于(inti=0;i
