• flash播放音频显示波形


    package
    {
    	//引入相关的类
    	import flash.display.Sprite;
    	import flash.display.Graphics;
    	import flash.media.Sound;
    	import flash.media.SoundChannel;
    	import flash.media.SoundMixer;
    	import flash.net.URLRequest;
    	import flash.events.Event;
    	import flash.utils.ByteArray;
    	
    	//自定义wave类,实现相关操作
    	public class wave extends Sprite
    	{
    		//定义所需变量
    		private var sound:Sound;
    		private var ba:ByteArray;
    		private var num:Number;
    		private var sound_channel:SoundChannel;
    		private var t:Number=0;
    		
    		public function wave()
    		{
    			sound=new Sound();
    			ba=new ByteArray();
    			sound.load(new URLRequest("test.mp3"));
    			sound_channel=sound.play();
    			//添加事件侦听,用spectrum函数处理
    			this.addEventListener(Event.ENTER_FRAME,spectrum);
    		}
    		//侦听处理函数,调用绘制波形函数
    		private function spectrum(event:Event)
    		{
    			graphics.clear();
    			drawFunction(1,0xbb11aa);
    			
    		}
    		//绘制波形主函数
    		private function drawFunction(thickness:Number,color:Number)
    		{
    			graphics.lineStyle(thickness,color,100);
    			//获取当前声音频谱信息
    			SoundMixer.computeSpectrum(ba,false,0);
    			//绘制声波曲线
    			for(var i=30;i<=stage.stageWidth-30;i++)
    			{
    				//以浮点形式读出当前声音频谱信息
    				num=ba.readFloat()*360;
    				if(i>30)
    				{
    					var fi=stage.stageHeight/2+num;
    					graphics.lineTo(i,fi);
    				}
    				else
    				{
    					trace(i);
    					graphics.moveTo(30,stage.stageHeight/2+num);
    				}
    			}
    		}
    	}
    }
    
  • 相关阅读:
    curl 带 body
    import com.sun.org.apache.xml.internal.security.utils.Base64问题
    动静分离业务解决网页请求不被串改
    java 主动信任证书
    IO 多路复用详解
    spanish-1.1
    spring data JPA entityManager查询 并将查询到的值转为实体对象
    微信二维码支付报错
    军训入营学生发言稿
    电位器控制两个 LED 灯交替闪烁
  • 原文地址:https://www.cnblogs.com/chenhaib/p/2079251.html
Copyright © 2020-2023  润新知