Metodo IAudioEffectsManager::GetAudioEffects (audioclient.h)
Ottiene l'elenco corrente di effetti audio per il flusso audio associato.
Sintassi
HRESULT GetAudioEffects(
AUDIO_EFFECT **effects,
UINT32 *numEffects
);
Parametri
effects
Riceve un puntatore a una matrice di strutture AUDIO_EFFECT che rappresentano l'elenco corrente di effetti audio.
numEffects
Riceve il numero di strutture AUDIO_EFFECT restituite in effetti.
Valore restituito
Restituisce un valore HRESULT, incluso ma non limitato al seguente.
Valore | Descrizione |
---|---|
S_OK | Operazione riuscita |
AUDCLNT_E_DEVICE_INVALIDATED | Il flusso audio associato è stato eliminato definitivamente. |
Commenti
Il chiamante è responsabile della liberazione della matrice tramite CoTaskMemFree.
Registrare un IAudioEffectsChangedNotificationClient per ricevere notifiche quando cambia l'elenco di effetti audio.
Esempio
L'esempio seguente illustra IAudioEffectsManager.GetAudioEffects per rilevare se l'effetto AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION è presente nel flusso audio specificato.
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Build 22000 |
Intestazione | audioclient.h |