Bagikan melalui


Metode IAudioViewManagerService::SetAudioStreamWindow (audioclient.h)

Mengaitkan handel jendela HWND yang ditentukan dengan aliran audio.

Sintaks

HRESULT SetAudioStreamWindow(
  HWND hwnd
);

Parameter

hwnd

HWND dengan aliran audio yang akan dikaitkan.

Keterangan

Aplikasi dapat memilih untuk mengaitkan aliran audio dengan jendela aplikasi tertentu untuk representasi lokasi audio yang tepat dalam skenario Mixed Reality

Dapatkan instans IAudioViewManagerService dengan memanggil GetService pada instans IAudioClient yang mewakili aliran yang ingin Anda kaitkan dengan jendela. Contoh kode berikut mengilustrasikan pembuatan aliran audio pada titik akhir render audio default dan mengaitkannya dengan 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;
}

Persyaratan

Persyaratan Nilai
Header audioclient.h