HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0526
カブMP3再生中の割り込みについて4解決


カブ

リンク

2012/5/26(Sat) 03:48:50|NO.46859

HSP初心者です。教えてください。
特定のフォルダー内にあるMP3ファイルを自動的に連続再生するプログラムをつくりました。
しかし、再生途中で中止したいときの制御がうまくいきません。

中核部分は、下記のようなものです。
onclick *owari
*main
  ≪省略≫
mmload file(i),0,2
mmplay 0
goto *main
*owari
end
この場合、曲の途中でマウスクリックしても、その曲が終わるまで再生が止まりません。
クリックで即、再生を止める方法を教えてください。

(自動連続再生するために、mmloadは、モード2:「指定したファイルは再生終了まで待つ」
 にしています。mmload、mmplayでは無理なのでしょうか・・・)

よろしくお願いします。



この記事に返信する


GrapeColor(DION)

リンク

2012/5/26(Sat) 06:42:38|NO.46860

普通にmmstop入れれば?



カブ

リンク

2012/5/26(Sat) 10:23:52|NO.46863

ご回答ありがとうございます。
説明不足ですみません。

やりたいことは以下の通りです。
・特定のフォルダー内にあるすべてのMP3ファイルを一旦配列に溜め込む。
・無限ループの中でランダムにMP3ファイルを再生する。
・マウスがクリックされたら曲の途中であっても即終了する。

mmloadを、モード0:「通常の再生」にした場合は
おっしゃる通りonclickの飛び先にmmstopを入れれば曲の途中であっても
止めることが出来ます。

ただし、モード0場合、曲の再生が始まったとたんに次の再生に進んでしまい
うまくいきません。
mmplayの再生が終了したことを検出する方法があれば解決できそうなのですが。。。

よろしくお願い致します。



asannkkh

リンク

2012/5/26(Sat) 10:26:55|NO.46864

mciの場合は
こんなかんじですがどうでしょうか?

onclick *owari *main   ≪省略≫ ;ファイルを開く mci "open \""+file(0)+"\" alias music" ;音楽を再生 mci "play music" ;全体の長さを取得 mci "status music length" len=stat repeat ;今の再生位置を取得 mci "status music position" now=stat ;最後まで再生したか if now=len:break wait 10 loop mci "stop music" ;ファイルを閉じる mci "close music" len=0 now=0 goto *main *owari mci "stop music" mci "close music" end



カブ

リンク

2012/5/26(Sat) 11:21:02|NO.46865

asannkkhさん

ご回答ありがとうございます。

mciを使えば再生位置が取得出来るのですね。
解決しました!!

HSPをはじめて2日目の超超初心者ですが
今後ともよろしくお願い致します。



ONION software Copyright 1997-2023(c) All rights reserved.