
※↑リンク先はポップアップします。音量に気をつけてください。
ここにあったスペクトラムのサンプルをちょこっと改造。コピペしてmp3のパスを書き換えたらとりあえず動きました。ByteArrayクラスがバイナリデータを読み取ったり操作したりすることができるみたいです。
▼参考サイト
ByteArray
http://livedocs.adobe.com/flex/3_jp/langref/flash/utils/ByteArray.html
Flash 9 Sound Spectrum!
http://theflashblog.com/?p=181
SoundMixer.computeSpectrum() stretchFactor変化デモ
http://dev.ekndesign.com/2008/02/16/soundmixercomputespectrum-stretchfactor%E5%A4%89%E5%8C%96%E3%83%87%E3%83%A2/
▼サンプルダウンロード
spectrum.zip
▼このエラーが出たときは、mp3ファイルのパスが間違っていると思います。
Error #2044: ハンドルされていない IOErrorEvent : text=Error #2032: ストリームエラー。 at spectrum_fla::MainTimeline/frame1()
var s:Sound = new Sound();
var sc:SoundChannel;
var ba:ByteArray = new ByteArray();
var array:Array;
<p>s.load(new URLRequest("my.mp3"));
sc = s.play(0,1000);
this.addEventListener(Event.ENTER_FRAME, spectrum);
var a:Number = 0;
var al:Number = 0;
function spectrum(event:Event) {
a = 0;
al = 0;
graphics.clear();
SoundMixer.computeSpectrum(ba,true,0);
for (var i=0; i < 180; i=i+10) {
a = ba.readFloat();
al = Number(a.toFixed(3));
var num:Number = a*360;
graphics.lineStyle(num/15,0x003333|(num << 8),al);
graphics.drawCircle(stage.stageWidth/2,stage.stageHeight/2,i);
}
}