1

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 ミリ秒ごとにメソッド内で送信されます。methodWaveOut()を呼び出すよりも の再生が速いという問題はありますか? Consume()この読み取りと再生をどのように同期させるか。

4

1 に答える 1

1

ここでは、完全なオーディオを含むから直接再生できるようにするRawSourceWaveStreamよりも、 を選択することをお勧めします。BufferedWaveProviderMemoryStream

于 2015-06-17T12:23:44.320 に答える