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 ,以在音訊效果列表變更時接收通知。
範例
下列範例示範 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 |