资源描述:
《用flash9制作的播放音乐时频谱真实显示》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用flash9制作的播放音乐时频谱真实显示(需要首先将mp3转换为sportflash.display.Sprite;importflash.display.BlendMode;//混合模式类importflash.events.*;//事件类importflash.media.Sound;//声音类importflash.media.SoundMixer;//混音器类importflash.media.SoundChannel;//声道类importflash..URLRequest;//URLRequest类importflas
2、h.utils.ByteArray;//ByteArray类importflash.display.Bitmap;//位图类importflash.display.BitmapData;importflash.filters.BlurFilter;//滤镜类importflash.filters.ColorMatrixFilter;importflash.filters.BitmapFilterQuality;//滤镜品质类importflash.geom.Rectangle;//矩形类importflash.geom.Point;
3、//Point类(点)Stage.shoapDatavarbmpData:BitmapData=neapData(350,200,true,0xFF0000);//声明用来显示效果的Bitmapvarbmp:Bitmap=neap(bmpData);//声明一个ByteArray对象varbArray:ByteArray=neber=0;varc:Number=0;//声明一个ColorMatrix滤镜varcolorM:ColorMatrixFilter=neapFilterQuality.LOpData.draain);1234
4、5下一页[感谢阅读这篇文章,..,]//应用滤镜bmpData.applyFilter(bmpData,r,p,colorM);bmpData.applyFilter(bmpData,r,p,blur);}c++;//清除绘图line.graphics.clear();//设置线条样式,颜色green,宽度1,透明度100line.graphics.lineStyle(1,0x00CC00,100);//将当前声音输出为ByteArray,注意哦,这次用的是false,上次是trueSoundMixer.puteSpectrum(b
5、Array,false,0);for(vari=0;i<256;i+=2){//在ByteArray中读取一个32位的单精度浮点数n=bArray.readFloat();//这个实际作用是把n扩大一下n=n*360;//如果i不为0if(i!=0){//画波形图line.graphics.lineTo(50+i,100-n/5);}else{//移动line.graphics.moveTo(50,100-n/5);}}}//play_btn.addEventListener(MouseEvent.MOUSE_DOouseEv
6、ent.MOUSE_DOouseEvent.MOUSE_DOouseEvent):void{if(kaiguan){_channel=_sound.play(_position);kaiguan=false;}}functionstopSounds(event:MouseEvent):void{//....设置为0位置才能使进度条归零....._channel=_sound.play(0);//......停止声音的方法........SoundMixer.stopAll();kaiguan=true;}func上一页12345下一
7、页[感谢阅读这篇文章,..,]tionpauseSounds(event:MouseEvent):void{if(!kaiguan){_position=_channel.position;_channel.stop();kaiguan=!kaiguan;}}//var_position:int=0;this.addEventListener(Event.ENTER_FRAME,onEnterFrame);functiononEnterFrame(event:Event):void{//..........进度条初始值.......
8、..................varbarath.round(length/1000)-Math.round(length/60000)*60;varfen:int=Math.round(length/60000);if(fen