ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

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と関連する良く見られている質問

Qwaveout関数で、ソースファイルを再生する方法を教えてください。

いつもお世話になります。
波形データを作成して、
それをwaveout関数で再生することはできたのですが、
ソースファイルを再生することができません。

参考HPには、ソースファイルからの再生については、
書かれていませんでした。

static LPBYTE lpBuf;
static HWAVEOUT hWOut;
static WAVEHDR wh;
static WAVEFORMATEX wf;

の、いずれかからソースファイルを指定するとは思うのですが、いまいちよくわかりません。
どこで、ソースファイルを指定すればよいのか、
教えてください。よろしくお願いします。

Aベストアンサー

delphiですがサンプルはありました。
API自体はdelphiもVC++も変わらないので
参考になるかと思います。
http://forum.nifty.com/fdelphi/samples/01075.html

waveout APIはサンプルが少なく
(単に再生するだけでよいならMCIでよいので。)
試行錯誤で作った覚えがあります。

ちょっとソースをみてきになったのですが
CALLBACKの部分にwaveOutProcのアドレスが入ります。
(DWORD)&waveOutProc
あとは調べてみてください。

参考URL:http://forum.nifty.com/fdelphi/samples/01075.html

QLPCWSTRとchar

質問なのです・・・

現在、私は[Visual Stdio.Net 2005]を使って、C++のプログラミングをしようと思いまして、今日参考書を見てやってみたのですが、

charの配列を使って、文字列を格納しそれを使おうとしたら、LPCWSTRのキャストが必要というエラーがでました。
参考書だと普通に通るらしいのですが・・・Visual Stdio.Net 2003と2005の違いなのでしょか?わかる方教えていただけませんでしょうか??

Aベストアンサー

補足です。
2005デフォルトのUNICODEを変更する方法は
プロジェクト->プロパティ->構成プロパティ->全般 の中にある
文字セットを[Unicode 文字セットを使用する]から[マルチバイト文字セットを使用する]
に変更することで可能です。

QDirectXとXAudio2について

PCゲーム初心者です。

この度、「legend of grimlock」というPCゲームをダウンロードしましたが、
下記のようなメッセージが出て起動できませんでした。

「The following error occurred while starting up the game:
XAudio2 error in XAudio2Create

Please check that your computer meets the minimum system
requirements, DirectX9 is properly installed, and that your
graphics card and sound card drivers are up to date.」

XAudio2というものが必要なようで、DirectX9をインストールせよという指示かと思うのですが、
グラボはDirectX9には対応しているはずで、どう対処したらよいのか思案中です。
どなたかお分かりの方、教えていただければ幸いです。

なお、PCの主な構成は下記のとおりです。
OS:Windows7(64bit)
グラボ:WinFastGTX260 limited+
CPU:core i7 860

宜しくお願い致します。

PCゲーム初心者です。

この度、「legend of grimlock」というPCゲームをダウンロードしましたが、
下記のようなメッセージが出て起動できませんでした。

「The following error occurred while starting up the game:
XAudio2 error in XAudio2Create

Please check that your computer meets the minimum system
requirements, DirectX9 is properly installed, and that your
graphics card and sound card drivers are up to date.」

XAudio2というものが必要なようで、DirectX9をインストールせよという指...続きを読む

Aベストアンサー

>どう対処したらよいのか思案中です。
>OS:Windows7(64bit)
DirectX9はもともとはインストールされていませんので、
DirectX「9」の最新版をインストールしてみるとか

http://www.microsoft.com/download/en/details.aspx?DisplayLang=en&id=35


人気Q&Aランキング

おすすめ情報