Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 ai seguenti elementi.
| Valore | Descrizione |
|---|---|
| S_OK | Successo |
| AUDCLNT_E_DEVICE_INVALIDATED | Il flusso audio associato è stato distrutto. |
Osservazioni:
Il chiamante è responsabile della liberazione della matrice tramite CoTaskMemFree.
Registrare un IAudioEffectsChangedNotificationClient per ricevere notifiche quando cambia l'elenco di effetti audio.
Esempi
L'esempio seguente illustra l'uso di 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 |