IAudioViewManagerService::SetAudioStreamWindow-Methode (audioclient.h)
Ordnet das angegebene HWND-Fensterhandle einem Audiodatenstrom zu.
Syntax
HRESULT SetAudioStreamWindow(
HWND hwnd
);
Parameter
hwnd
Der HWND , dem der Audiostream zugeordnet werden soll.
Hinweise
Eine App kann audiostreams einem bestimmten Fenster ihrer App zuordnen, um die richtige Darstellung des Audiostandorts in einem Mixed Reality Szenario zu erhalten.
Rufen Sie eine instance des IAudioViewManagerService auf, indem Sie GetService auf der IAudioClient-instance aufrufen, die den Stream darstellt, dem Sie ein Fenster zuordnen möchten. Das folgende Codebeispiel veranschaulicht das Erstellen eines Audiodatenstroms auf dem Standardmäßigen Audiorenderingendpunkt und das Zuordnen dieses Datenstroms zu einem 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;
}
Anforderungen
Anforderung | Wert |
---|---|
Header | audioclient.h |