I also ran into this issue while using the BufferedWaveProvider
to stream audio through a microphone and noticed that after a couple of seconds the DataAvailable
callback stops firing. Just like @XTankKiller mentions in his answer using WaveOut.Play()
on the buffer is somehow reading or discarding data from the buffer as soon as it gets filled up, which is presumable why its stopping after a few seconds when it gets full and is being discarded. And setting BufferedWaveProvider.DiscardOnBufferOverflow = true
fixed it for me.