Platform SDK: DirectX |
ここでは、Visual Basic でのアプリケーション開発について説明する。C++ については、「DirectSound C/C++ チュートリアル」を参照すること。
チュートリアル 1 のサンプルでは、ユーザーが [Play] ボタンをクリックすると、サウンドがサウンド バッファにロードされる。同時に、Volume と Pan の各スライダの状態が Scroll プロシージャの呼び出しでチェックされ、サウンド バッファのプロパティがスライダの状態に応じて調整される。
Private Sub scrlVol_Scroll(i As Integer) If m_dsBuffer(i) Is Nothing Then Exit Sub m_dsBuffer(i).SetVolume scrlVol(i).Value End Sub Private Sub scrlPan_Scroll(i As Integer) If m_dsBuffer(i) Is Nothing Then Exit Sub m_dsBuffer(i).SetPan scrlPan(i).Value End Sub
これらのプロシージャとそれに対応する Change プロシージャは、ユーザーがボリュームとパンのスライダを調整するとき常に呼び出される。アプリケーションは、バッファの再生中にボリュームとパンを変更できる。
また、このサンプルは [Loop Play] チェックボックスの状態もチェックし、これがオンの場合、フラグを 1 (DSBPLAY_LOOPING) に設定する。
Dim flag As Long flag = 0 If chLoop(i).Value <> 0 Then flag = 1
このフラグは、次のように DirectSoundBuffer.Play メソッドに渡される。
m_dsBuffer(i).Play flag
サウンドがループする場合、ユーザーは [Stop] ボタンをクリックするか [Loop Play] チェックボックスをオフにしてサウンドを停止できる。これに応答して、アプリケーションはバッファを停止し、カレント プレイ ポジションを先頭に設定し直す。
m_dsBuffer(i).Stop m_dsBuffer(i).SetCurrentPosition 0
ユーザーが [Pause] ボタンをクリックすると、バッファは停止するが、カレント プレイ ポジションはその場に残る。このため、DirectSoundBuffer.Play が次に呼び出されたとき、サウンドは同じ場所に戻る。