二十五歩目 ドレミ♪
さぁてと もうこの題で何をするのかわかるね
そう、今回はHSPから音を再生するプログラムを作るのだ
〜音楽ファイル再生〜
まずは この二つの音楽ファイルをダウンロードしてください
※したの文字で右クリックをして「対象をファイルに保存」と言うのを押して
保存先を指定すれば ダウンロードすることが出来ます
do.wav re.wav
do.wavはドの音 re.wavにはレの音が入ってるよ
じゃあプログラムと行こう
mmload "do.wav",0 ;do.wav と言うファイルを0に割り当てる mmplay 0 ;0を再生する stop ;とまる |
短いねー
あっ、音楽ファイルも前の画像ファイルの時と同じで
プログラムの保存してあるところと 同じ保存場所じゃないと 作動しないよ
さあ説明だ
mmload "do.wav",0 |
これは そのまま簡単だ do.wav と言うファイルを
(ファイルを指定するときは拡張子.wavも書く) 0と言う数字
に当てはめると言うことだ(ちょっと難しいな)
簡単に言うと do.wav と言う名前の変わりに 0 と言う数字を
使っているのだ。 変数のようだけどそうじゃないんだ
言うなればウインドウIDのようなものだ
まあこれだとウインドウIDと言うより音楽IDだね(^^)
0と言う音楽IDは do.wav だと言ってるようなものだ
mmplay 0 |
これも そのまんま
0と言う音楽ID(音楽IDって 勝手に名前つけていいのかなぁ?)を再生すると言うことだ
さっきmmload "do.wav",0 とやったので mmplay 0 で 0 を再生すると言うことは
do.wav を再生するって事だね
〜ボタンを使う〜
さあて それじゃあ ここで「ボタンを押したら 音を鳴らす」
と言うのを作ってみよう
screen 0,200,50 ;ウインドウ0を横200 縦50の大きさにする mmload "do.wav",0 ;do.wav と言うファイルを0に割り当てる mmload "re.wav",1 ;re.wav と言うファイルに1を割り当てる button "ド",*doo ;ド と言うボタンをつくり 押されたら*doへ飛ぶ button "レ",*ree ;レ と言うボタンをつくり 押されたら*reへ飛ぶ stop ;止まる *doo mmplay 0 ;0を再生する stop ;止まる *ree mmplay 1 ;1を再生する stop ;とまる |
どうでしょう?実行すると 二つボタンが出て来て
ドのボタンを押すとドの音が レのボタンを押すとレの音が出てきます
何かわからないことがありますか?まあ簡単に説明します
最初にウインドウのサイズを変えて、音楽データをそれぞれ数に割り当てて
ボタンをつくって止まりますね。で ボタンが押されると 指定されたラベルへ飛んで
音を再生して また止まると こう言うこっちゃ
えっ? なんかおかしいって?
「何で何回もボタンが押せて、しかも ちゃんと音が出るか」だって?
答えはこうです 例えば ドのボタンを押すと ラベル*dooへ飛んで
mmplay 0 で音を再生してから stopで止まります
でもボタンはオブジェクトですからcls命令じゃないと画面から消えてくれません
(前にもこんなこと言ったような・・・・・)
だからボタンが押されたら必ず指定したラベルへ飛ぶのです
さっきの例でいうと。ドのボタンを押して ドの音を出してからstopで止まってるときに
レのボタンを押されたら ラベル*reeへ飛んでレの音を再生して
またstopで止まって・・・・・・・・と言う繰り返しなのです
つまりボタンはclsで消さない限り
ボタンが押されたら指定したラベルへ飛ぶ と言う動作をしてしまうのです
まあ今回はこんなところです
まとめ〜〜〜 mmload・・・指定したファイルを指定した数字に 割り当てる mmload "do.wav",0 mmplay・・・指定した数字のファイルを再生する mmplay 0 |