永发信息网

AS3中那种随着音乐节奏变换的声波图形要用什么函数才能实现呢?

答案:1  悬赏:70  手机版
解决时间 2021-03-05 10:44
求教!谢谢,
最佳答案
大概原理就是,你load完一首歌之后,play(),在注册一个enterframe方法,在这个方法内,用SoundMixer.computeSpectrum(bArray,true,0); //把音频数据转化为字节数组,并保存在barray里,(SoundMixer类会自动获取在程序中的声音流).然后用二进制的bArray.readFloat()得到每一帧的声音数据,根据这个声音数据做你想做的事,我举个简单的例子。

public class SoundDrawBar extends Sprite
{
private var url:String = "a.mp3";
private var sound:Sound = new Sound(); //创建声音
private var schannel:SoundChannel; //创建声音通道
private var barray:ByteArray = new ByteArray(); //创建字节数组
private var ary:Array;
private var n:Number = 0; //记录数量
private var lines:Sprite = new Sprite ;//线条的容器
public function SoundDrawBar():void
{
// var soundTest:SoundTest = new SoundTest(stage);
// addChild(soundTest);
init();
}

private function init():void
{
//将mp3文件载入到声音并播放
var req:URLRequest = new URLRequest(url);
sound.load(req);
sound.play();
this.addChild(lines);
//从载入第一帧开始,就不断循环触发的事件
this.addEventListener(Event.ENTER_FRAME, show);
}

//开始绘图
private function show(evt:Event):void
{
if(Math.random() > 0.5){
var r:int =-Math.random()*20
}else{
r = Math.random()*20
}
n = 0; //先清零
lines.graphics.clear(); //清除所有图形

//把音频数据转化为字节数组,并保存在barray里,之后将会用这些数据生成动态变化的小竖线
SoundMixer.computeSpectrum(barray,true,0);
var tempx:int = 0;
var tempy:int = 100;
//绘制动态的小竖线动画,让每条线都隔一点距离,所以用i+=16
for(var i:uint = 0; i < 400; i += 10)
{
n = barray.readFloat();
var num:Number = n * 100;
lines.graphics.lineStyle(4, 0x00ff00);
lines.graphics.moveTo(tempx, tempy); //绘制线条起始点
lines.graphics.moveTo(i, 100);
lines.graphics.lineTo(i, 100 - num); //绘制线条终点
lines.graphics.endFill();
tempx = i;
tempy = 100 - num;
}
}
}
其实主要你拿到了barray的数据,根据这数据做出来的东西,都可以有跟随音乐波动的效果。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
定义在R上的奇函数fx的最小正周期为2,x∈(0,
abs打印一般是多少钱一克
我男朋友说咱俩都谈那么久了,要不今晚就把事
德清中意大药房这个地址在什么地方,我要处理
怎么才能让手腕变粗
有法院打官司时法院能帮调查取证吗 有关丈夫
9个月宝宝吃鸡蛋羹需要放盐吗
直列6缸v型6缸哪个更省油
沈阳业达暖通工程有限公司地址在什么地方,想
1米等于多少公分多少厘米多少毫米
宁海农村里自建房需要多少钱
微信链接范冰冰的未接来电是怎么回事
汽车牌照代表的城市
六安龙翔美食王禽业有限公司这个地址在什么地
脚骨折一百多天了怎么还是肿涨,到了晚上
推荐资讯
红花郎玉林旗舰店怎么去啊,有知道地址的么
请问学术论文发表可以写多个人的名字吗?我们
江东交谊舞会所地址在哪,我要去那里办事
哪个词能与“楚楚”组成情侣名
大众朗逸和一汽哪款车是兄弟车型
钠含量每100克中含有1000m是什么意思
英语专业八级考试中分几次收卷子?都是什么时
【八年级数学一次函数】新人教版八年级下册数
马六甲适合玩几天
合肥初中物理用的哪个版本的教材?
海天味业什么时候上市
华为荣耀8,64级5.5屏目报价多少钱
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?