Méthode IAudioViewManagerService ::SetAudioStreamWindow (audioclient.h)
Associe le handle de fenêtre HWND spécifié à un flux audio.
Syntaxe
HRESULT SetAudioStreamWindow(
HWND hwnd
);
Paramètres
hwnd
HWND auquel le flux audio est associé.
Remarques
Une application peut choisir d’associer des flux audio à une fenêtre particulière de son application pour une représentation de l’emplacement audio appropriée dans un scénario Mixed Reality
Obtenez une instance du IAudioViewManagerService en appelant GetService sur le instance IAudioClient représentant le flux auquel vous souhaitez associer une fenêtre. L’exemple de code suivant illustre la création d’un flux audio sur le point de terminaison de rendu audio par défaut et son association à un 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;
}
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | audioclient.h |