ダイアログで曲を選んでmci命令で再生
狐 2013/6/1(Sat) 17:32:14|NO.54471
つい最近教えてもらって始めたばかりの超初心者です。
前自分で音楽プレイヤーが作れたらなと思いまして頑張って作ったのですが
mci命令の使い方がどうもよくわからなかったので
普通?にmmloadなどを使って作っていていろいろ使いやすくしたのですが
やはり一時停止や音量・スキップなどをやろうとするとどうもmciを使わなければ
いけないみたいなので質問させていただます。 長文すいません。
希望
・ダイヤログで曲を選んで再生(それだけならmmloadでも出来るけど今後のことを考えて
mciで
・mciについて
一応どのようなのを作りたいかわからないかもしれないのでソース這っときます。
ソース
/*_______________________オリジナル音楽プレイヤー 音楽一時停止ができん_________________________________________________*/
ループ切り替え表示=0
/*______________________________________________________________________________________________________________________*/
*stert
screen 0,500,500,,,, ; 500*500のスクリーン
title "自作低性能ミュージックプレイヤー" ; タイトル表示
color ,,,:boxf ; 黒で塗りつぶす
pos 170,250
button "終了" , *owari ; 指定場所にボタン表示
pos 250,250
button "曲を選ぶ" , *play ; 指定場所にボタン表示
stop
*play
cls ; 画面クリア
dialog "wav;*.avi;*.mid;*.mp3;*asf;*wmv;*wma;*mpg" ,16, "音楽ファイル" ; 音楽ファイルを開く
mmstop ; 曲変更時のBGM
if (stat=0){goto *restart} ; 選ばないorエラーでジャンプ
*play1
cls
pos 60,200
if ループ切り替え表示=1:mes "ループONです。"
if ループ切り替え表示=0:mes "ループOFFです。"
pos 0,0
mes "再生中の曲 と言うよりファイルの場所\n: "+refstr ; 選んだ曲名を表示
font "font_normal",30:color 255,,,: mes "※音量注意 初めは音量最少厳守":color ,,,:font "font_normal",0
mes "拡張子は対応していても再生できない曲があります。\n一時停止ができません。\nループ切り替えるだけで曲が初めからになります。\n曲名が分かりずらいです が全ては仕様です(笑)。" ; メッセージ
if matu=0:wait 500:matu=1 ; 音量のため5秒停止
if (ループ=0){mmload refstr,0,:mmplay 0:a=0
}else:if(ループ=1){mmload refstr,0,1:mmplay:a=1}
初めから=0
pos 300,170
button "初めから" , *hajime
pos 240,170
button "停止" , *teisi ; ボタン表示
pos 180,170
button "終了" , *owari
pos 120,170
button "曲変更" , *hennkou
pos 60,170
button "ループ" , *endres
stop
//_____________________________曲情報所得失敗時______________________________________________________________________________________________________
*restart
cls : mes "曲の取得に失敗しました。 再起動してください" ; 画面クリア後メッセージ
pos 170,20:button "再起動" , *stert:pos 250,20
button "終了" , *owari ; ボタンを表示
stop
//_________________________________停止時____________________________________________________________________________________________________________
*hajime
初めから=1
goto *play1
*teisi
mmstop ; 音楽停止
repeat
await 1
if 初めから=1:goto*play1
loop
stop
//_________________________________曲変更時__________________________________________________________________________________________________________
*hennkou
ループ=0
ループ切り替え表示=0
goto, *play ; ジャンプ
stop
//_________________________________ループボタン______________________________________________________________________________________________________
*endres
if (a=0){ループ=1:ループ切り替え表示=1
}else:if(a=1){ループ=0:ループ切り替え表示=0}
mmstop
goto *play1
//__________________________________終わり__________________________________________________________________________________________________________
*owari
end ; 終了
どのようなお方でもよろしいので回答お待ちしております。
お願いいたします(;´・ω・)
流星群 2013/6/1(Sat) 18:21:11|NO.54472
えーと、、、
取り敢えずレスが付いてない連続投稿の
スレッド消そう。な?
ht. 2013/6/1(Sat) 18:36:59|NO.54473
触りだけ使い方のサンプルを書いておいたので、他の機能についてはmciコマンドで調べてください。
dialog "wav;*.avi;*.mid;*.mp3;*asf;*wmv;*wma;*mpg" ,16, "音楽ファイル"
;open "ファイルパス" alias エイリアス名 でファイルの読み込み(エイリアスはmciの操作に使用する名前)
mci "open \"" + refstr + "\" alias current_music"
;status エイリアス 引数 で引数の情報を取得
mci "status current_music length"
mes "曲の長さ:" + stat / 1000 + "秒"
button gosub "再生", *play
button gosub "一時停止", *pause
button gosub "速度変更", *speed
button gosub "閉じる", *close
stop
*play
;play エイリアス で再生
mci "play current_music"
return
*pause
;pause エイリアス で一時停止
mci "pause current_music"
return
*speed
;set エイリアス 引数 で引数の情報を変更
mci "set current_music speed 1500" ;speed 数値 で速度の変更(1.5倍)
return
*close
;close エイリアス で対象を破棄
mci "clo
撃 2013/6/1(Sat) 18:52:06|NO.54474
dsoundex.dllとか結構簡単に
多重再生、ループ再生、速度調整、音量、パン調整などもできるので
僕は結構使ってます。一度ご覧になってみては。
狐 2013/6/1(Sat) 20:32:51|NO.54475
流星群さん
すいません。二日前にここを知ったもので勝手がわからなくて・・
狐 2013/6/1(Sat) 20:41:38|NO.54476
htさん
ソースまで貼って+詳しい説明ありがとうございます。
撃さん
調べてみます。ありがとうございます。
また質問あるかもしれないのでその時はヨケレバよろしくお願いいたします。
続レス歓迎
菊岡万次郎 2013/6/1(Sat) 21:48:22|NO.54477
ovplayオヌヌメ
流星群 2013/6/1(Sat) 22:12:20|NO.54478
>>狐さん
そうだったのですかー。
ちゃんと重複投稿も消えてるし、問題ない…かな?
狐 2013/6/2(Sun) 08:12:13|NO.54486
菊岡万次郎さん
ありがとうございます。DLしてみます。
流星群さん
はい 消してみました。 ご指導ありがt(ry
拡張プラグイン?なんて知らなかったのでいろいろ使えそうなのをDLしてみます。
また質問するかもれn(ry
ありがとうございます。(/・ω・)/ノシ
狐 2013/6/2(Sun) 11:38:42|NO.54492
終わりってこれででいいのかな?