Freigeben über


IAudioEffectsManager::GetAudioEffects-Methode (audioclient.h)

Ruft die aktuelle Liste der Audioeffekte für den zugeordneten Audiodatenstrom ab.

Syntax

HRESULT GetAudioEffects(
  AUDIO_EFFECT **effects,
  UINT32       *numEffects
);

Parameter

effects

Empfängt einen Zeiger auf ein Array von AUDIO_EFFECT Strukturen, die die aktuelle Liste der Audioeffekte darstellen.

numEffects

Empfängt die Anzahl der AUDIO_EFFECT Strukturen, die in Effekten zurückgegeben werden.

Rückgabewert

Gibt ein HRESULT zurück, einschließlich, aber nicht beschränkt auf Folgendes.

Wert BESCHREIBUNG
S_OK Erfolg
AUDCLNT_E_DEVICE_INVALIDATED Der zugeordnete Audiodatenstrom wurde zerstört.

Hinweise

Der Aufrufer ist für die Freigabe des Arrays mit CoTaskMemFree verantwortlich.

Registrieren Sie einen IAudioEffectsChangedNotificationClient , um Benachrichtigungen zu erhalten, wenn sich die Liste der Audioeffekte ändert.

Beispiele

Im folgenden Beispiel wird der IAudioEffectsManager.GetAudioEffects veranschaulicht, um zu erkennen, ob der AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION Effekt für den angegebenen Audiodatenstrom vorhanden ist.

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;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Build 22000
Kopfzeile audioclient.h

Weitere Informationen

AUDIO_EFFECTIAudioEffectsChangedNotificationClient