- ベストアンサー
映像や音声の読み込み
flashは外部のjpegファイルは読むことができますが、 音声ファイルを外部から読み込むことは、たぶんできなかったですよね? 映像ファイルもたぶん無理?? ボタンを押して、フォルダの中に入った音声ファイルなどを 指定できるようにしたいのですが?? 何かのソフトと併用しないと難しいでしょうか? いい方法がありましたら、アドバイスしてもらえると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
返事がおそくなりました。 >> 曲名をゲットしてきて…という入力インターフェイス >>の部分を知りたいのです。 ははあ,言われていることがわかりました。 mp3のパスを自分でエクスプローラなどで調べて, そのフルパスを,テキストフィールドに入力(コピペ)して,鳴らすパターンであれば可能です。 テキスト入力のテキストフィールドを作って,変数名を決めて, その変数名を,"曲名.mp3" の部分に書けば良いだけです。 ダブルクォーテーションは抜きです。変数名なので。 >> 日本語といったのは、ユーザーの中に日本語の >> フォルダ名を使っている人が必ずいるからです。 そう言った意味の日本語ですか。それは大丈夫でしょう。 CDでMP3を配布されるのかと思っていましたので,曲名が文字化けする可能性があるなぁと思っていたのです。 でも「参照」ボタンをクリックしたら,フォルダのツリーみたいな「ファイルを開く」ダイアログを出すのはFlashからはできません。 そういった操作にはまるで向いていないファイルです。 EXEではなく,SWFでパブリッシュして <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>ファイル選択</title> <SCRIPT LANGUAGE="VBScript"> Sub hiraku() Set Shell = CreateObject("Shell.Application") Set objFolder = Shell.BrowseForFolder(0, "ファイルを選択", -1, "c:\\") MsgBox(objFolder.Items.Item.Path) //選択したファイル名とパスを表示 End Sub </SCRIPT> </head> <body> <p><input type="button" value="ファイル選択" name="B1" onclick =VBScript:hiraku ></p> </body> </html> みたいなことを書いた,HTMLに貼り付け, 得た変数と値をSWFに送れば,できないことはないかもしれませんが(やったことはありません), C言語など別の手段でしたほうが確実で見栄えは良いと思います。 こういうことをする場合は,HTMLでなく,拡張子をHTAに変えるのですけどね。 http://dawgsdk.cside.com/desktop/ わたしはこちら方面まったくの素人なものでよくわかりません。
その他の回答 (2)
音楽ファイルを切り替える手段は, 調べてみられてわかりましたか? ここのコミュニティ(教えて!goo もしくは OKWeb)の中を見て回るだけでも,方法はたくさん書いてあると思います。 サウンドは,ムービー内に用意するのが一般的です。 それで,そのサウンドをスタートさせたり,止めたり,切り換えたりすれば良いだけです。 質問されているのは,外部のサウンド(MP3)をロードして, そのサウンドをスタートさせたり,止めたり,切り換えたりすれば良いということになります。 違いは,すでにあるものを制御するか,ロードしたものを制御するかの違いで, その他は全く同じです。 また,音はビジュアル的に見えにくいですから,どうしても身構えてしまいますが, 結局,ムービー内のムービークリップを制御するのと同じと考えれば良いです。 まず,サウンドが外部にある場合は,サウンド自身を指すオブジェクトがムービー内にありません。 だからとりあえず,サウンドオブジェクトを作る必要があります。 -------------------------------- myMusic = new Sound(); -------------------------------- これで,勝手に命名した「myMusic」という名のオブジェクトが,ムービー内にできます。 ムービークリップを作るより簡単ですね。 書く場所は,場合によりますからハッキリとは言えませんが, サウンドをロードする前にこのオブジェクトを作れば良いです。 普通はタイムラインのフレーム1のスクリプトとして書いておけば良いと思います。 そこはループするなどの理由でダメな場合は,他の場所を考えてください。 外部に a.mp3 b.mp3 … というMP3があったとします。 この a.mp3 を ロード&再生 するように指示するボタンには, --------------------------------- on (release) { myMusic.stop(); myMusic.loadSound( "a.mp3", false); myMusic.start(); } -------------------------------- と書いてください。 b.mp3 … 以降に関しては,myMusic.loadSound( "a.mp3", false); の部分を変えれば良いだけです。 myMusic.stop(); はあってもなくても良いですが, 他で使えるかもしれないので一応書いておきました。 外部にサウンドを置くと,どうしてもサウンドの開始にタイムラグが出ると思います。 その場合は,外部にサウンドを置くのではなく,ムービー内に最初から入れておくか, あらかじめ,複数のオブジェクトに,サウンドをロードさせておいて, ボタンからは,そのサウンドを stop(); させたり .start(); させたりする。というような工夫がいるかもしれません。 これは場合や好みによって変わるので何とも言えません。 ファイル名に日本語が使えるかどうかですが, OSが同じであれば大丈夫ではないでしょうか。 でもハッキリとは言い切れません。 いろいろ,動作環境を変えてやってみないとわからないと言うのが正直なところです。 無難なのはやはり英数字でしょう。
お礼
たびたびご丁寧にありがとうございます。 説明が不足みたいで恐縮なんですが、 スクリプト内で指定して切り替える方法はわかります。 このボタンを押すと、Aの曲が再生されて、 このボタンを押すと、Bの曲が再生されるといった、 予め指定された曲を再生することはできると思います。 私がやりたいのは、 myMusic.loadSound( "曲名.mp3", false); 外部にある曲名をゲットしてきて、 変数として指定してあげたいのです。 作る私ではなく、使うユーザーの人が 曲を指定できるようにしたいのです。 だから曲名が何になるのかはまったくわかりません。 曲名をゲットしてきて…という入力インターフェイス の部分を知りたいのです。 日本語といったのは、ユーザーの中に日本語の フォルダ名を使っている人が必ずいるからです。 もし、それが難しいようであれば、 C言語など別の手段を考えてみようと思います。 説明不足でお手間取らせて申し訳ないです。。。
FlashMXから,「Sound.loadSound()」 で,mp3 についてのみ外部音声をロードできます。 FlashMX と データベースの連動による動的なアプリケーションの作成 http://www.macromedia.com/jp/devnet/flash/articles/bfp_03.html FN0404002 - Sound.loadSound()メソッド http://www.fumiononaka.com/TechNotes/Flash/FN0404002.html それ以前のバージョンでも,Flash作成ソフト(Flash5や4など)に,WAVかMP3を直接読み込んで,それをSWFにパブリッシュし,そのSWFを 「loadMovie()」 でロードすれば外部音声?のロードが可能です。 また,Flash作成ソフトに一度動画を読み込んで,それをSWFにパブリッシュすれば,動画もロード可能になります。 その他,少し邪道かもしれませんが,MIDIもできます? かな?? ロードはしませんが,ロードするように見せる方法です。 Flashに音楽を読み込む http://oshiete1.goo.ne.jp/kotaeru.php3?q=1578771
お礼
ご丁寧にありがとうございます。すいません、MXを使っています。 おかげさまでサウンドは、クリアーできそうですが、 ローカル上でやるとうまくいかないようです。 どちらかというと、焼いたCD-ROMのEXEファイルから swfファイルを起動して使うことを想定しています。 動画の件は了解しました。 動画はダイレクトに読み込みにいかず、 動画のswfファイルを作り、 それを読み込むしかないのですね。 問題は、入力インターフェイスの点になってきました。 読み込む音楽ファイルを切り替える手段が flashでは見つかりません。 わかることがありましたら、よろしくお願いします。 自分でも調べてみます。
補足
補足です。読み込みですが、ローカル上で使う場合、 日本語パスは大丈夫なのか、という点が気になっています。
お礼
何度もありがとうございました。 Flashでどこまでできるのかが、大変よくわかりました。 ありがとうございます(^^)