Как изменить частоту дискретизации режима совместного использования устройства вывода звука по умолчанию в Windows 7?

Я использую Windows Audio Core API для захвата обратной петли, и мне это не удалось: // spClient — это смарт-комптр, обернутый IAudioClient hr = spClient->Initialize(AUDCLNT_SHAREMODE_SHARED, AUDCLNT_STREAMFLAGS_LOOPBACK,iRequestedDuration, 0, &m_struWaveFormat, 0);

Он возвращает AUDCLNT_E_UNSUPPORTED_FORMAT, потому что m_struWaveFormat имеет формат 44100,16 бит, но конфигурация на странице свойств устройства имеет формат 48000,24 бит в режиме общего доступа. Если бы я изменил это на 44100, 16-битный формат, приведенные выше коды работали бы хорошо. Итак, кто-нибудь может сказать мне, как изменить частоту дискретизации режима общего доступа по умолчанию с помощью API звукового ядра, пожалуйста? С уважением


person bigbigcat    schedule 27.01.2014    source источник


Ответы (1)


Вы не можете изменить частоту дискретизации общего режима с помощью WASAPI.

WASAPI очень низкого уровня и поддерживает только то, что поддерживает базовое устройство. Но даже если устройство поддерживает желаемую частоту дискретизации, только администратор может изменить частоту дискретизации общего режима, зайдя в настройки звука на панели управления.

Однако вы можете заглянуть в реестр Windows, чтобы узнать, есть ли что-то, что вы можете настроить (при условии, что вы работаете с правами администратора). Вещи в панели управления часто являются просто внешним интерфейсом для значений в реестре Windows.

person Ansis Māliņš    schedule 28.01.2014
comment
Спасибо большое, попробую - person bigbigcat; 29.01.2014
comment
@bigbigcat, ты смог изменить частоту дискретизации? - person Ivan Nikitin; 11.08.2018
comment
Если это кому-то поможет, я смог найти этот ответ на аналогичный вопрос. Он на русском, но Google Translate меня вполне устроил. - person jakar; 12.03.2019