Microsoft DirectX 8.0 (Visual Basic) |
DirectSound3DBuffer8 オブジェクトは、DSBUFFERDESC 型の lFlags メンバで DSBCAPS_CTRL3D フラグを指定して作成されたDirectSound セカンダリ バッファから取得される。
アプリケーションが DirectMusic のパフォーマンスおよびオーディオパスを使用している場合、DMUS_APATH_DYNAMIC_3D を lType パラメータとして DirectMusicPerformance8.CreateStandardAudioPath に渡すことによって、3D バッファを含むオーディオパスを作成できる。
構成オブジェクトから適切なオーディオパスを作成することもできる。オーディオパス構成によって、バッファの 3D パラメータを指定できる。オーディオパスを作成するときに、バッファの 3D プロパティはこれらのパラメータを使って初期化される。
オーディオパス内の 3D バッファを表すオブジェクトを取得するには、次の例のように、lStage を DMUS_PATH_BUFFER に設定して、DirectMusicAudioPath8.GetObjectInPath を呼び出す。
Dim dsb As DirectSound3dBuffer8 Set dsb = dmAudioPath.GetObjectinPath(DMUS_PCHANNEL_ALL, _ DMUS_PATH_BUFFER, 0, GUID_ALL, 0, IID_DirectSound3DBuffer)
次の例は、DirectMusic パフォーマンスを使用しないアプリケーションで DirectSound3DBuffer8 オブジェクトを作成する方法を示している。ここで、m_ds は DirectSound8 オブジェクトである。
Dim dsbd As DSBUFFERDESC Dim dsBuffer As DirectSoundSecondaryBuffer8 Dim ds3dBuffer As DirectSound3DBuffer8 ' セカンダリ バッファを作成する。 dsbd.lFlags = DSBCAPS_CTRL3D Set dsBuffer = m_ds.CreateSoundBufferFromFile("sound.wav", dsbd) ' 3D バッファ オブジェクトを取得する。 Set ds3dBuffer = dsBuffer.GetDirectSound3DBuffer