FlashムービーにMP3ファイルを読み込んで音を鳴らす
図1のムービーは,4種類のMP3ファイルの中から,ユーザーが選択したものを読み込んで演奏します。さらに,MP3ファイルにアーティスト名や曲名などの情報が埋め込んである場合には,それを表示します。
図1:外部のMP3ファイルを読み込む(クリックするとムービーを表示します)
ブラウザ上で動くちょっとしたMP3プレーヤーのようですね。MP3ファイルを差し替えれば,Flashムービーを再パブリッシュすることなく,演奏する曲を変更することも可能です。
loadSoundメソッドで音を読み込む
では,実際にMP3ファイルを読み込んでみましょう。新規Flashドキュメントを作成し,任意のフォルダに名前を付けて保存します。さらに,同じフォルダ内に「BGM.mp3」という名前のMP3ファイルを用意します(図2)。
図2:FlashドキュメントとMP3ファイル
このMP3ファイルをActionScriptを使って読み込んでみましょう。MP3ファイルを読み込んで制御する場合にも,リンケージした音素材を制御する場合と同じようにSoundクラスを使用します。
Flashムービーと同一の階層にあるMP3ファイルを読み込むには,「loadSoundメソッド」を使用します。loadSoundメソッドは,一つ目の引数に読み込みたいMP3ファイルへのパスを指定し,二つ目の引数には,ストリーミング再生*1を行うかどうかをtrue/falseのブール値で指定します。
//新規Soundインスタンスを生成 var BGMSound:Sound = new Sound(this); //外部MP3ファイル「BGM.mp3」をストリーミング再生モードで読み込み BGMSound.loadSound("BGM.mp3", true);
この状態で[ムービープレビュー]を行うと,すぐにMP3ファイルの再生が始まりますね(図3)*2。これは,loadSoundメソッドの二つ目の引数に「true」を指定してストリーミング再生モードで読み込みを行っているので,MP3ファイルの読み込めた部分から逐次音を出力しているためです。
ローカル環境でテストする場合には,すぐにMP3ファイル全体が読み込めますので,結果としてloadSoundメソッドを実行するだけで,1曲の読み込みから再生までを行うことができますね。Web上にFlashムービーとMP3ファイルを配置した場合でも,ムービーを閲覧しているユーザーの回線速度に応じてMP3ファイルを読み込み次第,再生を行います。
図3: ストリーミング再生を行う(クリックするとムービーを表示します)
ストリーミング再生の方式は,ユーザーにとっての再生開始までの待ち時間が短く,スムースに音楽の演奏を開始できるというメリットがあります。その半面,回線速度が確保できないと,せっかくの音楽が途切れ途切れに演奏されてしまう可能性があります。