Руководство: инициализация XAudio2

XAudio2 инициализируется для воспроизведения звука путем создания экземпляра обработчика XAudio2 и создания голоса для управления.

Инициализация XAudio2

  1. Убедитесь, что вы инициализировали COM. Для приложения Магазина Windows это делается в рамках инициализации среда выполнения Windows. В противном случае используйте CoInitializeEx.

    HRESULT hr;
    hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
    if (FAILED(hr))
        return hr;
    
  2. Используйте функцию XAudio2Create для создания экземпляра обработчика XAudio2.

    IXAudio2* pXAudio2 = nullptr;
    if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) )
        return hr;
    
  3. Используйте метод CreateMasteringVoice для создания голоса для овладения.

    Голоса хозяина инкапсулируют звуковое устройство. Это конечное место назначения для всего звука, который проходит через звуковой граф.

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

Заметки для приложений Магазина Windows

Рекомендуется использовать интеллектуальный указатель для безопасного управления временем существования объектов XAUDIO2. Для приложений Магазина Windows можно использовать шаблон интеллектуального указателя ComPtr из библиотеки шаблонов среда выполнения Windows C++ (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;

Примечание

Перед выпуском объекта IXAudio2 убедитесь, что все дочерние объекты XAUDIO2 полностью освобождены.

 

XAudio2 начало работы

Руководство: загрузка файлов звуковых данных в XAudio2

Руководство: воспроизведение звука при помощи XAudio2