前回は,あらかじめFlashドキュメントに読み込んだサウンド・ファイルを,埋め込みアセットクラスとして再生する方法をご紹介しました。今回は,外部のサウンド・ファイル(MP3ファイル)を読み込んで再生する方法をご紹介します。
ActionScript3.0を使えば,Flashムービーに外部のMP3ファイルを読み込んで,演奏することができます。また,MP3ファイルのIDタグ情報や,波形情報にアクセスすることも可能です。
図1のムービーでは,Flashムービーと同じディレクトリ内にある「bgm.mp3」という名前のMP3ファイルを読み込み,再生をしています(ダウンロードはこちら)。再生時には,再生の状況を表示したり,MP3ファイル波形情報にアクセスしてムービーを動かしたりといった操作をしています。
MP3ファイルを読み込む
それでは,実際にコードを記述していきましょう。新規Flashドキュメントを作成し,任意のフォルダに保存します。さらに,読み込むMP3ファイルを用意します。今回は,Flashドキュメントと同じフォルダに,「bgm.mp3」を用意しました(図2)。
任意の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です。