用于 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);
});
}
播放时的音频会产生声音间隙。Consume()
样本每 100 毫秒在方法内部发送一次。是否存在WaveOut()
播放速度比我们调用Consume()
方法快的问题?我们如何同步这个阅读和回放。