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


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

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

Синтаксис

HRESULT SetEchoCancellationRenderEndpoint(
  LPCWSTR endpointId
);

Параметры

endpointId

Идентификатор конечной точки ender, которая должна использоваться в качестве ссылочного потока для 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 на конечную точку (если оно поддерживается), не разрешает контроль над конечной точкой ссылки на loopback.

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