IAudioViewManagerService::SetAudioStreamWindow 方法 (audioclient.h)
將指定的 HWND 視窗句柄與音訊數據流產生關聯。
語法
HRESULT SetAudioStreamWindow(
HWND hwnd
);
參數
hwnd
與音訊數據流相關聯的 HWND 。
備註
應用程式可以選擇將音訊串流與其應用程式的特定視窗產生關聯,以在 Mixed Reality 案例中呈現適當的音訊位置
在 IAudioClient 實例上呼叫 GetService 來取得 IAudioViewManagerService 的實例,此實例代表您想要與視窗建立關聯的數據流。 下列程式代碼範例說明在預設音訊轉譯端點上建立音訊數據流,並將它與 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 |