簡體   English   中英

內存樣本中的Naudio播放會產生聲音中的延遲和不美觀的間隙

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM