MCI命令を駆使(?)してマルチメディアプレイヤーを作ってみましょう。
スクリーンショットは次の通り。

とりあえずいつものように基本部分だけを設計していきましょう。
mci命令部分はTIPSの画像・サウンド編にありますのでとりあえずはソチラをご覧ください。
screen 0,250,43 title "ultimate player(ぉ" objsize 200,25 button"曲選択",select font "Webdings",16 objmode 2 objsize 25,25 pos 200,0 : button "4",play pos 225,0 : button ";",tempstop *main mci "status music length" len=stat+2 ; 準備がまだなら-1が返ってくる為最低でも1にする mci "status music position" now=stat+2 ; 準備がまだなら-1が返ってくる為最低でも1にする redraw 0 color 255,255,255 : boxf 0,25,winx,winy : color ,,200 ichi=winx-18*now/len+1 if now==len : condition=0 ; シーケンスの終端まで来たら未再生状態にする if condition=0 : ichi=1 ; デバイス準備できてないかシーケンス再生終了なら■の描画位置を初めにする pos ichi,24 : mes "g" redraw await 1 goto *main *select mci "close music" ; とりあえずデバイスを閉じておく dialog "",16 name=refstr goto *main *play mci "open \""+name+"\" alias music" mci "set music time format milliseconds" mci "seek music to start" ; シーケンスの初めから再生する mci "play music" condition==1 ; 再生状態にする goto *main *tempstop if condition==1 : mci "stop music" : else : mci "play music" condition=3-condition ; 状態が1(再生中)なら2(一時停止)に、2なら1にする goto *main
コレで基本部分が完成しましたね。
「button "4",play」や「button ";",play」は文字化け・間違ってると思うかもしれません。
アレは間違ってもバグでもありません。フォント書体が「Webdings」となっていますよね。
Webdings書体で「4」は「4」になり、「;」は「;」になります。
他にもこういうものが使用できます。
3 → 3 5 → 5 6 → 6 7 → 7 8 → 8 9 → 9 : → : U → U V → V X → X ※IE以外のブラウザではきちんと表示されないことがあるかも
このフォントはどのパソコンにも初めから入っている書体ですのであまり気にせず使用していいかと思います。
このままではあまりに芸がないので現在の再生時間と
D&Dで再生位置を示すつまみの移動を可能にして再生位置を変更するというのをしてみましょう。
screen 0,250,44 title "ultimate player ver1.10" objsize 200,25 button"曲選択",select font "Webdings",16 objmode 2 objsize 25,25 pos 200,0 : button"4",play pos 225,0 : button";",tempstop *main mci "status music length" len=stat mci "status music position" now=stat+1 redraw 0 color 255,255,255 : boxf 0,25,winx,winy : color ,,255 ichi=winx-19*now/len+1 if now==len : condition=0 : now=0 if condition=0 : ichi=1 font "MS ゴシック",18,1 pos ichi,26 : mes "■" stick k,,1 if k==256 : goto *move gosub *mestime redraw await 1 goto *main *select mci "close music" dialog "",16 name=refstr goto *main *play mci "open \""+name+"\" alias music" mci "set music time format milliseconds" mci "seek music to start" mci "play music" condition=1 goto *main *tempstop if condition==1 : mci "stop music" : else : mci "play music" condition=3-condition goto *main *mestime color 255 mm=now/60000 : str mm,2 ; 分の部分取り出し ss=now/1000\60 : str ss,2 ; 秒の部分取り出し ms=now\1000 : str ms,3 ; ミリ秒の部分取り出し font "MS ゴシック",12 pos winx-50/2,28 : mes ""+mm+":"+ss+"."+ms int mm : int ss : int ms return *move mx=mousex : my=mousey if mx<ichi|(ichi+16<mx)|(my<26)|(winy-2<my)|(condition=0) : goto *main mx=ichi-mousex ; ドラッグした位置と現在地の差 repeat redraw 0 color 255,255,255 : boxf 0,25,winx,winy : color ,,255 new=mx+mousex if new<2 : new=1 if winx-19<new : new=winx-19 pos new,26 : mes "■" redraw wait 1 stick k,256,1 if k!=256 : break loop ichinew=new*len/(winx-19) mci "seek music to "+ichinew mci "play music" goto *main
講座ではここまでしかしませんが、複数曲再生できるようにしてループ再生したり、
前回のランチャーのようにファイルのD&Dに対応し登録できるようにしてみてはどうでしょう。
スクリプトがほしい方はコチラからどうぞ。