Share via


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