Example #1
0
        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();
        }
Example #2
0
        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;
            }
        }