サウンドファイル(*.wav)を再生する方法です。
■ PlaySound ファイルから演奏
最も簡単な方法です。
ファイル名を指定するだけなので、VB等の環境からでも簡単に呼び出す事ができます。
PlaySound("filename.wav",0,SND_FILENAME);
■ PlaySound リソースから演奏
PlaySound関数はリソースから呼び出す事も可能です。
これによって、サウンドファイルを実行ファイルに組み込んで利用できます。
PlaySound("SOUNDNAME",GetModuleHandle(NULL),SND_RESOURCE);
■ MCIを利用して演奏 その1
mciSendString関数での再生方法です。
全てのパラメータを文字列で指定するので、C以外からでも簡単に呼び出せます。
CHAR buf[100];
if(mciSendString("open filename.wav wait",buf,sizeof(buf),NULL) == 0){
mciSendString("play filename.wav wait",buf,sizeof(buf),NULL);
mciSendString("close filename.wav wait".buf,sizeof(buf),NULL);
}
■ MCIを利用して演奏 その2
mciSendCommand関数での再生方法です。
Cで利用するなら、こちらの方が細かい指定ができるのでお勧めです。
MCI_OPEN_PARMS open_parms;
MCI_PLAY_PARMS play_parms;
MCI_GENERIC_PARMS parms;
open_parms.wDeviceID = 0;
open_parms.lpstrDeviceType = "waveaudio";
open_parms.lpstrElementName = "filename.wav";
if(mciSendCommand(0,MCI_OPEN,MCI_WAIT|MCI_OPEN_TYPE|MCI_OPEN_ELEMENT,(DWORD)&open_parms) == 0){
play_parms.dwFrom = 0;
mciSendCommand(open_parms.wDeviceID,MCI_PLAY,MCI_WAIT|MCI_FROM,(DWORD)&play_parms);
mciSendCommand(open_parms.wDeviceID,MCI_STOP,MCI_WAIT,(DWORD)&parms);
}