Share via


Método IAudioViewManagerService::SetAudioStreamWindow (audioclient.h)

Associa o identificador de janela HWND especificado a um fluxo de áudio.

Sintaxe

HRESULT SetAudioStreamWindow(
  HWND hwnd
);

Parâmetros

hwnd

O HWND ao qual o fluxo de áudio será associado.

Comentários

Um aplicativo pode optar por associar fluxos de áudio a uma janela específica de seu aplicativo para uma representação de local de áudio adequada em um cenário de Realidade Misturada

Obtenha uma instância do IAudioViewManagerService chamando GetService na instância IAudioClient que representa o fluxo ao qual você deseja associar uma janela. O exemplo de código a seguir ilustra a criação de um fluxo de áudio no ponto de extremidade de renderização de áudio padrão e a associação a um 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;
}

Requisitos

Requisito Valor
Cabeçalho audioclient.h