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 |