记忆样本中的 Naudio 播放会在声音中产生延迟和不美观的间隙



使用BufferedWaveProvider播放存储在数据库中的音频样本double[]

 _bufferedWaveProvider = new BufferedWaveProvider(Format)
                                {
                                    DiscardOnBufferOverflow = true,
                                    BufferDuration = TimeSpan.FromSeconds(5)
                                };
public void Consume(double[] samples, int offset, int count)
{
   samples.Paginate<double, float>(offset, count)
          .ForEach(x =>
          {
            byte[] consumeBuffer = x.ToBytes(ref _consumeBuffer);
            _bufferedWaveProvider.AddSamples(consumeBuffer, 0, _consumeBuffer.Length);
           });
}

播放时音频在声音中产生间隙。每 100 毫秒在方法内发送一次Consume()样本。是否存在WaveOut()播放速度比我们所说的方法快的问题Consume()?我们如何同步这种读取和播放。

这里更好的选择是 RawSourceWaveStream 而不是 BufferedWaveProvider ,这将允许您直接从包含完整音频的MemoryStream播放。

相关内容

  • 没有找到相关文章

最新更新