前回は,あらかじめFlashドキュメントに読み込んだサウンド・ファイルを,埋め込みアセットクラスとして再生する方法をご紹介しました。今回は,外部のサウンド・ファイル(MP3ファイル)を読み込んで再生する方法をご紹介します。

 ActionScript3.0を使えば,Flashムービーに外部のMP3ファイルを読み込んで,演奏することができます。また,MP3ファイルのIDタグ情報や,波形情報にアクセスすることも可能です。

 図1のムービーでは,Flashムービーと同じディレクトリ内にある「bgm.mp3」という名前のMP3ファイルを読み込み,再生をしています(ダウンロードはこちら)。再生時には,再生の状況を表示したり,MP3ファイル波形情報にアクセスしてムービーを動かしたりといった操作をしています。

図1●BGMのMP3ファイルを読み込んで再生するムービー
図1●BGMのMP3ファイルを読み込んで再生するムービー
(クリックすると別ウィンドウでムービーを表示します)

MP3ファイルを読み込む

 それでは,実際にコードを記述していきましょう。新規Flashドキュメントを作成し,任意のフォルダに保存します。さらに,読み込むMP3ファイルを用意します。今回は,Flashドキュメントと同じフォルダに,「bgm.mp3」を用意しました(図2)。

図2●FlashドキュメントとMP3ファイル
図2●FlashドキュメントとMP3ファイル

 任意のMP3ファイルを読み込むには,Soundクラスのインスタンスを生成し,loadメソッドを使って読み込みたいファイルを指定します。今回の例では「bgm.mp3」ですね。また,ActionScript3.0では,ファイルを読み込むなど,外部のリソースにアクセスしたい時には,URLRequestクラスを使ってそのURLを指定します(第17回でテキストファイルを読み込んだ時と同じ方法です)。

 したがって,同じフォルダ内(ディレクトリ内)にある「bgm.mp3」を読み込むには,次のようにコードを記述します。

//サウンドクラスのインスタンスを準備
var sound:Sound = new Sound();
//読み込みたいMP3ファイルへのパス情報を準備
var request:URLRequest = new URLRequest("bgm.mp3");
//loadメソッドを使ってMP3ファイルを読み込む
sound.load(request);

 さらに,読み込んだファイルをすぐに再生したい場合には,続けてplayメソッドを実行します。

var sound:Sound = new Sound();
var request:URLRequest = new URLRequest("bgm.mp3");
sound.load(request);
//すぐに再生
sound.play();

 読み込むMP3ファイルのファイル・サイズが大きい場合には,すぐにすべてのサウンド・データを読み込めないこともありますが,上記の形でplayメソッドを記述しておくと,読み込んだ部分までの演奏を随時行ってくれます。いわゆる「ストリーミング再生」のような状態で再生できるわけですね。単純にMP3ファイルを読み込んで演奏する場合は,このように,SoundクラスとURLRequestクラスを組み合わせて使用すればOKです。