Procédure : initialiser XAudio2
XAudio2 est initialisé pour la lecture audio en créant une instance du moteur XAudio2 et en créant une voix de mastering.
Pour initialiser XAudio2
Vérifiez que vous avez initialisé COM. Pour une application du Windows Store, cette opération s’effectue dans le cadre de l’initialisation de la Windows Runtime. Sinon, utilisez CoInitializeEx.
HRESULT hr; hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED ); if (FAILED(hr)) return hr;
Utilisez la fonction XAudio2Create pour créer une instance du moteur XAudio2.
IXAudio2* pXAudio2 = nullptr; if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;
Utilisez la méthode CreateMasteringVoice pour créer une voix de mastering.
Les voix de mastering encapsulent un périphérique audio. Il s’agit de la destination ultime pour tout l’audio qui passe par un graphique audio.
IXAudio2MasteringVoice* pMasterVoice = nullptr; if ( FAILED(hr = pXAudio2->CreateMasteringVoice( &pMasterVoice ) ) ) return hr;
Remarques pour les applications du Windows Store
Nous vous recommandons d’utiliser un pointeur intelligent pour gérer la durée de vie des objets XAUDIO2 de manière sécurisée. Pour les applications du Windows Store, vous pouvez utiliser le modèle de pointeur intelligent ComPtr à partir de la bibliothèque de modèles C++ Windows Runtime (WRL).
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;
Notes
Assurez-vous que tous les objets enfants XAUDIO2 sont entièrement libérés avant de libérer l’objet IXAudio2 .
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour