Share via


Procedura: Inizializzare XAudio2

XAudio2 viene inizializzato per la riproduzione audio creando un'istanza del motore XAudio2 e creando una voce mastering.

Per inizializzare XAudio2

  1. Assicurarsi di aver inizializzato COM. Per un'app di Windows Store, questa operazione viene eseguita come parte dell'inizializzazione del Windows Runtime. In caso contrario, usare CoInitializeEx.

    HRESULT hr;
    hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
    if (FAILED(hr))
        return hr;
    
  2. Usare la funzione XAudio2Create per creare un'istanza del motore XAudio2.

    IXAudio2* pXAudio2 = nullptr;
    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  3. Utilizzare il metodo CreateMasteringVoice per creare una voce mastering.

    Le voci mastering incapsulano un dispositivo audio. È la destinazione finale per tutto l'audio che passa attraverso un grafico audio.

    IXAudio2MasteringVoice* pMasterVoice = nullptr;
    if ( FAILED(hr = pXAudio2->CreateMasteringVoice( &pMasterVoice ) ) )
        return hr;
    

Note per le app di Windows Store

È consigliabile usare un puntatore intelligente per gestire la durata degli oggetti XAUDIO2 in modo sicuro. Per le app di Windows Store, puoi usare il modello di puntatore intelligente ComPtr dalla libreria modelli C++ di Windows Runtime.

Microsoft::WRL::ComPtr<IXAudio2> XAudio2;
HRESULT hr;
if ( FAILED(hr = XAudio2Create( &XAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
    throw Platform::Exception::CreateException(hr);

IXAudio2MasteringVoice* pMasterVoice = nullptr;
if ( FAILED(hr = pXAudio2->CreateMasteringVoice( &pMasterVoice ) ) )
    return hr;

Nota

Assicurarsi che tutti gli oggetti figlio XAUDIO2 vengano rilasciati completamente prima di rilasciare l'oggetto IXAudio2 .

 

Introduzione XAudio2

Procedura: Caricare file di dati audio in XAudio2

Procedura: Riprodurre un suono con XAudio2