protected virtual void Dispose(bool disposing) { if (disposing) { if (_session != null && _session.IsRecording) { _session.StopRecordingAndSaveAsWav(); } _session = null; } RecordingState = SIL.Media.Naudio.RecordingState.NotYetStarted; }
public virtual void BeginRecording(string waveFileName) { if (_recordingState == SIL.Media.Naudio.RecordingState.NotYetStarted) { BeginMonitoring(); } if (_recordingState != SIL.Media.Naudio.RecordingState.Monitoring) { throw new InvalidOperationException("Can't begin recording while we are in this state: " + _recordingState.ToString()); } lock (lockObj) { RecordingState = SIL.Media.Naudio.RecordingState.Recording; _session = new AudioAlsaSession(waveFileName); var device = "default"; if (SelectedDevice != null && !SelectedDevice.Equals(RecordingDevice.DefaultDevice)) { device = String.Format("plughw:{0}", SelectedDevice.DeviceNumber); } _session.SetInputDevice(device); _session.StartRecording((uint)RecordingFormat.SampleRate, (ushort)RecordingFormat.Channels); } }