Direct Soundを使おう
Direct Soundを使って多機能な効果音再生を実現しよう。

用 意


VBからそのままDirectDrawは使えません。使用するためには、ベクターに登録されたVB用DirectSound活用モジュールをダウンロードする必要があります。

宣 言


VB用DirectSound活用モジュールのファイルの中にVB用の宣言ファイルが含まれているので開発者が特に意識する必要はありません。VbDSnd.Basを追加するだけでOKです。

DirectSoundの構造


DirectSoundを使ったグラフィック転送は普通のプログラミングとは多少違いがあります(DirectDrawよりはWindowsAPIに近い)。だいたいの流れとしては次のようになります。

1.dsInit(DirectSoundを使えるようにする。これを必ず実行)
   |
2.dsCreate(ファイルを読みこむ。ここで取得したIDは再生時などに必要となる。mciSendStringのコマンドでいうとOpen)
   |
(3.各種パラメータの設定(ボリュームなどの設定をする。不要な場合もある。))
   |
4.dsPlayなど(再生する。mciSendStringのコマンドでいうとPlay)
   |
(5.dsStop(再生の中止。不要な場合もあり。mciSendStringのコマンドでいうとStop))
   |
6.dsFree(ファイルの開放。mciSendStringのコマンドでいうとClose)
   |
7.dsQuit(DirectSoundの使用終了処理。必ず実行)

なお、DirectSoundの特徴として繰り返し再生や複数のファイルの同時再生ができます。詳しくはVB用DirectSound活用モジュールのヘルプを見てください。

<簡単なサンプルプログラム>

次のプログラムは、プログラム起動後に「Sound.wav」というファイルを繰り返し再生し終了と同時にストップさせるものです。おまけ機能としてフォームをクリックすると適当な周波数で再生する機能がついています。用意としてc:\ディレクトリーにSound.wavというファイルが必要になります。あらかじめ用意しておいてください。また、VB起動後にVBDSnd.Basというファイルを追加し、次のコードを貼りつけて、実行してください。

Dim ID As Long

Private Sub Form_Click()
dsSetFrequency ID, Rnd * 99900 + 100 '周波数の変更
End Sub

Private Sub Form_Load()
Randomize '乱数の初期化
dsInit Form1.hWnd 'DirectSound使用開始
ID = dsCreate("c:\sound.wav", 1) 'ファイル読みこみ
dsPlayLooping ID '繰り返し再生
End Sub

Private Sub Form_Unload(Cancel As Integer)
dsStop ID '再生ストップ
dsFree ID 'ファイル開放
dsQuit 'DirectSound使用終了処理
End Sub

DirectSoundサンプルDSV(DirectSound Sample for VB)ダウンロード

トップに戻る
Visual Basicワンポイントテクニック目次に戻る

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル