Guest User

Untitled

a guest
Jan 22nd, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.     import flash.display.Sprite;
  4.     import flash.events.KeyboardEvent;
  5.     import flash.events.TimerEvent;
  6.     import flash.media.Microphone;
  7.     import flash.net.SharedObject;
  8.     import flash.system.Security;
  9.     import flash.utils.ByteArray;
  10.     import flash.utils.Timer;
  11.     import org.bytearray.micrecorder.*;
  12.     import org.bytearray.micrecorder.events.RecordingEvent;
  13.     import org.bytearray.micrecorder.encoder.*;
  14.     import org.as3wavsound.*;
  15.     import flash.events.MouseEvent;
  16.     import flash.events.Event;
  17.     import flash.events.ActivityEvent;
  18.     import flash.net.FileReference;
  19.     import flash.events.StatusEvent;
  20.     import flash.media.SoundChannel;
  21.     import flash.media.Sound;
  22.    
  23.     /**
  24.      * ...
  25.      * @author Richman Stewart
  26.      */
  27.     public class Main extends Sprite //Communicating Group Speak
  28.     {
  29.         private var mic:Microphone; //A microphone instance
  30.         private var waveEncoder:WaveEncoder = new WaveEncoder(); //Will encode the data captured by the microphone, part of MicRecorder
  31.         private var recorder:MicRecorder = new MicRecorder(waveEncoder); //Creates a MicRecorder instance and uses the WaveEncoder class to encode
  32.         private var RecordingSound:SharedObject; //Used to save the encoded file to disk
  33.         //private var SendingTimer:Timer = new Timer();
  34.  
  35.         public function Main():void
  36.         {
  37.             RecordingSound = SharedObject.getLocal("RecordedSound");
  38.            
  39.             mic = Microphone.getMicrophone();
  40.             mic.setSilenceLevel(0);
  41.             mic.gain = 100;
  42.             mic.setUseEchoSuppression(false);
  43.             Security.showSettings("2");
  44.             CheckMicrophoneStatus();
  45.             CreateEvents();
  46.         }
  47.        
  48.         private function CheckMicrophoneStatus():void {
  49.             trace("Recording has started.");
  50.             trace("Currently using " + mic.name + " Microphone.");
  51.         }
  52.        
  53.         private function CreateEvents():void {
  54.             stage.addEventListener(MouseEvent.MOUSE_DOWN, StartRecording);
  55.             stage.addEventListener(MouseEvent.MOUSE_UP, StopRecording);
  56.             stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyDown);
  57.             addEventListener(Event.ENTER_FRAME, EnterFrameLoop);
  58.         }
  59.        
  60.         private function KeyDown(ev:KeyboardEvent) {
  61.             if (ev.keyCode == 39) {
  62.                 trace(RecordingSound.data.RecordedSound);
  63.                 trace("Successfully loaded recording sound.");
  64.                 var player:WavSound = new WavSound(recorder.output);
  65.                 player.play();
  66.                
  67.             }
  68.         }
  69.        
  70.         private function StartRecording(Event:MouseEvent):void {
  71.             if (mic != null) {
  72.                 recorder.record();
  73.                 mic.setLoopBack(true);
  74.             }
  75.         }
  76.        
  77.         private function StopRecording(Event:MouseEvent):void{
  78.             if (mic != null){
  79.                 recorder.stop();
  80.                 mic.setLoopBack(false);
  81.                 trace(recorder.output + " recorded output");
  82.                 RecordingSound.data.RecordedSound = recorder.output;
  83.                 RecordingSound.flush();
  84.             }
  85.         }
  86.     }
  87. }
Add Comment
Please, Sign In to add comment