/// <summary>
        /// Cancels recording.
        /// Invokes "VoiceRecorderStopped" to other application's modules.
        /// </summary>
        public void CancelVoiceRecording()
        {
            try
            {
                _recorder.Cancel();

                // prepare-unpreapare required to make the Recorder work after cancel.
                _recorder.Unprepare();
                _recorder.Prepare();
            }
            catch (Exception exception)
            {
                ErrorHandler(exception.Message);
                return;
            }

            VoiceRecorderStopped?.Invoke(this, new EventArgs());
        }
        /// <summary>
        /// Stops recording.
        /// Saves the file.
        /// Invokes "VoiceRecorderStopped" to other application's modules.
        /// </summary>
        public void StopVoiceRecording()
        {
            try
            {
                _recorder.Commit();

                using (var databaseConnector = new DatabaseConnector())
                {
                    databaseConnector.ErrorOccurred += OnDatabaseError;
                    databaseConnector.UpdateDatabase();
                }

                RecordingSaved?.Invoke(this, Path.GetFileName(_recordingPath));
                VoiceRecorderStopped?.Invoke(this, new EventArgs());
            }
            catch (Exception exception)
            {
                ErrorHandler(exception.Message);
            }
        }
        /// <summary>
        /// Restarts the recorder.
        /// Invokes "VoiceRecorderStopped" to other application's modules.
        /// </summary>
        public void Restart()
        {
            try
            {
                if (_recorder.State == RecorderState.Recording)
                {
                    _recorder.Cancel();
                }

                _recorder = new AudioRecorder(_recorder.AudioCodec, _recorder.FileFormat)
                {
                    AudioBitRate  = _recorder.AudioBitRate,
                    AudioChannels = _recorder.AudioChannels
                };
                _recorder.Prepare();
            }
            catch (Exception exception)
            {
                ErrorHandler(exception.Message);
                return;
            }

            VoiceRecorderStopped?.Invoke(this, new EventArgs());
        }
Esempio n. 4
0
 /// <summary>
 /// Handles "VoiceRecorderStopped" of the IVoiceRecorderService object.
 /// Invokes "VoiceRecorderStopped" to other application's modules.
 /// </summary>
 /// <param name="sender">Instance of the VoiceRecorderService class.</param>
 /// <param name="e">Contains event data.</param>
 private void VoiceRecorderStoppedEventHandler(object sender, EventArgs e)
 {
     VoiceRecorderStopped?.Invoke(this, new EventArgs());
 }