Compartilhar via


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

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

Sintaxe

HRESULT SetEchoCancellationRenderEndpoint(
  LPCWSTR endpointId
);

Parâmetros

endpointId

A ID do ponto de extremidade do ponto de extremidade que deve ser usado como o fluxo de referência para a AEC. A configuração de uma ID de dispositivo de renderização inválida falhará com E_INVALIDARG. Definir o valor como NULL resultará no Windows usando seu próprio algoritmo para escolher o dispositivo de referência de loopback

Retornar valor

Retorna um valor HRESULT, incluindo o seguinte:

Valor Descrição
S_OK Êxito.
E_INVALIDARG O valor endpointId é inválido.

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