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

  1. 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;
    
  2. 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;
    
  3. 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 .

 

XAudio2 Prise en main

Procédure : charger des fichiers de données audio dans XAudio2

Procédure : lire un son avec XAudio2