diff --git a/NAudio.Wasapi/WasapiCapture.cs b/NAudio.Wasapi/WasapiCapture.cs index 0aec2617..bdb3c785 100644 --- a/NAudio.Wasapi/WasapiCapture.cs +++ b/NAudio.Wasapi/WasapiCapture.cs @@ -124,6 +124,11 @@ private void InitializeCaptureDevice() long requestedDuration = ReftimesPerMillisec * audioBufferMillisecondsLength; + if ((ShareMode == AudioClientShareMode.Exclusive) && !audioClient.IsFormatSupported(ShareMode, waveFormat)) + { + throw new ArgumentException("Unsupported Wave Format"); + } + var streamFlags = GetAudioClientStreamFlags(); // If using EventSync, setup is specific with shareMode @@ -172,8 +177,15 @@ private void InitializeCaptureDevice() /// protected virtual AudioClientStreamFlags GetAudioClientStreamFlags() { - // enable auto-convert PCM - return AudioClientStreamFlags.AutoConvertPcm | AudioClientStreamFlags.SrcDefaultQuality; + if (ShareMode == AudioClientShareMode.Shared) + { + // enable auto-convert PCM + return AudioClientStreamFlags.AutoConvertPcm | AudioClientStreamFlags.SrcDefaultQuality; + } + else + { + return 0; + } } ///