Platform SDK: DirectX

ステップ 2 : ウェーブ ファイルのバッファへのロード

[C++]

ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectSound C/C++ チュートリアル」を参照すること。

[Visual Basic]

主な DirectSound オブジェクトを作成した後、次のステップではセカンダリ サウンド バッファを作成し、ウェーブ ファイルをそのバッファにロードする。

DSBUFFERDESC 型にバッファの特性を記述する。最初のメンバはバッファのサイズを設定する。ただし、ファイルからバッファを作成するため、このメンバを初期化する必要はない。DirectSound は、ファイルのデータに適したサイズでバッファを作成する。2 番目のメンバには、バッファに要求するさまざまな能力を記述する。次のコード例は、アプリケーションが周波数、パン、ボリュームを変更できるバッファを記述する。さらに DDSBCAPS_STATIC フラグで、サウンド カードのメモリが利用可能な場合にバッファをそこへ配置すべきであることを示す。サウンド カードのメモリは通常は利用不可である。

Dim bufferDesc As DSBUFFERDESC
Dim waveFormat As WAVEFORMATEX
 
bufferDesc.lFlags = DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN _
                    Or DSBCAPS_CTRLVOLUME Or DSBCAPS_STATIC

作成メソッドに渡すべき他の変数は、WAVEFORMATEX 型である。DirectSound はファイルから必要なウェーブ フォーマット情報を再度取得するため、この型を初期化する必要はない。メソッドを呼び出した後、必要に応じてこの型をチェックし、設定されたフォーマットを確認できる。

バッファを作成するには、次のように DirectSound.CreateSoundBufferFromFile メソッドを呼び出す。

Set m_dsBuffer(i) = m_ds.CreateSoundBufferFromFile( _
                   sfile, bufferDesc, waveFormat)

次項 : ステップ 3 : サウンドの再生