Compartilhar via


Interface IAcousticEchoCancellationControl (audioclient.h)

Fornece um mecanismo para determinar se um ponto de extremidade de captura de áudio dá suporte ao cancelamento acústico de eco (AEC) e, nesse caso, permite que o cliente defina o ponto de extremidade de renderização de áudio que deve ser usado como o fluxo de referência.

Herança

A interface IAcousticEchoCancellationControl herda da interface IUnknown.

Métodos

A interface IAcousticEchoCancellationControl tem esses métodos.

 
IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint

Define o ponto de extremidade de renderização de áudio que deve ser usado como o fluxo de referência para cancelamento de eco acústico (AEC).

Comentários

O exemplo a seguir ilustra o uso da interface IAcousticEchoCancellationControl . Chame IAudioClient::GetService, passando o IID para a interface IAcousticEchoCancellationControl . Se for bem-sucedido, o ponto de extremidade de captura oferecerá suporte ao controle do ponto de extremidade de referência de loopback para a AEC. Observe que um ponto de extremidade pode dar suporte à AEC, mas pode não dar suporte ao controle do ponto de extremidade de referência de loopback para a AEC. Chame SetEchoCancellationRenderEndpoint para definir o fluxo de referência para a AEC. Se a chamada para GetService falhar com E_NOINTERFACE, o efeito AEC no ponto de extremidade (se houver suporte), não permitirá o controle sobre o ponto de extremidade de referência de 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));

}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Build 22621
Cabeçalho audioclient.h