質問: flashに音楽を読み込む お世話になっています。 すごくお恥ずかしい質問かもしれないのですが・・、 flashに音楽を読み込みたくて、フリーで配布している サイトからダウンロードしました。 拡張子がmidとなっているのですが、これは 読み込むことはできないのでしょうか・・?
回答: 拡張子midのファイルはmidiと呼ばれる物です。 http://www.hicat.ne.jp/home/tomcre/dtm/dtm1.html これは音楽ファイルではありますが,音のファイルではないです。 「こんな音程で,この音色で,この大きさの音を鳴らせ」 という楽譜のようなデータだけが入っていて,実際の音自体はpcに内蔵された音源を鳴らす仕組みのファイルです。 また本来はpcのためのデータではなく,シーケンサーや電子ピアノのために開発されたファイル形式です。 だから,当然,音自体は入っていません。音を出すのは楽器です。 音自体が入っていないので,テキストデータ(フォント自体が入っているわけではないデータ)のように非常に軽いです。 flashで扱えるのは,このmidiのようなファイルではなく,mp3やwavなど音そのものが入っている音楽データです。 ですから,midiをwavやmp3に変換する必要があります。 使ったことはないですが, 「timidi95」 http://www2.ocn.ne.jp/~mohishi/download.html の一番下 また, 「仮面舞踏会」 http://www.vector.co.jp/soft/win95/art/se268485.html で変換する手も考えられます。 でも,midiを例えばmp3に変換したとしてもかなりファイルが大きくなります。 midiのように音自体が入っていないデータはすごく軽いです。 「この軽さを生かしたい!」というわけで以前,自分でしたことがある我流の方法を紹介します。 自分で考えた方法なので,あまりお薦めできませんが, flashのactionscriptの深い知識も必要なければ,javascriptなど他言語の知識も必要ない方法です。 ========================================= 上下2段のフレームページを作成します。 上でも下でも良いので,どちらかのフレームページにflashを貼り付けます。 一応,説明ではflashは下に表示されるhtmlに貼り付けたとします。 上フレームに表示される,htmlには, mizu4midi0 のようなことを書きます。 すると,このhtmlのバックグラウンドにmidiが流れるようになります。 普通はヘッダーの だけでbgmになるはずなのですが, これでは聞こえない環境があったので,bodyに強引にembedタグでmidiを貼り付けています。 最初は何も書いていないページを上フレームに表示させておいて, flashに geturl("○○.html", "top"); のように書いてターゲットフレームにmidiの貼り付いたhtmlを表示させると, flashからmidiの,オンオフの操作ができます。 このhtmlとmidiのセットを複数用意すると,ジュークボックスのようにボタン操作で音楽を切り替えることもできます。 とうぜん,このmidiの貼り付いたhtmlは見えてくれては困るので, フレーム頭のページのhtmlには, ○○ のように書いて,midiの貼り付いたhtmlが表示されるフレームの幅を0にしておくことが肝心です。 ※ もっともflashの動きとは関係なく, ずっとbgmでmidiを鳴らしたい場合は, こんなに凝らなくてもflashの貼り付いたhtmlに bgmが,○○.mid になるようなタグを書けば良いだけですよ。 以上,紹介したのは,単なるhtmlを使ったローテクによるflashからmidiの鳴らし方です。 全く自信はありません。もっと良い方法もあるとは思います。たぶん。