Scriptを使ってMIDIを流してみる5

 アリアンロッド・ヴィジュアルリプレイ製作のための実験部品。
 JavaScript、VBScript、JScriptを利用し、Flashからmidiを流したりフェードアウトしたりする操作をコントロールするファイル。
 ※現在、FireFoxの一部でmidiが再生できない症状が確認されています。原因は分かっているのですが、解決するためにはもうちょっと勉強しないといけないので、当面は現状のままです。ご了承下さい。

BGMコントロール部




 
 

動作内容

 BGMを「ウィンドウズ・メディア・プレイヤー・プラグイン」、「クイックタイム・プラグイン」、「フラッシュプレイヤー」のどれかで再生します。
 選択した場合はそのプラグインで、「Auto」の場合はプログラムが選択した方法で再生します。
 自動選択が上手く行かない場合に備えて、検出できていないプラグインも選択できるようになっています。本当にインストールされていないプラグインを選択した場合、BGMがフェードアウトして停止します。
 「ウィンドウズ・メディア・プレイヤー(WMP)」および「クイックタイム(QT)」ならばmidiファイルを再生し、「フラッシュプレイヤー」の場合mp3を再生します。

 細かく書くと、以下のような動作を行います。

  1. BGM再生プラグインの自動検出
  2. 選択されたプラグインの書き出し、切替、再生
  3. 自動ループ(Flash以外はフェードアウトしてループ)
  4. Nextボタンで次曲へ移動(フェードアウトして曲を切替)
  5. Prevボタンで前曲へ移動(フェードアウトして曲を切替)
  6. Stopボタンで演奏停止(フェードアウトして停止)
  7. Playボタンで演奏開始(主に再開用)
  8. スライダーで音量変更
 QuickTimeは各曲を再生する前に、5つ目のコントローラーに1秒程度の無音の曲が流れます(midiリセット)。
 どのプラグインも、BGMを読み込むオブジェクトは4つあり、5曲目以降は1番目のオブジェクトに戻って読込を行います(QTのみ、midiリセット用の5番目のオブジェクトがあります)。


動作確認のお願い

 ご協力ありがとうございました。



主な改良点

 2009/05/09 01:24 ver1.04アップ
 midiロード時間短縮のため、必要な曲の前後計4曲のみロードするように変更。
 またQuickTimeの動作安定のため、JavaScriptを修正。

 2009/04/26 14:31 ver1.03アップ
 ロード済み曲を管理するActionScriptに不具合があったので大幅修正
 htmlを整形

 2009/04/15 01:35 ver1.02アップ
 vistaではWMPの音量セットが動作しない事を確認。自動判別がQuickTimeになるように変更。

 2009/04/12 23:45 ver1.01アップ
 外部ファイルでJavaScriptとJScriptがごっちゃになっていたのを、きちんと分離。でもこれがWMPで上手く音量がセットされない主原因だろうか…?

 2009/04/12 17:00ごろ ver1.00公開
 プラグインを選択できるようにしました。
 QuickTimeを再生する時の不安定さを改善しました。
 連続早送りに対応しました。
 JavaScript、JScript、VBScriptを外部化しました。
 各種バグを退治。
 バージョンナンバーをリセットしました。


注意が必要な仕様

 次の項目は仕様であり、エラーやバグではありません。

  • WindowsMediaPlayerはIEのみでしか利用しません。他のブラウザではコントロールできない場合の方が多いためです。
  • VistaでWindowsMediaPlayerの音量をコントロールする方法が不明のため、自動検出ではWMPを無視するようになっています。
  • 複数のプラグインが利用できる場合でも、Flash内の自動検出の欄には一つしか表示されません。Autoを押した時に利用するプラグインだけが表示されています。

既知の問題点

 以下は既知の問題点です。

  • IE7でQuickTimeのプラグインの表示がおかしい。(※IEのバグ? 動作そのものは支障なしか)
  • WindowsMediaPlayerとQuickTimeとFlashで音量が異なる(直した方がいい?)
  • Windows VistaでWMPの音量がセットできない。Vistaでアプリごとに音量を調整できるようになった機能の影響という見方が有力? 回避手段があるようだが、Scriptではないかも知れない。対応できるようなら対応。

後で作る

  • BGM再演奏(音がおかしくなった時のために。メニューウィンドウから実施できるようにする。機能としては今はある。体裁を後で整える)
  • 音量のセーブとロード(セーブ機能を作った時にやる)
  • ミュート機能




技術メモ
Visual Replay Makingに戻る