Windowsコード集 上のページ

#0001 サウンド再生あれこれ

サウンドファイル(*.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);
}


上のページ