Метод IAudioEffectsManager::GetAudioEffects (audioclient.h)
Возвращает текущий список звуковых эффектов для связанного звукового потока.
Синтаксис
HRESULT GetAudioEffects(
AUDIO_EFFECT **effects,
UINT32 *numEffects
);
Параметры
effects
Получает указатель на массив AUDIO_EFFECT структур, представляющих текущий список звуковых эффектов.
numEffects
Получает количество AUDIO_EFFECT структур, возвращаемых в эффектах.
Возвращаемое значение
Возвращает HRESULT, включая, помимо прочего, следующие.
Значение | Описание: |
---|---|
S_OK | Успешное завершение |
AUDCLNT_E_DEVICE_INVALIDATED | Связанный аудиопоток уничтожен. |
Комментарии
Вызывающий объект отвечает за освобождение массива с помощью CoTaskMemFree.
Зарегистрируйте IAudioEffectsChangedNotificationClient для получения уведомлений при изменении списка звуковых эффектов.
Примеры
В следующем примере демонстрируется IAudioEffectsManager.GetAudioEffects для определения наличия эффекта AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION в указанном аудиопотоке.
HRESULT IsPlatformDeepNoiseSuppressionPresent(_In_ IAudioClient *client, _Out_ bool *isPresent)
{
*isPresent = false;
wil::com_ptr_nothrow<IAudioEffectsManager> audioEffectsManager;
RETURN_IF_FAILED(client->GetService(IID_PPV_ARGS(&audioEffectsManager)));
wil::unique_cotaskmem_array_ptr<AUDIO_EFFECT> effects;
UINT32 numEffects;
RETURN_IF_FAILED(audioEffectsManager->GetAudioEffects(&effects, &numEffects));
for (UINT32 i = 0; i < numEffects; i++)
{
// Check if noise suppression is part of the current effects
if (effects[i].id == AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION)
{
*isPresent = true;
return S_OK;
}
}
return S_OK;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Сборка Windows 22000 |
Верхняя часть | audioclient.h |