PR

Flashで作るMP3プレーヤーの基礎

2008年6月12日(木)
吉田 光利

Flashのサウンドについて

 作成したインターフェースにActionScriptを実装する前に、ここではActionScript 3.0におけるサウンドの扱いについて説明します。その方法はActionScript 2.0からは、ずいぶん変わりました。けっこう複雑になったというか、手順が増えたなぁという感じです。というのもActionScript 2.0においてはSoundクラスだけで事足りていたのですが、ActionScript 3.0からはクラスがいくつかに分かれていて、機能ごとにまとめられ、細分化されています。そのように役割を分担させているため、踏む手順も多くなっています。その分いろいろな局面に対応できるような、柔軟設計になっているのでしょう。それでは主要なクラスを次に紹介します。

主要なクラス紹介

 Soundクラスはサウンドを扱うための、もっとも基本的なクラスです(図2)。新しいSoundオブジェクトの作成、外部MP3ファイルのオブジェクトへのロード、そしてそのサウンドを再生することができます。コードサンプルとしては以下のようになります。

private var snd:Sound = new Sound();
snd.load(new URLRequest("mySound.mp3"));
snd.play();

 Soundクラスはサウンドを作成して、それを再生するまでが仕事でした。SoundChannelクラスはその後の処理を引き受けます。「サウンドの停止」「サウンドの再生位置」などをコントロールします。このSoundChannelクラスはSound.playで再生したときに戻り値として得ることができます。例えば「再生を止める」というコードを上記の続きとして書くと、以下のようになります。

private var soundChannel = snd.play();
soundChannel.stop();

 SoundTransformクラスは、「サウンドのボリューム」「サウンドのパン(左右のボリュームバランス)」をコントロールするためのクラスです。このSoundTransformクラスはSoundChannelオブジェクトのプロパティになります(親となるオブジェクトはSoundTransformだけではなく、他のオブジェクトもありますがここでは割愛します)。例えば「ボリュームが70%で(範囲は0.0~1.0)、右のスピーカーからのみ出力される」という設定を上のコードの続きで書くと、以下のようになります。

var transform:SoundTransform = new SoundTransform(0.7, 1.0);
soundChannel.soundTransform = transform;

 外部サウンドファイルに対しては有効ではありません。SoundMixerクラスはタイムラインに直接読み込まれたサウンドのみに適用されます。面白い特徴として、サウンドの波形をスナップショットできるcomputeSpectrumというメソッドを持っています。これを使うとビジュアライズされたサウンドを表現できます。

 上記の4つクラスを使ってサウンドを制御します。それでは次のページから、作成済みのインターフェースデザインに対して、ActionScriptを実装します。外部のmp3ファイルを連続再生できるFlashアプリケーション「SimpleRadio」を作成してみましょう。

BRIANS PET TOKYO主催者 WebデザインからRuby on RailsでのWebアプリ構築までをトータルに行うWebコンテンツデザイナ。現在はBRIANS PET TOKYOにてWebアプリケーション「DORIBAR(ドリバー) 」を開発中 http://brianspet.com

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています