C# NAudio流读取方法延迟
我做了我自己的哔哔声代码作为练习。然而,它是落后的 2-3声蜂鸣声滞后,然后第3声或第4声来得更快 有人能解释一下原因吗?我如何消除延迟 我使用了马克·希思博客和NAudio github代码中的代码 这是主控制台代码:C# NAudio流读取方法延迟,c#,.net,naudio,C#,.net,Naudio,我做了我自己的哔哔声代码作为练习。然而,它是落后的 2-3声蜂鸣声滞后,然后第3声或第4声来得更快 有人能解释一下原因吗?我如何消除延迟 我使用了马克·希思博客和NAudio github代码中的代码 这是主控制台代码: var waveSine = new BeepStream(waveWhite.WaveFormat); var sineChannel = new WaveChannel32(waveSine) { PadWithZeroes = false }; List<Wave
var waveSine = new BeepStream(waveWhite.WaveFormat);
var sineChannel = new WaveChannel32(waveSine) { PadWithZeroes = false };
List<WaveChannel32> inputs = new List<WaveChannel32>();
inputs.Add(sineChannel);
var mixer = new MixingWaveProvider32(inputs);
var output = new WaveOut();
output.Init(mixer);
output.Play();
output.Volume = 0.5f;
while (true)
{
Thread.Sleep(1000);
waveSine.Beep(1000, 150);
}
var waveSine=新的蜂鸣音流(waveWhite.WaveFormat);
var sineChannel=新的WaveChannel32(waveSine){PadWithZeroes=false};
列表输入=新列表();
输入。添加(sineChannel);
var混频器=新的混合波提供器32(输入);
var输出=新的WaveOut();
输出初始化(混频器);
output.Play();
输出。体积=0.5f;
while(true)
{
睡眠(1000);
waveSine.Beep(1000150);
}
这是beep代码(它基本上输出0,但当调用beep时,它会推送缓存的正弦样本):
(注1:非生产代码,因此请忽略明显的不一致)
(注1:事实上至少有两个频道——一个总是在播放,这就是为什么我必须制作第二个频道——哔哔声频道——也总是在播放。我很乐意改为编写SamplesProviders,但找不到好的示例)
公共类BeepStream:WaveStream
...
公共重写整型读取(字节[]缓冲区、整型偏移量、整型计数)
{
int totalBytesRead=0;
int beepBytesRead=0;
while(totalBytesRead=playingNow.Length)
playingNow=null;
}
}
返回totalBytesRead;
}
观察-读数总是与计数52920一起出现。这个神奇的数字是什么?我可以减少吗?wave格式是float 44100,如果这有帮助的话。只需尝试一切就可以找到解决方案 使用专用WASAPI输出:
var output = new WasapiOut(NAudio.CoreAudioApi.AudioClientShareMode.Exclusive, 3);
output.Init(mixer);
output.Play();
通过简单的尝试找到解决方案 使用专用WASAPI输出:
var output = new WasapiOut(NAudio.CoreAudioApi.AudioClientShareMode.Exclusive, 3);
output.Init(mixer);
output.Play();