Beispiel #1
0
 protected virtual void Dispose(bool disposing)
 {
     if (disposing)
     {
         if (_session != null && _session.IsRecording)
         {
             _session.StopRecordingAndSaveAsWav();
         }
         _session = null;
     }
     RecordingState = SIL.Media.Naudio.RecordingState.NotYetStarted;
 }
Beispiel #2
0
        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);
            }
        }