Cómo: inicializar XAudio2

XAudio2 se inicializa para la reproducción de audio mediante la creación de una instancia del motor XAudio2 y la creación de una voz de masterización.

Para inicializar XAudio2

  1. Asegúrese de que ha inicializado COM. Para una aplicación de la Tienda Windows, esto se hace como parte de la inicialización del Windows Runtime. En caso contrario, use CoInitializeEx.

    HRESULT hr;
    hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
    if (FAILED(hr))
        return hr;
    
  2. Use la función XAudio2Create para crear una instancia del motor XAudio2.

    IXAudio2* pXAudio2 = nullptr;
    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  3. Use el método CreateMasteringVoice para crear una voz de masterización.

    Las voces de maestro encapsulan un dispositivo de audio. Es el destino final de todo el audio que pasa a través de un gráfico de audio.

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

Notas de las aplicaciones de la Tienda Windows

Se recomienda usar un puntero inteligente para administrar la duración de los objetos XAUDIO2 de una manera segura de excepciones. Para las aplicaciones de la Tienda Windows, puedes usar la plantilla de puntero inteligente ComPtr de la biblioteca de plantillas de C++ de 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;

Nota

Asegúrese de que todos los objetos secundarios XAUDIO2 estén totalmente liberados antes de liberar el objeto IXAudio2 .

 

Introducción XAudio2

Cómo: cargar archivos de datos de audio en XAudio2

Cómo: reproducir un sonido con XAudio2