Partager via


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

Définit le point de terminaison de rendu audio qui doit être utilisé comme flux de référence pour l’annulation d’écho acoustique (AEC).

Syntaxe

HRESULT SetEchoCancellationRenderEndpoint(
  LPCWSTR endpointId
);

Paramètres

endpointId

ID de point de terminaison du point de terminaison ender qui doit être utilisé comme flux de référence pour AEC. La définition d’un ID d’appareil de rendu non valide échoue avec E_INVALIDARG. La définition de la valeur NULL entraîne l’utilisation par Windows de son propre algorithme pour choisir l’appareil de référence de bouclage

Valeur retournée

Retourne une valeur HRESULT incluant les éléments suivants :

Valeur Description
S_OK Réussite.
E_INVALIDARG La valeur endpointId n’est pas valide.

Remarques

L’exemple suivant illustre l’utilisation de l’interface IAcousticEchoCancellationControl . Appelez IAudioClient ::GetService, en passant l’IID pour l’interface IAcousticEchoCancellationControl . S’il réussit, le point de terminaison de capture prend en charge le contrôle du point de terminaison de référence de bouclage pour AEC. Notez qu’un point de terminaison peut prendre en charge AEC, mais peut ne pas prendre en charge le contrôle du point de terminaison de référence de bouclage pour AEC. Appelez SetEchoCancellationRenderEndpoint pour définir le flux de référence pour AEC. Si l’appel à GetService échoue avec E_NOINTERFACE, l’effet AEC sur le point de terminaison (s’il est pris en charge) n’autorise pas le contrôle sur le point de terminaison de référence de bouclage.

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

}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Build 22621
En-tête audioclient.h