IAudioEffectsManager::GetAudioEffects 메서드(audioclient.h)
연결된 오디오 스트림에 대한 오디오 효과의 현재 목록을 가져옵니다.
구문
HRESULT GetAudioEffects(
AUDIO_EFFECT **effects,
UINT32 *numEffects
);
매개 변수
effects
오디오 효과의 현재 목록을 나타내는 AUDIO_EFFECT 구조의 배열에 대한 포인터를 받습니다.
numEffects
효과에서 반환된 AUDIO_EFFECT 구조체의 수를 받습니다.
반환 값
다음을 포함하지만 제한되지 않는 HRESULT를 반환합니다.
값 | 설명 |
---|---|
S_OK | Success |
AUDCLNT_E_DEVICE_INVALIDATED | 연결된 오디오 스트림이 제거되었습니다. |
설명
호출자는 CoTaskMemFree를 사용하여 배열을 해제합니다.
오디오 효과 목록이 변경될 때 알림을 받으려면 IAudioEffectsChangedNotificationClient 를 등록합니다.
예제
다음 예제에서는 지정된 오디오 스트림에 AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION 효과가 있는지 여부를 감지하는 IAudioEffectsManager.GetAudioEffects를 보여 줍니다.
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;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Build 22000 |
머리글 | audioclient.h |