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);
}