Compartilhar via


Como: Inicializar o XAudio2

O XAudio2 é inicializado para reprodução de áudio criando uma instância do mecanismo XAudio2 e criando uma voz de masterização.

Para inicializar o XAudio2

  1. Verifique se você inicializou o COM. Para um aplicativo da Windows Store, isso é feito como parte da inicialização do Windows Runtime. Caso contrário, use CoInitializeEx.

    HRESULT hr;
    hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
    if (FAILED(hr))
        return hr;
    
  2. Use a função XAudio2Create para criar uma instância do mecanismo XAudio2.

    IXAudio2* pXAudio2 = nullptr;
    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  3. Use o método CreateMasteringVoice para criar uma voz de masterização.

    As vozes de masterização encapsulam um dispositivo de áudio. É o destino final para todo o áudio que passa por um grafo de áudio.

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

Anotações para aplicativos da Windows Store

Recomendamos que você use um ponteiro inteligente para gerenciar o tempo de vida dos objetos XAUDIO2 de maneira segura de exceção. Para aplicativos da Windows Store, você pode usar o modelo de ponteiro inteligente ComPtr da WRL (Biblioteca de Modelos do Windows Runtime C++).

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;

Observação

Certifique-se de que todos os objetos filho XAUDIO2 sejam totalmente liberados antes de liberar o objeto IXAudio2 .

 

XAudio2 Introdução

Como: Carregar arquivos de dados de áudio no XAudio2

Como: Reproduzir um som com o XAudio2