1、新建一fla文件soundSpectrum2.fla
2、新建一soundSpectrum2.as文件,并与soundSpectrum2.fla关联
soundSpectrum2.as:
package
{import flash.display.Graphics;
import flash.media.Sound;
import flash.media.SoundMixer;
import flash.utils.ByteArray;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
public class soundSpectrum2 extends Sprite
{
private var bytes:ByteArray = new ByteArray();
private const PLOT_HEIGHT:int = 200;
private const CHANNEL_LENGTH:int = 256;
[Embed(source = "mp3/kate havnevik - solo.mp3")]
private var soundClass:Class;
private var snd:Sound
public function soundSpectrum2():void
{
snd = new soundClass();
snd.play();
addEventListener(Event.ENTER_FRAME, onHandler);
}private function onHandler(e:Event):void
{
SoundMixer.computeSpectrum(bytes, true, 0);
var g:Graphics = this.graphics;
g.clear();
g.lineStyle(0, 0x99FF00);
g.beginFill(0x99FF00);
g.moveTo(0, PLOT_HEIGHT);
var n:Number = 0;
// left channel
for (var i:int = 0; i < CHANNEL_LENGTH; i++)
{
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
g.endFill();
// right channel
//g.lineStyle(0, 0xCC0066);
g.lineStyle(0,0xCC0066,100,false,"noSacle","none");
g.beginFill(0x99FF00, 0.5);
g.moveTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
for (i = CHANNEL_LENGTH; i > 0; i--)
{
n = (bytes.readFloat() * PLOT_HEIGHT);
g.lineTo(i * 2, PLOT_HEIGHT - n);
}
g.lineTo(0, PLOT_HEIGHT);
g.endFill();
}
}
}
Ctrl+Enter效果: