Partager via


IAudioViewManagerService ::SetAudioStreamWindow, méthode (audioclient.h)

Associe le handle de fenêtre HWND spécifié à un flux audio.

Syntaxe

HRESULT SetAudioStreamWindow(
  HWND hwnd
);

Paramètres

hwnd

Le HWND avec lequel le flux audio sera associé.

Remarques

Une application peut choisir d’associer des flux audio à une fenêtre particulière de son application pour une représentation d’emplacement audio appropriée dans un scénario de réalité mixte

Obtenez une instance du IAudioViewManagerService en appelant GetService sur l’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;
}

Exigences

Exigence Valeur
client minimum pris en charge Windows Build 22621
serveur minimum pris en charge Windows Server, version 23H2
d’en-tête audioclient.h