I ran into a problem using WaveOut to play a WaveFormatConversionStream. It appears that WaveFormatConversionStream.Read is consistently reading only 4072 bytes into a 4800 byte buffer, but that discrepancy is not getting passed on to the WaveInterop.waveOutWrite call. I modified the WaveOutBuffer.OnDone method as follows
header.bufferLength = bytes; // fix
WriteToWaveOut();
Not sure of any negative side effects, but it seems to work so far.
header.bufferLength = bytes; // fix
WriteToWaveOut();
Not sure of any negative side effects, but it seems to work so far.