Lag en Nyttig Audio Recorder App i Action 3

Create en Nyttig Audio Recorder App i Actionscript 3
7
Del
12
Del

Denne Cyber ​​Monday Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

I denne opplæringen vil vi lære å utvikle en nyttig og attraktiv Audio Recorder program som bruker Thibault Imbert s MicRecorder klasse. Les videre for å finne ut mer




Endelig resultat Forhåndsvisning

La oss ta en titt på det endelige resultatet vil vi jobbe mot!



Trinn 1: Kort oversikt

Vi vil gjøre bruk av Flash tegneverktøy for å lage et brukervennlig grensesnitt og kraften i Actionscript 3 for å gjøre det rekord. SWF vil da lagre lyden som en WAV på harddisken. Tredjeparts klasser (men ingen programmer) skal brukes til å ta opp og kode dataene



Trinn 2:. Dokumentinnstillinger

Launch Flash og opprette et nytt dokument. Satt scenen størrelse til 400x290px og bildefrekvens på 24 fps



Trinn 3:. Interface

Dette er grensesnittet vi vil bruke for dette programmet; en svart gradient bakgrunn, en sentral hovedknappen brukes til å starte og stoppe opptak, en innspilling bar indikator og en mikrofon aktivitet indikator.

La oss dykke i og få bygge den.



Trinn 4: Bakgrunn & Tittel

Velg rektangelverktøyet (R) og lage en 400x290 px rektangel og fylle det med denne lineær gradient:. # 282C2D, # 0C0E0E

Igjen, bruker rektangelverktøyet for å lage en # 111111, 400x1 px linje, kopiere den (Cmd + D) og flytte den 1PX ned, fyll den med # 353535.

Bruk tekstverktøyet (T) og skrive en tittel for din app, jeg brukte dette formatet .: Helvetica Neue Regular /Fet, 13pt, # E6E6E6



Trinn 5:. Rec Button

La oss nå trekke den store knappen i midten

Velg Oval Tool (O) og lage en 146x146 px sirkel, fyll den med denne lineær gradient: #EEEEEE, # 9A9A9A, bruker gradient Transform Tool (F) for å rotere graderingsfyllet

Duplicate form og gjøre. det 76x76 px, center det og endre gradient fyll til # C11402, # B11201.

Konverter knappen for å MovieClip og gi den navnet recButton.

Dobbeltklikk på ny MovieClip å angi redigeringsmodus og opprette en ny keyframe (Sett > Tidslinje > keyframe), bruker rektangel verktøyet for å lage to 18x80 px barer og fylle dem med den siste gradient

Trinn 6: Mic aktivitet. indikator

mikrofon~~POS=TRUNC kan ta litt tid; det er en tidslinje basert indikator slik at du er nødt til å endre innholdet hver ramme.

Med rektangel Primitive Tool (R) lage en 3x15 px avrundet rektangel med et hjørne radius på 3px og fylle det med # 252525. Duplicate form og gjøre en 5px mellomrom mellom hver form, gjenta denne prosessen til du kommer til 50 figurer.

Konverter figurene til MovieClip og gi den navnet aktivitet
, angi redigeringsmodus (dobbeltklikk ) og opprette 100 rammer, en keyframe og en ekstra ramme per form

Start å endre fargen på hver figur i nøkkelbildene til du kommer til 100-ramme, det vil ramme 100. alle fasonger sort, ramme 98 : en form rød, ramme 96: 2 figurer rød, etc.



Trinn 7: opptaksindikator

Velg rektangelverktøyet og skape en 400x40 px rektangel, fyll den med rød # BB1301.

Duplicate formen og endre størrelse på høyden til halvparten, og endrer farge til hvit og la bare 20% av alfa.

Bruk tekstverktøyet (T) for å legge til en innspilling melding og skape et dynamisk felt, navn det mot
, dette vil vise medgått tid siden innspillingen startet.

Konverter form og tekster til MovieClip og gi den navnet RecBar
merker du Eksporter for Action
boksen og slett klippet fra scenen



Trinn 8:. MicRecorder Class

for å kunne registrere og kode data innhentet av mikrofonen, må vi bruke MicRecorder klassen. Last den ned og flytte den til prosjektmappe



Trinn 9:. Ny Action Class

Opprett en ny (Cmd + N) Actionscript 3.0 Class og lagre den som Hoved .as
i klassen din mappe



Trinn 10:. Package

pakken søkeord lar deg organisere koden din inn i grupper som kan importeres av andre scripts, det anbefales å navngi dem starter med en liten bokstav og bruke intercaps for etterfølgende ord, for eksempel: myClasses
. Det er også vanlig å nevne dem ved hjelp av selskapets hjemmeside: com.mycompany.classesType.myClass

I dette eksempelet bruker vi en enkelt klasse, så det er ikke egentlig en. trenger for å lage et kurs mappe
pakke {



Trinn 11:. import direktiv

Dette er de klassene vi trenger å importere for klassen vår skal fungere, import
direktiv gjør eksternt definerte klasser og pakker tilgjengelig i koden
import flash.display.Sprite,. import flash.media.Microphone, import flash.system.Security, import org.bytearray.micrecorder. *; import org .bytearray.micrecorder.events.RecordingEvent, import org.bytearray.micrecorder.encoder.WaveEncoder, 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;



Trinn 12: erklærer og Forleng Class

Her er vi erklære klassen med klasse
definisjon søkeord etterfulgt av navnet som vi ønsker for klassen, husk at du må lagre filen ved hjelp av dette navnet.

strekker
søkeord definerer en klasse som er en underklasse av en annen klasse. Underklasse arver alle metoder, egenskaper og funksjoner, på den måten vi kan bruke dem i vår klasse
public class Hoved strekker Sprite {



Trinn 13:. Variabler

Dette er variabler vi kommer til å bruke, sjekk ut kommentarene i koden for å finne ut nøyaktig hva som skjer
privat Var mic. mikrofonen; //En mikrofon instanceprivate Var waveEncoder: WaveEncoder = new WaveEncoder (); //Vil kode dataene fanges opp av mikrofonen, en del av MicRecorderprivate Var opptaker: MicRecorder = new MicRecorder (waveEncoder); //Oppretter en MicRecorder eksempel og bruker WaveEncoder klassen encodeprivate Var recBar: RecBar = new RecBar (); //Opptaksindikatoren opprettet beforeprivate Var tween: Tween; //En tween eksempel brukes til animationsprivate Var fileReference: FileReference = new FileReference (); //Brukes til å lagre kodet fil på disk



Trinn 14: Constructor

Konstruktøren er en funksjon som kjøres når et objekt er opprettet fra en klasse, er den første som skal utføres når denne koden . du gjør en forekomst av et objekt eller kjører ved hjelp av Document Class
offentlig funksjon main (): void {//Stopper rec-knappen og mic indikator recButton.stop (); activity.stop (); //Starter mikrofonen og viser dialogboksen Innstillinger for å aktivere den mic = Microphone.getMicrophone (); mic.setSilenceLevel (0); mic.gain = 100; mic.setLoopBack (true); mic.setUseEchoSuppression (true); Security.showSettings ( "2"); addListeners ();}



Trinn 15:. Initial Lyttere

Denne funksjonen inneholder de nødvendige lytterne til å starte programmet
private funksjons addListeners (): void {//Starter opptaket når rec-knappen er aktivert recButton.addEventListener (MouseEvent.MOUSE_UP, startRecording); recorder.addEventListener (RecordingEvent.RECORDING, opptak); recorder.addEventListener (Event.COMPLETE, recordComplete); //Opptakeren lytter etter en komplett hendelse activity.addEventListener (Event.ENTER_FRAME, updateMeter); //Oppdaterer mic aktivitetsmåler}



Trinn 16: Start opptak

den neste funksjonen kalles når brukeren slipper Rec-knappen, starter det ved å sjekke tilgjengeligheten av mikrofonen og bruker deretter MicRecorder klassen for å fange opp data generert av mikrofonen. Rec-knappen vil nå bli brukt til å stoppe innspillingen

Den legger også Recording baren til scenen for å bruke som en visuell varsling og tidstelleren
privat funksjon startRecording (e: Mouseevent):.. Void { if (! mic = null) {recorder.record (); e.target.gotoAndStop (2); recButton.removeEventListener (MouseEvent.MOUSE_UP, startRecording); recButton.addEventListener (MouseEvent.MOUSE_UP, stoprecording); addChild (recBar); tween = new Tween (recBar, "y", Strong.easeOut, - recBar.height, 0,1, true); }}



Trinn 17:. Stoppe opptaket

Rec-knappen vil endre sin funksjonalitet ved opptak, vil det nå stoppe opptaket når slippes

Følgende kode vil bli henrettet når (stopp) knapp Rec aktiveres
privat funksjon stoprecording (e: Mouseevent):. void {recorder.stop (); //Stopp innspilling mic.setLoopBack (false); e.target.gotoAndStop (1); //knappen Endre ikon //Endre lytterne til å returnere knappene opprinnelige funksjon recButton.removeEventListener (MouseEvent.MOUSE_UP, stoprecording); recButton.addEventListener (MouseEvent.MOUSE_UP, startRecording); tween = new Tween (recBar, "y", Strong.easeOut, 0, - recBar.height, 1, true); //Skjuler innspillingen bar}



Trinn 18: Oppdatering Activity Indicator

Denne funksjonen oppdaterer Mikrofon aktivitet indikator. Den bruker activityLevel
eiendommen for å få et tall fra 0 til 100, og deretter bruker den i aktivitet
MovieClip
privat funksjon updateMeter (e: Hendelses). Void {aktivitet. gotoAndPlay (100 - mic.activityLevel);}



Trinn 19: Record

den neste funksjonen setter medgått tid i opptaks bar
privat funksjon opptak (e: RecordingEvent). void {var currentTime: int = Math.floor (e.time /1000); //Gets medgått tid siden innspillingen hendelsen ble kalt recBar.counter.text = String (currentTime); //Stiller inn tiden til Textfield //Formaterer tekst som brukes i den tiden (2 siffer tall bare i dette eksempelet) if (String (currentTime) .length == 1) {recBar.counter.text = "00: 0" + currentTime; } Else if (String (currentTime) .length == 2) {recBar.counter.text = "00:" + currentTime; }}



Trinn 20: Record Komplett

Når brukeren stopper opptaket, vil en komplett hendelse sendes, og vi vil bruke en FileReference
eksempel lagre det innspilte filen til disk
privat funksjon recordComplete (e: Hendelses). void {fileReference.save (recorder.output, "recording.wav");}



Konklusjon

MicRecorder klasse er et flott tillegg til Actionscript 3, sørg for å bokmerke denne klassen å bruke den i fremtidige prosjekter.

Takk for at du leser denne opplæringen, jeg håper du har funnet det nyttig!