CSCore 2 против 6 каналов RMS
Я рассчитываю среднеквадратичное значение из WasapiLoopbackCapture, и при использовании колонок 5.1 это дает мне среднеквадратичное значение от 0 до 2 (с наушниками - среднеквадратичное значение до 130). Как я могу получить только аудио данные с двух каналов?
Я попытался установить количество каналов на 2:
MMDevice captureDevice = MMDeviceEnumerator.DefaultAudioEndpoint(DataFlow.Render, Role.Console);
WaveFormat deviceFormat = captureDevice.DeviceFormat;
_capture = new WasapiLoopbackCapture(100, new WaveFormat(deviceFormat.SampleRate, deviceFormat.BitsPerSample, deviceFormat.Channels <= 2 ? deviceFormat.Channels : 2));
который работает только для наушников, с динамиками вылетает. Тогда у меня есть это:
_capture.Initialize();
_soundInSource = new SoundInSource(_capture) { FillWithZeros = false };
_stream = _soundInSource.WaveFormat.SampleRate == 44100
? new SingleBlockNotificationStream(_soundInSource.ToStereo().ToSampleSource())
: new SingleBlockNotificationStream(_soundInSource.ChangeSampleRate(44100).ToStereo().ToSampleSource());
_soundInSource.DataAvailable += OnSoundDataAvailable;
_capture.Start();
но ни что.ToStereo() помогает с 6 каналами.
Не могли бы вы мне помочь? Btw. когда я устанавливаю количество выходов на 2 в Realtek, он тоже работает нормально. Спасибо.