Método IAudioEffectsManager::GetAudioEffects (audioclient.h)
Obtém a lista atual de efeitos de áudio para o fluxo de áudio associado.
Sintaxe
HRESULT GetAudioEffects(
AUDIO_EFFECT **effects,
UINT32 *numEffects
);
Parâmetros
effects
Recebe um ponteiro para uma matriz de estruturas de AUDIO_EFFECT que representam a lista atual de efeitos de áudio.
numEffects
Recebe o número de estruturas de AUDIO_EFFECT retornadas em efeitos.
Retornar valor
Retorna um HRESULT incluindo, mas não se limitando ao seguinte.
Valor | Descrição |
---|---|
S_OK | Êxito |
AUDCLNT_E_DEVICE_INVALIDATED | O fluxo de áudio associado foi destruído. |
Comentários
O chamador é responsável por liberar a matriz usando CoTaskMemFree.
Registre um IAudioEffectsChangedNotificationClient para receber notificações quando a lista de efeitos de áudio for alterada.
Exemplos
O exemplo a seguir demonstra o IAudioEffectsManager.GetAudioEffects para detectar se o efeito AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION está presente no fluxo de áudio especificado.
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;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Build 22000 |
Cabeçalho | audioclient.h |