Método IAudioEffectsManager::GetAudioEffects (audioclient.h)
Obtiene la lista actual de efectos de audio para la secuencia de audio asociada.
Sintaxis
HRESULT GetAudioEffects(
AUDIO_EFFECT **effects,
UINT32 *numEffects
);
Parámetros
effects
Recibe un puntero a una matriz de estructuras AUDIO_EFFECT que representan la lista actual de efectos de audio.
numEffects
Recibe el número de estructuras AUDIO_EFFECT devueltas en efectos.
Valor devuelto
Devuelve un VALOR HRESULT, incluido pero no limitado a lo siguiente.
Valor | Descripción |
---|---|
S_OK | Correcto |
AUDCLNT_E_DEVICE_INVALIDATED | La secuencia de audio asociada se ha destruido. |
Comentarios
El autor de la llamada es responsable de liberar la matriz mediante CoTaskMemFree.
Registre un IAudioEffectsChangedNotificationClient para recibir notificaciones cuando cambie la lista de efectos de audio.
Ejemplos
En el ejemplo siguiente se muestra IAudioEffectsManager.GetAudioEffects para detectar si el efecto de AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION está presente en la secuencia de audio especificada.
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 | Value |
---|---|
Cliente mínimo compatible | Compilación 22000 de Windows |
Encabezado | audioclient.h |