zoukankan      html  css  js  c++  java
  • 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);
    				}
    			}
    		}
    	}
    }
    
  • 相关阅读:
    拷贝构造函数的用法
    虚基类的用法
    函数模板的用法,以及类外定义的注意事项
    怎么学好python?
    树状数组单点更新和区间查询
    线段树的基本操作
    快排算法的实现
    react-redux 中 connect 的常用写法
    ant-design表单处理和常用方法及自定义验证
    ionic 签名、打包
  • 原文地址:https://www.cnblogs.com/chenhaib/p/2079251.html
Copyright © 2011-2022 走看看