public void Play(short[] data) { if (!Enabled) { return; } if (wave != null) { wave.Finished -= Wave_Finished; wave.Close(); } wave = new WinMMNatives.Wave(handle, data); wave.Finished += Wave_Finished; Running = true; wave.Play(); }
protected virtual void Dispose(bool disposing) { if (!disposed) { if (handle != null && handle != IntPtr.Zero) { if (wave != null) { wave.Close(); wave = null; } WinMMNatives.ResetPlaybackDevice(handle); WinMMNatives.ClosePlaybackDevice(handle); handle = IntPtr.Zero; } disposed = true; } }