Top Page > Direct Soundの基本


Direct Soundの基本


○始めに

 Direct X 7.0以下*1のDirect Soundの超基本的な使い方をメモ書き程度に。手っ取り早く音を鳴らしたい人向け。どっか違ってたら教えてくださいね。

○用意する物

dsound.lib  (mssdk\libの中)
dsutil3d.c *2  (mssdk\sampleのどこか)
testwav というリソース名で適当なWAVEファイルをリソースに追加

○基本的なコード

#include <dsound.h>
#include "dsutil3d.h"

//最初に
LPDIRECTSOUND ds;
if (DirectSoundCreate(NULL, &ds, NULL)!=DS_OK) return; //初期化失敗
if (ds->SetCooperativeLevel(hWnd*3, DSSCL_PRIORITY)!=DS_OK) return; //協調レベルの設定に失敗
LPDIRECTSOUNDBUFFER sb= DSLoadSoundBuffer(ds, "testwav"); //音ごとに作成 *4
if (!sb) return; //サウンドバッファの作成に失敗

//再生
if (sb->SetCurrentPosition(0)!=DS_OK) return; //再生位置設定失敗
if (sb->Play(0,0,0)!=DS_OK) return; //再生失敗

//最後に
sb->Release();
ds->Release();

○おまけ: リソースの追加方法(C++ Builder)

Project1.rc というテキストファイルを用意。下の様に書く。最後がファイル名。

testwav WAVE Test.wav

で、MS-DOS(コマンド)プロンプトで

brc32 Project1.rc

とすると Project1.res ができる。これを[プロジェクトに追加]する。

○詳しくは

DirectX 7.0 日本語マニュアルを。
C++ BuilderでDirect Xを使う方法はここが参考になります。

 

*1 8以降はだいぶ変わったらしいんで、ここの記述とは違うかも。何で今時7.0なのかと言うと、DirectDrawを使うってのと、BCBでは8.0が一部動かないという噂が有ったので…。
*2 32行目辺りの "WAV" を "WAVE" に直しておこう。
*3 ウィンドウハンドル。DirectDrawを使う場合はDirectDrawで使うのと同じ物。
*4 違うサウンドバッファは同時に再生可能。同じ音を重ねて再生したい場合は、重なる数だけ同じ音のサウンドバッファを作る必要有り。


Gimite 市川 <gimite@mx12.freecom.ne.jp>


Direct Soundの基本 < Top Page