IAcousticEchoCancellationControl::SetEchoCancellationRenderEndpoint 메서드(audioclient.h)
AEC(음향 에코 취소)의 참조 스트림으로 사용해야 하는 오디오 렌더링 엔드포인트를 설정합니다.
구문
HRESULT SetEchoCancellationRenderEndpoint(
LPCWSTR endpointId
);
매개 변수
endpointId
AEC에 대한 참조 스트림으로 사용해야 하는 엔더 엔드포인트의 엔드포인트 ID입니다. E_INVALIDARG 잘못된 렌더링 디바이스 ID 설정이 실패합니다. 값을 NULL로 설정하면 Windows에서 자체 알고리즘을 사용하여 루프백 참조 디바이스를 선택합니다.
반환 값
다음을 포함하여 HRESULT 값을 반환합니다.
값 | 설명 |
---|---|
S_OK | 성공. |
E_INVALIDARG | endpointId 값이 잘못되었습니다. |
설명
다음 예제에서는 IAcousticEchoCancellationControl 인터페이스의 사용을 보여 줍니다. IAudioClient::GetService를 호출하여 IAcousticEchoCancellationControl 인터페이스에 대한 IID를 전달합니다. 성공하면 캡처 엔드포인트는 AEC에 대한 루프백 참조 엔드포인트의 제어를 지원합니다. 엔드포인트는 AEC를 지원할 수 있지만 AEC에 대한 루프백 참조 엔드포인트 제어를 지원하지 않을 수 있습니다. SetEchoCancellationRenderEndpoint를 호출하여 AEC에 대한 참조 스트림을 설정합니다. E_NOINTERFACE GetService 호출이 실패하면 엔드포인트에 대한 AEC 효과(지원되는 경우)는 루프백 참조 엔드포인트에 대한 제어를 허용하지 않습니다.
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));
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 빌드 22621 |
머리글 | audioclient.h |