「ステップ29 「WAVEファイルを再生する」」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
公式のもので問題無し
今回は、WAVEファイルを再生するだけの超簡単[[プログラム]]を作ってみます。
同期式でのWAVE再生
#asciiart(blockquote){
#include <api_mmsys.sbp>
'WAVEファイルを再生
PlaySound("C:\Winnt\Media\Notify.wav",0,SND_FILENAME)
'プロセスを終了する
End
}
っと、これだけです(^^;
1行目の "#include " で、マルチメディア用の[[関数]]が定義されているファイルを読み込みます(PlaySound関数が利用可能になります)。
次に、PlaySound関数を呼び出し、WAVEファイルを再生します。第1パラメータに適当なWAVEファイルへのパスを指定します。第2パラメータは、リソースを利用する場合に指定しますが、今回はリソースを利用しないので、0を指定しておきましょう。第3パラメータの SND_FILENAME は、ファイルを指定することを示します。
何も指定しない状態だと、PlaySound関数は同期式になり、WAVEファイルの再生が終わるまでプログラムが一時停止の状態になります。上のプログラムでは、PlaySound関数自体がウェイトになります。
最後の "End" を指定しないと、PlaySound関数が生成したスレッドが終了せず、プロセスが終了できない事態になりますので、面倒ですが、"End" は忘れずに入れておきましょう。
非同期式でのWAVE再生
#asciiart(blockquote){
#include <api_mmsys.sbp>
'WAVEファイルを再生
PlaySound("C:\Winnt\Media\The Microsoft Sound.wav",0,SND_FILENAME or SND_ASYNC)
'3秒間だけ待機する
Sleep(3000)
'プロセスを終了する
End
}
一番目のプログラムは同期式でしたが、こちらのプログラムは非同期式です。PlaySound関数は、WAVEファイルの再生開始と共に制御を返し、次のSleep命令がただちに実行されます。
ここでは3秒間待機するだけですが、何かしらの処理をするのもOKです。
MessageBox(0,0,0,0)
非常に簡単でしたね!次は[[MCI]]コマンドを使って、もう少し詳しい操作に挑戦してみましょう。