Интерфейс IAcousticEchoCancellationControl (audioclient.h)
Предоставляет механизм для определения того, поддерживает ли конечная точка аудиозахвата акустическое эхо-подавление (AEC), и, если это так, позволяет клиенту задать конечную точку отрисовки звука, которая должна использоваться в качестве потока ссылок.
Наследование
Интерфейс IAcousticEchoCancellationControl наследуется от интерфейса IUnknown.
Методы
Интерфейс IAcousticEchoCancellationControl содержит следующие методы.
IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint Задает конечную точку отрисовки звука, которая должна использоваться в качестве ссылочного потока для подавления акустического эха (AEC). |
Комментарии
В следующем примере показано использование интерфейса IAcousticEchoCancellationControl . Вызовите IAudioClient::GetService, передав IID для интерфейса IAcousticEchoCancellationControl . В случае успеха конечная точка записи поддерживает управление эталонной конечной точкой замыкания на себя для AEC. Обратите внимание, что конечная точка может поддерживать AEC, но не поддерживает управление эталонной конечной точкой замыкания на себя для AEC. Вызовите SetEchoCancellationRenderEndpoint , чтобы задать поток ссылок для AEC. Если вызов GetService завершается сбоем с E_NOINTERFACE, то влияние AEC на конечную точку (если поддерживается) не позволяет управлять конечной точкой ссылки замыкания на себя.
wil::com_ptr_nothrow<IAudioClient> audioClient;
RETURN_IF_FAILED(device->Activate(_uuidof(IAudioClient), CLSCTX_INPROC_SERVER, nullptr, (void **)&audioClient));
// Call Initialize before calling GetService
// Implementation of IAudioClient::Initialize has been omitted from this sample for brevity.
RETURN_IF_FAILED(audioClient->Initialize(…));
// If the capture endpoint supports acoustic echo cancellation (AEC), pass it the endpoint id of the
// audio render endpoint that should be used as the reference stream. If the capture endpoint does not
// support AEC, the GetService call fails with E_NOINTERFACE, so errors from GetService are not
// treated as fatal.
wil::com_ptr_nothrow<IAcousticEchoCancellationControl> audioAcousticEchoCancellationControl;
if (SUCCEEDED(audioClient->GetService(IID_PPV_ARGS(&audioAcousticEchoCancellationControl))))
{
RETURN_IF_FAILED(audioAcousticEchoCancellationControl-> SetEchoCancellationRenderEndpoint(endpointIdOfReferenceAudioStream));
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Сборка Windows 22621 |
Верхняя часть | audioclient.h |