IAudioViewManagerService::SetAudioStreamWindow 메서드(audioclient.h)
지정된 HWND 창 핸들을 오디오 스트림과 연결합니다.
구문
HRESULT SetAudioStreamWindow(
HWND hwnd
);
매개 변수
hwnd
오디오 스트림 wll이 연결된 HWND 입니다.
설명
앱은 Mixed Reality 시나리오에서 적절한 오디오 위치 표현을 위해 오디오 스트림을 앱의 특정 창과 연결하도록 선택할 수 있습니다.
창을 연결할 스트림을 나타내는 IAudioClient instance GetService를 호출하여 IAudioViewManagerService의 instance 가져옵니다. 다음 코드 예제에서는 기본 오디오 렌더링 엔드포인트에서 오디오 스트림을 만들고 HWND와 연결합니다.
#include <audioclient.h>
HRESULT CreateAudioStreamAndAttachToHwnd(_In_ HWND hwnd, _Out_ IAudioClient **audioStream)
{
wil::com_ptr_nothrow<IMMDeviceEnumerator> enumerator;
RETURN_IF_FAILED(CoCreateInstance(__uuidof(IMMDeviceEnumerator),
NULL,
CLSCTX_ALL,
IID_PPV_ARGS(&enumerator)));
wil::com_ptr_nothrow<IMMDevice> device;
RETURN_IF_FAILED(enumerator->GetDefaultAudioEndpoint(eRender, eConsole, &device));
wil::com_ptr_nothrow<IAudioClient> audioClient;
RETURN_IF_FAILED(device->Activate(__uuidof(IAudioClient),
CLSCTX_ALL,
NULL,
(void**)&audioClient));
wil::unique_cotaskmem_ptr<WAVEFORMATEX> wfx;
RETURN_IF_FAILED(audioClient->GetMixFormat(wil::out_param_ptr<WAVEFORMATEX**>(wfx)));
constexpr REFERENCE_TIME hnsRequestedDuration = 10000000;
RETURN_IF_FAILED(audioClient->Initialize(AUDCLNT_SHAREMODE_SHARED,
0,
hnsRequestedDuration,
0,
wfx.get(),
NULL));
wil::com_ptr_nothrow<IAudioViewManagerService> audioViewManagerService;
RETURN_IF_FAILED(audioClient->GetService(IID_PPV_ARGS(&audioViewManagerService)));
RETURN_IF_FAILED(audioViewManagerService->SetAudioStreamWindow(hwnd));
*audioStream = spAudioClient.detach();
return S_OK;
}
요구 사항
요구 사항 | 값 |
---|---|
헤더 | audioclient.h |