Поделиться через


Метод IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint (audioclient.h)

Задает конечную точку отрисовки звука, которая должна использоваться в качестве ссылочного потока для подавления акустического эха (AEC).

Синтаксис

HRESULT SetEchoCancellationRenderEndpoint(
  LPCWSTR endpointId
);

Параметры

endpointId

Идентификатор конечной точки отрисовки, которая должна использоваться в качестве ссылочного потока для AEC. Установка недопустимого идентификатора устройства отрисовки завершится ошибкой при E_INVALIDARG. Установка значения NULL приведет к тому, что Windows будет использовать собственный алгоритм для выбора эталонного устройства замыкания на себя.

Возвращаемое значение

Возвращает значение HRESULT, включая следующее:

Значение Описание:
S_OK Успешно.
E_INVALIDARG Недопустимое значение endpointId .

Комментарии

В следующем примере показано использование интерфейса 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