【发布时间】:2015-07-10 07:44:53
【问题描述】:
我尝试进行以下设置,当我使用真实输出时它工作正常。
我不确定这样做的正确方法是什么,我尝试使用 Timer 并且它工作了一段时间,但后来失败了,因为它有点漂移并且我得到一个缓冲区已满异常。
var mixSampleProvider = new MixingSampleProvider(resampleWaveFormat);
mixSampleProvider.AddMixerInput(inputAResampler);
mixSampleProvider.AddMixerInput(inputBResampler);
var mixWaveProvider = new SampleToWaveProvider(mixSampleProvider);
savingWaveProvider = new SavingWaveProvider(mixWaveProvider);
System.Timers.Timer timer = new System.Timers.Timer(98);
timer.Elapsed += (sender, args) =>
{
var count = resampleWaveFormat.AverageBytesPerSecond / 10;
var dummy = new byte[count];
savingWaveProvider.Read(dummy, 0, count);
};
timer.Start();
我试图计算每个刻度我应该读多少,例如
var readCount = Math.Min(inputABufferedWaveProvider.BufferedBytes, inputBBufferedWaveProvider.BufferedBytes);
但无法使其工作,我曾尝试使用 DataAvailable 事件,但由于有两个输入并且它们是混合的,我也无法正常工作。
【问题讨论】: