private void CloseAudioSource() { logger.Debug("CloseAudioSource()"); capturing = false; if (audioSource != null) { audioSource.CaptureStarted -= AudioSource_CaptureStarted; audioSource.CaptureStopped -= AudioSource_CaptureStopped; audioSource.DataAvailable -= AudioSource_DataAvailable; audioSource.Close(true); audioSource = null; } }
private void SetupAudioSource(AudioStreamSettings settings) { logger.Debug("SetupAudioSource(...)"); try { audioSource = new AudioSource(); var deviceId = settings.CaptureParams.DeviceId; var eventSyncMode = true; var audioBufferMilliseconds = 50; var exclusiveMode = false; audioSource.Setup(deviceId, eventSyncMode, audioBufferMilliseconds, exclusiveMode); } catch (Exception ex) { logger.Error(ex); if (audioSource != null) { audioSource.Close(); audioSource = null; } throw; } }