Share via


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 di loopback

Valore restituito

Restituisce un valore HRESULT, incluso quanto segue:

Valore Descrizione
S_OK Operazione completata.
E_INVALIDARG Il valore endpointId non è valido.

Commenti

Nell'esempio seguente viene illustrato l'utilizzo dell'interfaccia IAcousticEchoCancellationControl . 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 di loopback per AEC. Si noti che un endpoint può supportare AEC, ma potrebbe non supportare il controllo dell'endpoint di riferimento di loopback per AEC. Chiamare SetEchoCancellationRenderEndpoint 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