Condividi tramite


Metodo IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint (audioclient.h)

Imposta l'endpoint di rendering audio che deve essere usato come flusso di riferimento per l'annullamento dell'eco acustico (AEC).

Sintassi

HRESULT SetEchoCancellationRenderEndpoint(
  LPCWSTR endpointId
);

Parametri

endpointId

ID endpoint dell'endpoint ender che deve essere usato come flusso di riferimento per AEC. L'impostazione di un ID dispositivo di rendering non valido avrà esito negativo con E_INVALIDARG. Se si imposta il valore su NULL, Windows usa il proprio algoritmo per selezionare il dispositivo di riferimento loopback

Valore restituito

Restituisce un valore HRESULT, incluso quanto segue:

Valore Descrizione
S_OK Successo.
E_INVALIDARG Il valore endpointId non è valido.

Osservazioni:

Nell'esempio seguente viene illustrato l'utilizzo dell'interfaccia IAcousticEchoMachitionControl . Chiamare IAudioClient::GetService, passando l'IID per l'interfaccia IAcousticEchoCancellationControl . Se ha esito positivo, l'endpoint di acquisizione supporta il controllo dell'endpoint di riferimento del loopback per AEC. Si noti che un endpoint può supportare AEC, ma potrebbe non supportare il controllo dell'endpoint di riferimento del loopback per AEC. Chiamare SetEchoMachitionRenderEndpoint per impostare il flusso di riferimento per AEC. Se la chiamata a GetService ha esito negativo con E_NOINTERFACE, l'effetto AEC sull'endpoint (se supportato), non consente il controllo sull'endpoint di riferimento di 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));

}

Requisiti

Requisito Valore
Client minimo supportato Windows Build 22621
Intestazione audioclient.h