internal override void End() { if (!_deviceOpen) { throw new InvalidOperationException(); } _deviceOpen = false; if (!_aborted && _hasHeader) { long position = _stream.Position; AudioBase.WriteWaveHeader(_stream, _wfxOut, _startStreamPosition, _totalByteWrittens); _stream.Seek(position, SeekOrigin.Begin); } }
internal override void Begin(byte[] wfx) { if (_deviceOpen) { throw new InvalidOperationException(); } _wfxIn = WAVEFORMATEX.ToWaveHeader(wfx); _doConversion = _pcmConverter.PrepareConverter(ref _wfxIn, ref _wfxOut); if (_totalByteWrittens == 0 && _hasHeader) { AudioBase.WriteWaveHeader(_stream, _wfxOut, _startStreamPosition, 0); } _bytesWritten = 0; _aborted = false; _deviceOpen = true; }