方法: 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 ストア アプリの場合は、Windows ランタイム C++ テンプレート ライブラリ (WRL) から ComPtr スマート ポインター テンプレートを使用できます。

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 でのサウンド再生