Astuce Lire des fichiers WAV externes dans AS3

Par défaut, Flash peut lire les fichiers WAV lorsqu'ils se trouvent dans la bibliothèque, mais pas lors du chargement de fichiers externes. Lisez cette astuce pour apprendre à les jouer..


Étape 1: bref aperçu

Nous allons utiliser des méthodes communes pour demander et charger le fichier WAV souhaité et utiliser une fantastique classe tierce pour lire le fichier chargé..


Étape 2: AS3WavSound

AS3WavSound (AWS) est une excellente classe ActionScript qui peut lire des fichiers wave chargés en externe, aller sur sa page Code Google et obtenir le code source..

Maintenant, cette classe n'a pas été créée pour la lecture externe au format wav; voici une courte description de l'auteur:

Le SDK Flex ne prend pas en charge de manière native la lecture de fichiers .wav (incorporés). Jusque-là, les développeurs ont travaillé autour de cela en utilisant des hacks laids (générant des byfedata swf pour tromper Flash Player). Plus maintenant. AWS dans le sens le plus mince est simplement une classe as3 unique. Il étend la classe Sound générique dans Flash et ajoute la prise en charge de la lecture des données WAVE. Vous n'avez pas besoin de cette classe sonore si vous utilisez Flash IDE ou Flex Builder, car ils convertissent les données .wav directement en objets Sound. Le compilateur open source SDK ne prend toutefois pas en charge cette fonctionnalité. Mais ça le fait maintenant!

L'IDE Flash convertit bien les données wav en objets Sound, mais uniquement pour les fichiers incorporés (importés dans la bibliothèque); Si vous souhaitez lire un fichier WAV externe, utilisez la méthode suivante.?


Étape 3: utilisation

Préparez une nouvelle classe ActionScript et écrivez le code suivant:

 
 package 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; importer org.as3wavsound.WavSound; import org.as3wavsound.WavSoundChannel; classe finale publique principale étend Sprite fonction finale publique principale (): void playB.addEventListener (MouseEvent.MOUSE_UP, loadWav);  fonction finale privée loadWav (e: MouseEvent): void var urlRequest: URLRequest = new URLRequest ('Phone.wav'); var wav: URLLoader = new URLLoader (); wav.dataFormat = 'binaire'; wav.load (urlRequest); wav.addEventListener (Event.COMPLETE, playWav);  fonction finale privée playWav (e: Event): void var tts: WavSound = new WavSound (e.target.data en tant que ByteArray); tts.play (); 

C’est le code de base pour charger un fichier externe dans AS3, le URLLoader la classe utilise le URLRequest pour déterminer l'emplacement du fichier à charger (chargé en tant que données binaires) et, une fois l'opération terminée, la classe WavSound est utilisée pour lire le son..


Étape 4: Exemple

Regardez la démo pour un exemple de travail en utilisant le code.


Étape 5: À propos des fichiers WAV

N'oubliez pas que cette classe ne lit pas tous les sons: le fichier doit avoir une fréquence d'échantillonnage de 44100, 22050 ou 11025 Hz et des données d'échantillonnage à bitrate de 8 ou 16..


Conclusion

Utilisez cette classe pour lire vos fichiers WAV externes.

J'espère que vous avez aimé ce tutoriel, merci d'avoir lu!