方法: XAudio2 の初期化
XAudio2 は、XAudio2 エンジンのインスタンスを作成し、マスタリング音声を作成することで、オーディオ再生用に初期化されます。
XAudio2 を初期化するには
COM が初期化されていることを確認します。 Windows ストア アプリの場合、これはWindows ランタイムの初期化の一環として行われます。 それ以外の場合は、 CoInitializeEx を使用します。
HRESULT hr; hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED ); if (FAILED(hr)) return hr;
XAudio2Create 関数を使用して、XAudio2 エンジンのインスタンスを作成します。
IXAudio2* pXAudio2 = nullptr; if ( FAILED(hr = XAudio2Create( &pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR ) ) ) return hr;
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 子オブジェクトが完全に解放されていることを確認します。
関連トピック
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示