IAudioEffectsManager::GetAudioEffects 方法 (audioclient.h)
获取关联音频流的音频效果的当前列表。
语法
HRESULT GetAudioEffects(
AUDIO_EFFECT **effects,
UINT32 *numEffects
);
参数
effects
接收指向表示当前音频效果列表 的AUDIO_EFFECT 结构的数组的指针。
numEffects
接收效果中返回的AUDIO_EFFECT结构数。
返回值
返回 HRESULT,包括但不限于以下内容。
值 | 说明 |
---|---|
S_OK | 成功 |
AUDCLNT_E_DEVICE_INVALIDATED | 关联的音频流已被销毁。 |
注解
调用方负责使用 CoTaskMemFree 释放数组。
注册 IAudioEffectsChangedNotificationClient ,以在音频效果列表更改时接收通知。
示例
以下示例演示 IAudioEffectsManager.GetAudioEffects 以检测指定音频流上是否存在 AUDIO_EFFECT_TYPE_DEEP_NOISE_SUPPRESSION 效果。
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 内部版本 22000 |
标头 | audioclient.h |