Snabbtips Spela externa WAV-filer i AS3

Som standard kan Flash spela WAV-filer när de finns i biblioteket, men inte när du laddar externa filer. Läs igenom denna Snabba Tips för att lära dig hur du spelar dem.


Steg 1: Kortfattad översikt

Vi använder vanliga metoder för att begära och ladda den önskade WAV-filen och använda en fantastisk tredjepartsklass för att spela den laddade filen.


Steg 2: AS3WavSound

AS3WavSound (AWS) är en utmärkt ActionScript-klass som kan spela externt laddade vågfiler, gå till sin Google Kod-sida och få källkoden.

Nu var denna klass inte exakt skapad för extern wav-uppspelning. Här är en kort beskrivning från författaren:

Flex SDK stödjer inte inbyggt (inbäddad) .wav-filer. Så långt utvecklare arbetade runt detta med hjälp av fula hackar (genererar swf bytedata för att lura Flash Player). Inte längre. AWS i smalaste mening är helt enkelt en enda as3-klass. Det utökar den generiska ljudklassen i Flash och lägger till stöd för att spela upp WAVE-data. Du behöver inte den här ljudklassen om du arbetar med Flash IDE eller Flex Builder, eftersom de konverterar .wav-data direkt till Ljudobjekt. SDK-kompilatorn med öppen källkod stöder dock inte den här funktionen. Men det gör det nu!

Flash IDE konverterar verkligen wav-data till ljudobjekt, men bara för inbäddade filer (importeras till biblioteket); Om du vill spela en extern wav-fil, använd följande metod?


Steg 3: Användning

Förbered en ny ActionScript-klass och skriv följande kod:

 
 paket import flash.display.Sprite; importera flash.events.MouseEvent; importera flash.net.URLLoader; importera flash.net.URLRequest; importera flash.events.Event; importera flash.utils.ByteArray; importera flash.media.Sound; importera org.as3wavsound.WavSound; importera org.as3wavsound.WavSoundChannel; offentliga slutklassen Huvudet sträcker sig Sprite public final function Main (): void playB.addEventListener (MouseEvent.MOUSE_UP, loadWav);  privat slutlig funktion loadWav (e: MouseEvent): void var urlRequest: URLRequest = ny URLRequest ('Phone.wav'); var wav: URLLoader = ny URLLoader (); wav.dataFormat = 'binär'; wav.load (urlRequest); wav.addEventListener (Event.COMPLETE, playWav);  privat slutlig funktion playWav (e: Event): void var tts: WavSound = ny WavSound (e.target.data som ByteArray); tts.play (); 

Detta är grundläggande kod för att ladda en extern fil i AS3, URLLoader klassen använder URLRequest för att bestämma läget för filen som ska laddas (vilken laddas som binär data) och när den är färdig används WavSound-klassen för att spela upp ljudet.


Steg 4: Exempel

Kolla in demo för ett fungerande exempel med koden.


Steg 5: Om WAV-filer

Tänk på att den här klassen inte spelar upp varje vågljud: filen måste ha en samplingsfrekvens på 44100, 22050 eller 11025 Hz och biträttsprovdata på 8 eller 16.


Slutsats

Använd den här klassen för att spela dina externa WAV-filer.

Jag hoppas att du gillade den här handledningen, tack för att du läste!