Flash 创建声音波形图象

//创建位图数据
var bmpData:BitmapData = new BitmapData(256,100, false, 0x000000);
//创建模糊滤镜
var blurFilter:BlurFilter = new BlurFilter(2,1.6);

var matrix:Array = new Array();
matrix = matrix.concat([1, 0, 0, 0, 0]);// 红
matrix = matrix.concat([0, 1, 0, 0, 0]);// 绿
matrix = matrix.concat([0, 0, 1, 0, 0]);// 蓝
matrix = matrix.concat([0, 0, 0, .85, 0]);// 透明度
var alphaFilter:ColorMatrixFilter = new ColorMatrixFilter(matrix);
var bmp:Bitmap = new Bitmap(bmpData);
bmp.blendMode = BlendMode.LIGHTEN;
addChild(bmp);
addEventListener(Event.ENTER_FRAME,enterFrameHandler);

const PLOT_HEIGHT:int = 50;
const CHANNEL_LENGTH:int = 256;
var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("song.mp3");
snd.load(req);
var channel:SoundChannel;
channel = snd.play();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
snd.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete);
var bytes:ByteArray = new ByteArray();

function enterFrameHandler(e:Event) {
	SoundMixer.computeSpectrum(bytes, false, 0);
	var n:Number = 0;

	bmpData.applyFilter(bmpData,bmpData.rect,new Point(0, 0),alphaFilter);
	bmpData.draw(this);
	
	for (var i:int = 0; i < CHANNEL_LENGTH; i++) {
		n = (bytes.readFloat() * PLOT_HEIGHT);
		bmpData.setPixel((i * 2),(PLOT_HEIGHT - n),0xffCC00);
	}
	
	for (i = CHANNEL_LENGTH; i > 0; i--) {
		n = (bytes.readFloat() * PLOT_HEIGHT);
		bmpData.setPixel((i * 2),(PLOT_HEIGHT - n),0xccff00);
	}
	bmp.bitmapData.copyPixels(bmpData,bmpData.rect,new Point(0,0));
	bmp.visible = true;
	bmpData.applyFilter(bmpData,bmpData.rect,new Point(0, 0),blurFilter);
}
//播放结束时删除enterFrameHandler方法
function onPlaybackComplete(event:Event) {
	removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值