Snelle tip speel externe WAV-bestanden in AS3

Standaard kan Flash WAV-bestanden afspelen als deze zich in de bibliotheek bevinden, maar niet bij het laden van externe bestanden. Lees deze snelle tip door om erachter te komen hoe je ze kunt spelen.


Stap 1: Kort overzicht

We zullen veelgebruikte methoden gebruiken om het gewenste WAV-bestand aan te vragen en te laden, en een fantastische derde klas te gebruiken om het geladen bestand af te spelen.


Stap 2: AS3WavSound

AS3WavSound (AWS) is een uitstekende ActionScript-klasse die extern geladen wave-bestanden kan afspelen, naar de Google Code-pagina kan gaan en de broncode kan ophalen.

Nu is deze klasse niet precies gemaakt voor externe wav-weergave; hier is een korte beschrijving van de auteur:

De Flex SDK ondersteunt geen native (ingesloten) .wav-bestanden. Tot dusver werkten ontwikkelaars hieromheen met behulp van lelijke hacks (het genereren van swf bytedata om de Flash Player te misleiden). Niet meer. AWS is in de dunste zin gewoon een enkele as3-klasse. Het breidt de generieke klasse Sound uit in Flash en voegt ondersteuning toe voor het afspelen van WAVE-gegevens. U hebt deze geluidsklasse niet nodig als u met de Flash IDE of Flex Builder werkt, omdat deze .wav-gegevens rechtstreeks naar Sound-objecten converteren. De open source SDK-compiler ondersteunt deze functie echter niet. Maar dat doet het nu!

De Flash IDE converteert de wav-gegevens inderdaad naar Sound-objecten, maar alleen voor ingesloten bestanden (geïmporteerd in de bibliotheek); als je een extern wav-bestand wilt spelen, gebruik dan de volgende methode?


Stap 3: Gebruik

Bereid een nieuwe ActionScript-klasse voor en schrijf de volgende code:

 
 pakket import flash.display.Sprite; import flash.events.MouseEvent; import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.Event; import flash.utils.ByteArray; import flash.media.Sound; import org.as3wavsound.WavSound; import org.as3wavsound.WavSoundChannel; openbare slotklasse Hoofd breidt uit openbare laatste functie Main (): void playB.addEventListener (MouseEvent.MOUSE_UP, loadWav);  private laatste functie loadWav (e: MouseEvent): void var urlRequest: URLRequest = new URLRequest ('Phone.wav'); var wav: URLLoader = new URLLoader (); wav.dataFormat = 'binair'; wav.load (URLRequest); wav.addEventListener (Event.COMPLETE, playWav);  private final-functie playWav (e: Event): void var tts: WavSound = new WavSound (e.target.data as ByteArray); tts.play (); 

Dit is de basiscode voor het laden van een extern bestand in AS3, de URLLoader class gebruikt de URLRequest om de locatie te bepalen van het bestand dat moet worden geladen (dat wordt geladen als binaire gegevens) en wanneer u klaar bent, wordt de klasse WavSound gebruikt om het geluid af te spelen.


Stap 4: Voorbeeld

Bekijk de demo voor een werkvoorbeeld met behulp van de code.


Stap 5: Over WAV-bestanden

Houd er rekening mee dat deze klasse niet elk wave-geluid zal afspelen: het bestand moet een samplefrequentie van 44100, 22050 of 11025 Hz hebben en bitrate-voorbeeldgegevens van 8 of 16.


Conclusie

Gebruik deze klasse om uw externe WAV-bestanden af ​​te spelen.

Ik hoop dat je deze tutorial leuk vond, bedankt voor het lezen!