Microsoft DirectX 8.0 (C++) |
Play3DSound サンプルは、3D サウンド バッファを作成する方法と、そのプロパティを操作する方法を示す。3DAudio サンプルに似ているが、これは DirectSound API のみを使用する。
ソース :(SDK ルート)\Samples\Multimedia\DirectSound\Play3DSound
実行可能ファイル :(SDK ルート)\Samples\Multimedia\DirectSound\Bin
[Sound File] をクリックしてウェーブ ファイルをロードする。サウンドを再生する。音源の位置がグラフ上に赤い点で示される。このグラフでは、x 軸が左から右に向かい、z 軸が下から上に向かっている。スライダを使って、2 本の座標軸上の移動範囲を変更する。
リスナーはグラフの中央に位置し、デフォルトの向きを向いている。デフォルトの向きは、z 軸の正の方向、つまり画面の上方向である。音源はリスナーの左右前後に移動し、上下には移動しない。
ウィンドウの中央にあるスライダは、リスナーのプロパティ、つまりグローバル サウンド プロパティを制御する。[Defer Settings] をクリックすると、変更は、次に [Apply Settings] をクリックするまで適用されない。
3D コントロールを使用せずに簡単に DirectSound バッファを設定する方法の例については、PlaySound サンプルを参照すること。
このサンプルは、次の手順で IDirectSound3DListener8 インターフェイスを取得する。
このサンプルは、次の手順で IDirectSound3DBuffer8 インターフェイスを取得する。
アプリケーションは、IDirectSound3DListener8::SetAllParameters を呼び出してリスナーのパラメータを設定する。リスナーのプロパティは、DS3DLISTENER 構造体に記述されている。アプリケーションは、IDirectSound3DBuffer8::SetAllParameters を呼び出して DS3DBUFFER 構造体を渡し、音源の位置を設定する。
パラメータを設定すると DS3D_DEFERRED フラグが設定される。変更は、IDirectSound3DListener8::CommitDeferredSettings が呼び出されたときに反映される。このメソッドは、バッファとリスナーの設定の反映を遅らせて、DirectSound による計算が一度で済むようにしている。