Compartir a través de


Método IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint (audioclient.h)

Establece el punto de conexión de representación de audio que se debe usar como flujo de referencia para la cancelación acústica de eco (AEC).

Sintaxis

HRESULT SetEchoCancellationRenderEndpoint(
  LPCWSTR endpointId
);

Parámetros

endpointId

Identificador de punto de conexión del punto de conexión de ender que se debe usar como flujo de referencia para AEC. Se producirá un error al establecer un identificador de dispositivo de representación no válido con E_INVALIDARG. Si se establece el valor en NULL, Windows usará su propio algoritmo para elegir el dispositivo de referencia de bucle invertido.

Valor devuelto

Devuelve un valor HRESULT, incluido lo siguiente:

Valor Descripción
S_OK Correcto.
E_INVALIDARG El valor endpointId no es válido.

Comentarios

En el ejemplo siguiente se muestra el uso de la interfaz IAcousticEchoCancellationControl . Llame a IAudioClient::GetService y pase el IID para la interfaz IAcousticEchoCancellationControl . Si se ejecuta correctamente, el punto de conexión de captura admite el control del punto de conexión de referencia de bucle invertido para AEC. Tenga en cuenta que un punto de conexión puede admitir AEC, pero puede que no admita el control del punto de conexión de referencia de bucle invertido para AEC. Llame a SetEchoCancellationRenderEndpoint para establecer la secuencia de referencia para AEC. Si se produce un error en la llamada a GetService con E_NOINTERFACE, el efecto AEC en el punto de conexión (si se admite), no permite el control sobre el punto de conexión de referencia de bucle invertido.

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));

}

Requisitos

Requisito Value
Cliente mínimo compatible Windows Build 22621
Encabezado audioclient.h