Interfaccia IAcousticEchoCancellationControl (audioclient.h)

Fornisce un meccanismo per determinare se un endpoint di acquisizione audio supporta l'annullamento dell'eco acustico (AEC) e, in tal caso, consente al client di impostare l'endpoint di rendering audio che deve essere usato come flusso di riferimento.

Ereditarietà

L'interfaccia IAcousticEchoCancellationControl eredita dall'interfaccia IUnknown.

Metodi

L'interfaccia IAcousticEchoCancellationControl include questi metodi.

 
IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint

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

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