ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE 簡易メディアプレイヤーVer1.2 /プレイヤー (02/06/07(Fri) 21:30) [967]
......MESSAGE Re[1]: 簡易メディアプレイヤーVer1.2 /moka (02/06/09(Sun) 03:57) [968]
............MESSAGE Re[2]: 簡易メディアプレイヤーVer1.2 /プレイヤー (02/06/11(Tue) 18:02) [973]
..................MESSAGE Re[3]: 簡易メディアプレイヤーVer1.2 /moka (02/06/12(Wed) 09:11) [977]
........................MESSAGE Re[4]: 簡易メディアプレイヤーVer1.2 /プレイヤー (02/06/12(Wed) 17:17) [980]
..............................MESSAGE (削除) / (02/06/20(Thu) 00:27) [989]
....................................MESSAGE 簡易メディアプレイヤー Ver1.5 (修正版) /プレイヤー (02/07/01(Mon) 17:34) [1010]
..........................................MESSAGE 感想 /moka (02/07/08(Mon) 17:09) [1024]
................................................MESSAGE 改良点あり^^; /プレイヤー (02/07/08(Mon) 20:37) [1025]


親記事 / ▼[ 968 ]
NO.967  簡易メディアプレイヤーVer1.2
□投稿者/ プレイヤー -(2002/06/07(Fri) 21:30:38)
□U R L/
簡易メディアプレイヤー Ver1.5を使って下さい。

http://www.text2music.com/cgi/bbs/hiptree/cbbs.cgi?mode=one&namber=1010&type=967&space=90



▲[ 967 ] / ▼[ 973 ]
NO.968  Re[1]: 簡易メディアプレイヤーVer1.2
□投稿者/ moka -(2002/06/09(Sun) 03:57:31)
□U R L/ http://www.geocities.jp/moka21/teatime/
> 自動停止しないバグは未だにわからず…

演奏が自然に終了した時は、イベントが起きるわけではないので、
定期的に演奏状態をチェックしたり、事前に取得した曲の長さの分時間が経ったら、
停止イベントを呼び出す、としなければいけないと思います。

ひまわり同梱の「質素プレイヤー.hmw」が参考になるかと。



▲[ 968 ] / ▼[ 977 ]
NO.973  Re[2]: 簡易メディアプレイヤーVer1.2
□投稿者/ プレイヤー -(2002/06/11(Tue) 18:02:57)
□U R L/
「MCI送信」命令で演奏された場合は、「演奏状態」で取得できません。
下のプログラムで、テストしてみてください。
------------------------------------------------------------
演奏状態取得ボタンを、ボタンとして、作成。
   その、イベントは、演奏状態取得。
パス=ランタイムのパス&『sample\demo\night_flyer.mid』。
「open \"{パス}\" alias music」を、MCI送信。
『play music』を、MCI送信。
待機。
*演奏状態取得
   演奏状態と、言う。
   待機。



▲[ 973 ] / ▼[ 980 ]
NO.977  Re[3]: 簡易メディアプレイヤーVer1.2
□投稿者/ moka -(2002/06/12(Wed) 09:11:15)
□U R L/ http://www.geocities.jp/moka21/teatime/
> 「MCI送信」命令で演奏された場合は、「演奏状態」で取得できません。

その通りです。(^_^;)
MCIでは「status 〜 mode」で取得できます。

私はMCIはあまり使ったことないですが、参考にしたのは
http://www.e-douguya.com/
(直リンクさせてくぇ>ttp://www.e-douguya.com/eq/tech/mci.shtml)

{▼サンプルソース}
演奏状態取得ボタンを、ボタンとして、作成。
   その、イベントは、演奏状態取得。
パス=ランタイムのパス&『sample\demo\nflyer.mid』。
「open \"{パス}\" alias music」を、MCI送信。
   『status music mode』を、MCI送信。表示。
『play music』を、MCI送信。
   『status music mode』を、MCI送信。表示。
待機。
*演奏状態取得
   '演奏状態と、言う。
    『status music mode』を、MCI送信。表示。
   待機。
{▲ここまで}



▲[ 977 ] / ▼[ 989 ]
NO.980  Re[4]: 簡易メディアプレイヤーVer1.2
□投稿者/ プレイヤー -(2002/06/12(Wed) 17:17:11)
□U R L/
ありがとうございました。



▲[ 980 ] / ▼[ 1010 ]
NO.989  (削除)
□投稿者/ -(2002/06/20(Thu) 00:27:06)
□U R L/
この記事は削除されました



▲[ 989 ] / ▼[ 1024 ]
NO.1010  簡易メディアプレイヤー Ver1.5 (修正版)
□投稿者/ プレイヤー -(2002/07/01(Mon) 17:34:58)
□U R L/
{---プログラム掲示板投稿フォーム---
【ソフト名】簡易メディアプレイヤーVer1.5
【作 成 者】プレイヤー
【種  別】フリーソフトウェア
【ひまわりのバージョン】Ver1.50
【転  載】可
【改変運用】不可
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】無
【コメント】
連続再生機能と、シークバーを追加しました。
シークバーは、mokaさんの「MCIでシークバー」を参考にしました。

「MCIでシークバー」:http://www.text2music.com/cgi/bbs/hiptree/cbbs.cgi?mode=one&namber=1002&type=0&space=0

---投稿フォームここまで---}

'エラー設定
   '予期せぬエラーに、エラー処理設定。
'終了設定
   終了に、終了処理設定。
'バージョンチェック
   もし、ひまわりバージョン<1.51ならば(
      『このソフトは、ひまわりVer1.51で作られています。\nランタイムをアップデートしますか?』と、二択。
      もし、それが、はいならば(
         『http://www.text2music.com/tools/himawari/』を、起動。
      )。
   終わり。)。
'母艦設定
   母艦の、タイトルは、『簡易メディアプレイヤー Ver1.5』。
      ソフト名は、母艦。
   母艦の、背景色は、ウィンドウ色。
   母艦の、Wは、350。
   母艦の、Hは、135。
   母艦の、リサイズは、オフ。
   母艦の、ファイルドロップは、オン。
      その、ファイルドロップした時は、(
         パス名は、イベントの値。
         母艦の、背景色は、ウィンドウ色。
         ファイルドロップ処理へ、飛ぶ。
      )。   
'メニュー設定
   'ファイルメニュー
   ファイルメニューを、メニュー作成。
      その、テキストは、『ファイル(&F)』。

   ファイルメニューに、開くメニューを、メニュー追加。
      その、テキストは、『ファイルを開く(&O)』。
      その、イベントは、ファイルを開く。
   ファイルメニューに、ファイル区切りメニューを、メニュー追加。
      その、テキストは、『-』。
   ファイルメニューに、終了メニューを、メニュー追加。
      その、テキストは、『終了(&E)』。
      その、イベントは、終わり。

   '演奏メニュー
   演奏メニューを、メニュー作成。
      その、テキストは、『演奏(&P)』。

   演奏メニューに、再生メニューを、メニュー追加。
      その、テキストは、『再生(&P)』。
      その、イベントは、再生する。
      その、有効は、オフ。
   演奏メニューに、停止メニューを、メニュー追加。
      その、テキストは、『停止(&E)』。
      その、イベントは、停止する。
      その、有効は、オフ。
   演奏メニューに、一時停止メニューを、メニュー追加。
      その、テキストは、『一時停止(&H)』。
      その、イベントは、一時停止する。
      その、有効は、オフ。
   演奏メニューに、演奏区切りメニューを、メニュー追加。
      その、テキストは、『-』。
   演奏メニューに、連続再生メニューを、メニュー追加。
      その、テキストは、『連続再生(&T)』。
      その、値は、オフ。
      その、イベントは、(
         もし、連続再生=0ならば、連続再生=1。
         違えば、連続再生=0。
         もし、連続再生=1ならば、連続再生メニューの、値は、オン。
         違えば、連続再生メニューの、値は、オフ。
      )。
      その、有効は、オフ。

   'ヘルプメニュー
   ヘルプメニューを、メニュー作成。
      その、テキストは、『ヘルプ(&H)』。

   ヘルプメニューに、Readme.txtメニューを、メニュー追加。
      その、テキストは、『Readme.txtヘルプ(&H)』。
      その、イベントは、(
         母艦のパス&『Readme.txt』が、存在するか。
         もし、それが、はいならば、母艦のパス&『Readme.txt』を、起動。
         違えば、(
            BEEP。
            『Readme.txtが、見つかりませんでした。』と、言う。
         )。
      )。
   ヘルプメニューに、ヘルプ区切りメニューを、メニュー追加。
      その、テキストは、『-』。
   ヘルプメニューに、バージョンメニューを、メニュー追加。
      その、テキストは、『バージョン情報(&A)』。
      その、イベントは、(
         BEEP。
         「{ソフト名}\n作成者:プレイヤー」と、言う。
      )。
'ファイル情報設定
   ファイル名ラベルを、ラベルとして、作成。
      そのサイズは、(10,10,85,35)。
   ファイル名エディタを、エディタとして、作成。
      その、テキストは、『(なし)』。
      その、サイズは、(95,10,340,35)。
      その、有効は、オフ。

   位置バーを、バーとして、作成。
      その、サイズは、(10,45,340,70)。
      その、最小値は、0。
      その、有効は、オフ。
'ボタン設定
   開くボタンを、ボタンとして、作成。
      その、フォント色は、黒色。
      その、テキストは、『開く』。
      その、サイズは、(10,80,85,105)。
      その、イベントは、ファイルを開く。
   再生ボタンを、ボタンとして、作成。
      その、フォント色は、茶色。
      その、テキストは、『>』。
      その、サイズは、(95,80,170,105)。
      その、イベントは、再生する。
      その、有効は、オフ。
   停止ボタンを、ボタンとして、作成。
      その、フォント色は、青色。
      その、テキストは、『■』。
      その、サイズは、(180,80,255,105)。
      その、イベントは、停止する。
      その、有効は、オフ。
   一時停止ボタンを、ボタンとして、作成。
      その、フォント色は、赤色。
      その、テキストは、『||』。
      その、サイズは、(265,80,340,105)。
      その、イベントは、一時停止する。
      その、有効は、オフ。

母艦浮上。
待機。
*ファイルを開く
   母艦の、背景色は、ウィンドウ色。

   MIDI=『MIDI シーケンス(*.mid;*.midi)|*.mid;*.midi』
   WAVE=『WAVE サウンド(*.wav)|*.wav』
   MP3=『MP3 形式サウンド(*.mp3)|*.mp3』
   WMA=『Windows Media オーディオ ファイル(*.wma)|*.wma』
   AU=『AU 形式サウンド(*.au)|*.au』
   ALL=『全てのファイル(*.*)|*.*』
   「{MIDI}|{WAVE}|{MP3}|{WMA}|{AU}|{ALL}」の、読込ファイル選択。

   'キャンセル処理
   もし、それ=『』ならば、キャンセル処理へ、飛ぶ。
   パス名は、それ。

   *ファイルドロップ処理
   もし、状態<>『』ならば、『close music』を、MCI送信。

   パス名から、ファイル名を切り出す。
   ファイル名は、それ。

   「open \"{パス名}\" alias music」を、MCI送信。
   『status music length』を、MCI送信。
   MCIエラー=それ。
   それの中で、『MCIエラー:』が、何文字目。
   もし、それ=0ならば、(
      位置バーの、最大値は、MCIエラー。
      『status music position』を、MCI送信。
      位置バーの、値は、それ。
      母艦の、タイトルは、「{ファイル名}-{ソフト名}」。
      ファイル名エディタの、有効は、オン。
      ファイル名エディタの、変更された時は、ファイル名エディタの、テキストは、「{ファイル名}」。
      ファイル名エディタの、テキストは、「{ファイル名}」。
      位置バーの、有効は、オン。
      再生ボタンの、有効は、オン。
      停止ボタンの、有効は、オフ。
      一時停止ボタンの、有効は、オフ。
      再生メニューの、有効は、オン。
      停止メニューの、有効は、オフ。
      一時停止メニューの、有効は、オフ。
      連続再生メニューの、有効は、オン。
   )。
   違えば、(
      ファイル名エディタの、有効は、オフ。
      ファイル名エディタの、変更された時は、『』。
      ファイル名エディタの、テキストは、『(なし)』。
      位置バーの、有効は、オフ。
      再生ボタンの、有効は、オフ。
      再生メニューの、有効は、オフ。
      「{MCIエラー}」と、言う。
   )。

   状態は、『停止』。

   *キャンセル処理
   待機。
*再生する
   母艦の、背景色は、ウィンドウ色。

   もし、位置移動=0ならば、「seek music to {位置バー}」を、MCI送信。
   違えば、位置移動=0。
   『play music』を、MCI送信。
   MCIエラー=それ。
   MCIエラーの中で、『MCIエラー:』が、何文字目。
   もし、それ>0ならば、(
      MCIエラーと、言う。
      停止するへ、飛ぶ。
   )。
   開くボタンの、有効は、オフ。
   再生ボタンの、有効は、オフ。
   停止ボタンの、有効は、オン。
   一時停止ボタンの、有効は、オン。
   開くメニューの、有効は、オフ。
   再生メニューの、有効は、オフ。
   停止メニューの、有効は、オン。
   一時停止メニューの、有効は、オン。
   母艦の、ファイルドロップは、オフ。

   状態は、『再生』。

   *再生待機
      位置バーの、変更した時は、『』。
      『status music position』を、MCI送信。
      位置バーの、値は、それ。
      位置バーの、変更した時は、演奏位置変更。
      『status music mode』を、MCI送信。
      もし、それ=stoppedならば、(
         『seek music to 0』を、MCI送信。
         位置バーの、変更した時は、『』。
         自動停止へ、飛ぶ。
      )。
      0.01秒、待つ。
      再生待機へ、飛ぶ。
   待機。
*停止する
   母艦の、背景色は、ウィンドウ色。

   もし、連続再生=1ならば、(
      連続再生=0。
      連続再生スイッチ=1。
   )。
   『stop music』を、MCI送信。
   *自動停止
   もし、連続再生=1ならば、(
      位置移動=1。
      再生するへ、飛ぶ。
   )。
   もし、連続再生スイッチ=1ならば、(
      連続再生=1。
      連続再生スイッチ=0。
   )。
   *エラー処理
   位置バーの、変更した時は、『』。
   位置バーの、値は、0。
   位置バーの、変更した時は、演奏位置変更。
   一時停止ボタンの、テキストは、『||』。
   一時停止は、0。
   開くボタンの、有効は、オン。
   再生ボタンの、有効は、オン。
   停止ボタンの、有効は、オフ。
   一時停止ボタンの、有効は、オフ。
   開くメニューの、有効は、オン。
   再生メニューの、有効は、オン。
   停止メニューの、有効は、オフ。
   一時停止メニューの、有効は、オフ。
   一時停止メニューの、テキストは、『一時停止(&H)』。
   母艦の、ファイルドロップは、オン。

   状態は、『停止』。

   待機。
*一時停止する
   母艦の、背景色は、ウィンドウ色。
   もし、一時停止=0ならば、(
      『pause music』を、MCI送信。
      一時停止ボタンの、テキストは、『|>』。
      一時停止メニューの、テキストは、『再開(&H)』。
      一時停止は、1。
      状態は、『一時停止』。
   )。
   違えば、(
      『resume music』を、MCI送信。
      一時停止ボタンの、テキストは、『||』。
      一時停止メニューの、テキストは、『一時停止(&H)』。
      一時停止は、0。
      状態は、『再生』。
   )。
   再生待機へ、飛ぶ。
*演奏位置変更
   状態で、条件分岐。
   『一時停止』の時、再生待機へ、飛ぶ。
   『停止』の時、(
         「seek music to {位置バー}」を、MCI送信。
         待機。
   )。
   『再生』の時、再生するへ、飛ぶ。
*終了
   もし、(状態=『再生』)||(状態=『一時停止』)ならば、(
      『stop music』を、MCI送信。
      『close music』を、MCI送信。
   )。
   終わり。
*予期せぬエラー
   「予期せぬエラーが発生しました。\n強制終了しますか?」と、二択。
   もし、それが、はいならば、終わり。
   違えば、エラーから復帰。



▲[ 1010 ] / ▼[ 1025 ]
NO.1024  感想
□投稿者/ moka -(2002/07/08(Mon) 17:09:50)
□U R L/ http://www.geocities.jp/moka21/teatime/
シークバーがスムーズですね。

ファイルのドロップや読込ダイアログでは、
複数ファイルを選択される可能性があるので、その対策が必要です。
逆に、プレイリストに対応するとすごく便利そうです。

「*再生待機」の中で、「0.01秒、待つ」とありますが、
そんなに細かくする必要あります?
1秒だと遅延を感じてしまうので、0.1秒くらいで良さそうな気がします。



▲[ 1024 ] / 返信無し
NO.1025  改良点あり^^;
□投稿者/ プレイヤー -(2002/07/08(Mon) 20:37:28)
□U R L/
> シークバーがスムーズですね。

一番苦労した部分です。
自分もうまくできたと思います。


> ファイルのドロップや読込ダイアログでは、
> 複数ファイルを選択される可能性があるので、その対策が必要です。
> 逆に、プレイリストに対応するとすごく便利そうです。

ぁ…( ▽‖)
複数選択できる事を忘れていました^^;
Ver1.6ではプレイリストを付けたいと思います。


> 「*再生待機」の中で、「0.01秒、待つ」とありますが、
> そんなに細かくする必要あります?
> 1秒だと遅延を感じてしまうので、0.1秒くらいで良さそうな気がします。

0.1秒でも十分でしたね。
アドバイスありがとうございます。



- Child Tree -