Partager via


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