Condividi tramite


Metodo IAudioViewManagerService::SetAudioStreamWindow (audioclient.h)

Associa l'handle di finestra HWND specificato a un flusso audio.

Sintassi

HRESULT SetAudioStreamWindow(
  HWND hwnd
);

Parametri

hwnd

HWND a cui è associato il flusso audio.

Osservazioni

Un'app può scegliere di associare flussi audio a una determinata finestra dell'app per una corretta rappresentazione della posizione audio in uno scenario di realtà mista

Ottenere un'istanza del IAudioViewManagerService chiamando GetService nell'istanza di IAudioClient che rappresenta il flusso a cui si vuole associare una finestra. Nell'esempio di codice seguente viene illustrato come creare un flusso audio nell'endpoint di rendering audio predefinito e associarlo a 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;
}

Fabbisogno

Requisito Valore
client minimo supportato Windows Build 22621
server minimo supportato Windows Server, versione 23H2
intestazione audioclient.h