public void Play() { if (_ms != null && _ms.Length > 0) { _ms.Position = 0; _waveStream = new RawSourceWaveStream(_ms, WaveFormat); _waveOut.Init(_waveStream); _waveOut.Play(); OnAudioPlaybackStateChanged?.Invoke(true); } }
public void AddBytesToPlay(byte[] bytes) { if (_waveOut == null) { _waveOut = new WaveOut(); _waveOut.PlaybackStopped += (sender, args) => { _waveStream.Dispose(); _ms.Dispose(); _ms = null; OnAudioPlaybackStateChanged?.Invoke(false); }; } if (_ms == null) { _ms = new MemoryStream(); } _ms.Write(bytes, 0, bytes.Length); }