http://task.zhubajie.com/1027326/
package { import flash.display.Sprite; import flash.media.Microphone; import flash.system.Security; import flash.system.SecurityPanel; import org.bytearray.micrecorder.*; import org.bytearray.micrecorder.events.RecordingEvent; import org.bytearray.micrecorder.encoder.WaveEncoder; import org.as3wavsound.WavSound; import flash.events.MouseEvent; import flash.events.Event; import flash.events.ActivityEvent; import fl.transitions.Tween; import fl.transitions.easing.Strong; import flash.net.FileReference; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.net.navigateToURL; import flash.display.Loader; import flash.net.URLLoader; import flash.display.MovieClip; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.FullScreenEvent; import flash.display.CapsStyle; import flash.media.SoundTransform; import fl.controls.Slider; import fl.events.SliderEvent; import flash.events.StatusEvent; public class Main extends Sprite { private var mic:Microphone;//A microphone instance private var waveEncoder:WaveEncoder = new WaveEncoder();//Will encode the data captured by the microphone, part of MicRecorder private var recorder:MicRecorder = new MicRecorder(waveEncoder);//Creates a MicRecorder instance and uses the WaveEncoder class to encode //private var recBar:RecBar = new RecBar();//The recording indicator created before //private var tween:Tween;//A tween instance, used for animations private var fileReference:FileReference = new FileReference();//Used to save the encoded file to disk private var player:WavSound; //private var channel:SoundChannel; private var preLevel:int; private var sound:Sound; private var myXML:XML; private var loader:URLLoader; private var swfWidth:int; private var swfHeight:int; private var lastframe:int; private var nextframe:int; private var curFrame:int; private var curNum:int; private var totalframes:int; private var totalnum:int; private var replayFlag:Boolean = false; private var recFlag:Boolean = false; private var testFlag:Boolean = false; private var helpFlag:Boolean = false; private var homeFlag:Boolean = false; private var freeFlag:Boolean = false; private var fsFlag:Boolean = false; private var frameArr:Array=new Array(); private var filename:String; private var i:int; private var En:TextField; private var Cn:TextField; private var txt:TextField; private var testType:String; private var testValue:String; private var helpType:String; private var helpValue:String; private var homeType:String; private var homeValue:String; private var swfLoader:Loader; private var swfRoot:MovieClip=new MovieClip(); //创建转换声音事件处理函数 private function changeVolue(evt:SliderEvent):void { //创建转换对象 var trans:SoundTransform=new SoundTransform(); //获取声音的值,并加入转换对象 trans.volume = evt.target.value / 25.0; //实现转换 soundTransform = trans; setVol.mcVol.gotoAndStop(evt.target.value+1); } private function onStatu(e:StatusEvent):void { //if (e.code==Microphone.) trace(e.code); trace(mic.muted); } public function Main():void { setVol.sliderChangeVolue.value = Math.floor(soundTransform.volume * 25); setVol.mcVol.gotoAndStop(setVol.sliderChangeVolue.value); setVol.btnVolBg.enabled = false; setVol.btnVolBg.mouseEnabled = false; addListeners(); // constructor code //Stops the rec button and the mic indicator configureSubtitles(); loadXml(); /* swfRoot.gotoAndPlay(1); btnStudy.enabled = true; btnStudy.mouseEnabled=true; btnAuto.enabled = false; btnAuto.mouseEnabled=false; curNum = 0; btnLast.visible = false; btnNext.visible = false; En.visible = false; Cn.visible = false; btnEn.enabled = false; btnCn.enabled = false; */ autoBTN(null); setChildIndex(btnAuto,getChildIndex(btnStudy)); //btnRec.stop(); activity.stop(); activity.visible = false; //Starts the microphone and shows the Settings dialog to activate it; mic = Microphone.getMicrophone(); mic.setSilenceLevel(0); mic.rate = 11; mic.gain = 30; mic.noiseSuppressionLevel = 40; mic.setSilenceLevel(50, 500); //if(Security.LOCAL_TRUSTED!=localTrusted) //mic.addEventListener(StatusEvent.STATUS,onStatu); if (mic.muted) { Security.showSettings(SecurityPanel.PRIVACY); } //mic.setLoopBack(true); mic.setUseEchoSuppression(true); mic.setLoopBack(false); //Security.allowDomain("Local"); //"2"; //Security.showSettings("2"); //btnStudy.enabled = true; //btnStudy.mouseEnabled = true; } private function addListeners():void { //Starts recording when the rec button is activated btnAuto.addEventListener(MouseEvent.MOUSE_UP, autoBTN); btnStudy.addEventListener(MouseEvent.MOUSE_UP, studyBTN); setVol.sliderChangeVolue.addEventListener(SliderEvent.CHANGE,changeVolue); btnPlay.addEventListener(MouseEvent.MOUSE_UP, playBTN); btnStop.addEventListener(MouseEvent.MOUSE_UP, stopBTN); btnFS.addEventListener(MouseEvent.MOUSE_UP, fullScreen); btnEn.addEventListener(MouseEvent.MOUSE_UP, showEn); btnCn.addEventListener(MouseEvent.MOUSE_UP, showCn); btnRec.addEventListener(MouseEvent.MOUSE_UP, startRecording); recorder.addEventListener(RecordingEvent.RECORDING, recording); recorder.addEventListener(Event.COMPLETE, recordComplete); btnRep.addEventListener(MouseEvent.MOUSE_UP, rePlay); btnCmp.addEventListener(MouseEvent.MOUSE_UP, cmpBTN); btnTest.addEventListener(MouseEvent.MOUSE_UP, testBTN); btnHelp.addEventListener(MouseEvent.MOUSE_UP, helpBTN); btnHome.addEventListener(MouseEvent.MOUSE_UP, homeBTN); btnLast.addEventListener(MouseEvent.MOUSE_UP, lastBTN); btnNext.addEventListener(MouseEvent.MOUSE_UP, nextBTN); //The recorder listens for a complete event; //activity.addEventListener(Event.ENTER_FRAME, updateMeter); }