Procedura: Inizializzare XAudio2
XAudio2 viene inizializzato per la riproduzione audio creando un'istanza del motore XAudio2 e creando una voce mastering.
Per inizializzare XAudio2
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;
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;
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 .
Argomenti correlati
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per