0

プログラムが c++ で実行されているときにサウンドを再生したい。私はコードを使用しています:

 void fighterplanesound() 
{PlaySound(TEXT("bombdrop.wav"), NULL, SND_FILENAME|SND_ASYNC);}

SND_ASYNC フラグがこの問題を解決すると思っていましたが、そうではありませんでした。何が起こっているかというと、サウンドの再生が完了するまで、プログラムが一時停止するか、コントロールが移動しません。プログラムの実行中にサウンドを再生するにはどうすればよいですか。明確にするために、プログラムは、MS-DOS ウィンドウで動作する Windows コンソール プログラムです。

4

3 に答える 3

1

Ok。私が理解したのは、関数に PlaySound メソッドを含めることはできないということでした。これは、ASYNC フラグがあったとしても、コントロールは戻る前に PlaySound メソッドを完全に実行する必要があったためです。関数内のコード (この場合、そのコードの実行中にサウンドが再生されます)、つまり、制御は PlaySound の実行が終了するまで関数から返されず、実行する関数に他のコードがないため、制御は待機します。 PlaySound メソッドが終了するまで、次に進みます。

于 2011-06-12T17:23:32.253 に答える
0

実際、iOSアプリでも同じ問題が発生しました。.wav ファイルの再生にかかる時間はわかっています。ファイルの終了時刻ごとに、fighterplanesound() メソッドを呼び出すタイマーを作成できます。最善の解決策ではありませんが、私にとってはうまくいきます。

于 2011-06-11T22:38:21.367 に答える