※↑リンク先はポップアップします。音量に気をつけてください。
ここにあったスペクトラムのサンプルをちょこっと改造。コピペして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); } }