HANDLE fh,fh2;
DWORD dummy,dummy2;

case WM_CREATE:

fh=CreateFile(TEXT("F:\\shot.wav"),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); /* ファイルオープン */

fh2=CreateFile(TEXT("F:\\ENDING.WAV"),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); /* ファイルオープン */

/* バッファ確保 */
lpSound = GlobalAlloc(GPTR,GetFileSize(fh,NULL));
lpSound2 = GlobalAlloc(GPTR,GetFileSize(fh2,NULL));

ReadFile(fh ,lpSound ,GetFileSize(fh ,NULL),&dummy ,NULL); /* 読み込み */
ReadFile(fh2,lpSound2,GetFileSize(fh2,NULL),&dummy2,NULL); /* 読み込み */

CloseHandle(fh);
CloseHandle(fh2);
として音源をメモリに読み込み、その後イベント発生時にPlaySound関数で音源をならしているのですが、

PlaySound(lpSound,NULL,SND_ASYNC|SND_MEMORY);

一番最初のイベント発生時に音源読み込みに時間が掛かり即座に鳴りません。次のイベント発生時は同時に鳴るのですが....
一番最初から同時に鳴らすにはどのようにしたら良いでしょうか?
根本的にPlaySound関数では良くないのでしょうか?
御指導の程よろしくお願いします。

A 回答 (1件)

 こんにちは。


 初回でのモタツキを解消するのは難しいかもしれません。
 waveOut()辺りで試して見た方が良い結果が出るかもしれないです。

 http://www13.plala.or.jp/kymats/study/MULTIMEDIA …

 本当の所、DirectSoundを使用すれば一発で解決出来ると思うのですが、面倒な事と、vistaでは使えない(基本的に)と言った所が難点でしょうか。
    • good
    • 0
この回答へのお礼

machongola様
御返事ありがとうございます。
waveOut()関数を勉強してみます。
取り急ぎ試してみた結果など御報告出来ませんが、調べて試してみようと思います。

お礼日時:2009/05/22 00:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング