- ADX2 LE PC版ライブラリでは、サウンドの出力先としてWASAPIとXAudio2が使用でき、
それぞれ異なる初期化・終了APIを提供しています。
- ::criAtomEx_Initialize_WASAPI
- ::criAtomEx_Finalize_WASAPI
- ::criAtomEx_Initialize_PC
- ::criAtomEx_Finalize_PC
再生遅延時間が短いことや、Windows Vista以降のWindows単体で動作することなどから、
基本的にはWASAPIの使用をおすすめしていますが
どうしてもXAudio2を使用したい場合には、以下の内容に注意して下さい。
XAudio2出力について
- criAtomEx_Initialize_PC 関数を使用してライブラリの初期化処理を行った場合、AtomライブラリはXAudio2を使用して音声の出力を行います。
- XAudio2を使用したアプリケーションを作成し、動作させるには、以下の環境や操作が必要となります。
- アプリケーションをビルドするPCに、DirectX SDK (June 2010)をインストールしておく必要があります。
- アプリケーションを動作させるPCに、DirectX End-User Runtimes (June 2010)をインストールしておく必要があります。
- アプリケーションを動作させるPCのCPUが、SSE2命令をサポートしている必要があります。
- アプリケーションビルド時にxaudio2.libをリンクする必要があります。
- XAudio2使用時にサウンドが再生されない場合には、上記の点をご確認ください。
- 注意:
- Atomライブラリは、June 2010バージョンのXAudio2(xaudio2_7.dll)を使用して音声を出力します。
xaudio2_6.dll以前のDLLや、Windows 8にデフォルトでインストールされているxaudio2_8.dllでは音声の出力は行えませんので、ご注意ください。
(ビルド環境のDirectX SDKのバージョンが古い場合、アクセス違反等の問題が発生する可能性があります。)
ライブラリ初期化/終了の呼び出し元スレッドについて
- XAudio2のAPIを使用するため、Atomライブラリは初期化処理時にCOMをマルチスレッドアパートメントモデルで初期化を行います。
具体的には、初期化処理時( criAtomEx_Initialize_WASAPI 関数を実行した際)に内部的にCoInitializeEx関数を実行してCOMの初期化し、
終了処理時( criAtomEx_Finalize_PC 関数を実行した際)にCoUninitialize関数でCOMの終了処理を行います。
- 上記の仕組みは、Atomライブラリの初期化処理と終了処理を同一のスレッドで行う場合には正常に動作しますが、
初期化処理と終了処理を異なるスレッドで行う場合には、COMの初期化/終了処理の整合性が取れなくなります。
- 注意:
- ADX2 LE Windows版では初期化と終了を別スレッドで行う方法はサポートしておりません。
必ず同じスレッドから初期化と終了を呼び出すよう実装してください。
XAudio2初期化について
- XAudio2の初期化はADX2ライブラリが自動的に行います。
ADX2 LE PC版では、XAudio2の初期化をアプリケーションで行う方法はサポートしておりません。