public virtual void CanCaptureAudio() { const int runs = 10; int i = 0; using (var waitHandle = new AutoResetEvent(false)) { for (; i < runs; i++) { _soundIn.DataAvailable += (s, e) => { // ReSharper disable once AccessToDisposedClosure waitHandle.Set(); }; _soundIn.Initialize(); Assert.AreEqual(RecordingState.Stopped, _soundIn.RecordingState); _soundIn.Start(); Assert.AreEqual(RecordingState.Recording, _soundIn.RecordingState); if (!waitHandle.WaitOne(Debugger.IsAttached ? Timeout.Infinite : 2000)) { Assert.Fail("Timeout"); } _soundIn.Stop(); Assert.AreEqual(RecordingState.Stopped, _soundIn.RecordingState); } } Assert.AreEqual(runs, i); }
public void Dispose() { wasapiCapture_.Stop(); writer_.Dispose(); stereoSource_.Dispose(); wasapiCapture_.Dispose(); }
private void Stop() { Running = false; if (_soundIn != null) { _soundIn.Stop(); _soundIn.Dispose(); _soundIn = null; } if (_source != null) { _source.Dispose(); _source = null; } _disableTimer.Stop(); _volumeTimer.Stop(); _mayStop = false; }