Metode IAudioViewManagerService::SetAudioStreamWindow (audioclient.h)
Mengaitkan handel jendela HWND yang ditentukan dengan aliran audio.
Sintaks
HRESULT SetAudioStreamWindow(
HWND hwnd
);
Parameter
hwnd
HWND dengan aliran audio yang akan dikaitkan.
Keterangan
Aplikasi dapat memilih untuk mengaitkan aliran audio dengan jendela aplikasi tertentu untuk representasi lokasi audio yang tepat dalam skenario Mixed Reality
Dapatkan instans IAudioViewManagerService dengan memanggil GetService pada instans IAudioClient yang mewakili aliran yang ingin Anda kaitkan dengan jendela. Contoh kode berikut mengilustrasikan pembuatan aliran audio pada titik akhir render audio default dan mengaitkannya dengan 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;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Header | audioclient.h |