Compartir a través de


Interfaz IAcousticEchoCancellationControl (audioclient.h)

Proporciona un mecanismo para determinar si un punto de conexión de captura de audio admite la cancelación acústica de eco (AEC) y, si es así, permite al cliente establecer el punto de conexión de representación de audio que se debe usar como secuencia de referencia.

Herencia

La interfaz IAcousticEchoCancellationControl hereda de la interfaz IUnknown.

Métodos

La interfaz IAcousticEchoCancellationControl tiene estos métodos.

 
IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint

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

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