[英]Naudio playback in memory samples produces delays and unaesthetic gaps in the sound
使用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()
方法快的問題? 我們如何同步讀取和回放。
一個更好的選擇是RawSourceWaveStream
而不是BufferedWaveProvider
,它允許您直接從包含完整音頻的MemoryStream
中播放。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.