geek space web solutions

Écouter l'événement SOUND_COMPLETE de SoundChannel

Saturday, 16 April 2011 14:38
There are no translations available.

as3 sound
En développant un petit lecteur MP3 en AS3, en voulant gérer le passage automatique aux morceaux suivants, je devais détecter l'événement de "fin de lecture" du morceau pour lire le morceau suivant. L'événement Event.SOUND_COMPLETE existe bien cependant je ne comprenais pas pourquoi je ne le détectais pas cet événement.

La classe SoundChannel contrôle un son dans une application.
Chaque son est attribué à un canal audio, et l'application peut avoir plusieurs canaux audio mélangés.
La classe SoundChannel contient une méthode stop(), des propriétés permettant de contrôler du volume du canal et une propriété servant à affecter un objet SoundTransform au canal.

Evénement Synthèse Défini par
soundComplete
Distribué au terme de la lecture d'un son. SoundChannel

En faisant quelques recherches sur Internet, certainement comme vous en lisant ces lignes :-), je suis tombé sur un forum où une personne explique qu'il faut rajouter l'écouteur à chaque fois que l'on fait à nouveau appel à la fonction play() de la Class Sound...

Mon problème n'était donc pas que l'événement n'était pas déclenché mais qu'il n'était plus écouté... Pour résoudre mon problème il fallait que je rajoute l'écouteur de SOUND_COMPLETE après chaque nouvel appel à la fonction play() comme ci-dessous :
soundChannel = sound.play();

soundChannel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);

(...)

private function soundCompleteHandler(event:Event):void {
trace("soundCompleteHandler: " + event);
next();
}

C'est finalement très logique puisqu'à chaque fois qu'on fait appel à la fonction play() de la Class Sound, un nouveau SoundChannel est renvoyé, il faut donc lui ajouter à nouveau l'écouteur pour détecter la "fin de la lecture" (Event.SOUND_COMPLETE)
 

Add comment


Security code
Refresh

Sections


Last articles

Scythe Mugen 2 Cooler test... Clickable area and Hand curs... Lancer une application au dé... Bot Pokemon GO NodeJS Script... Undefined property suite à u... Modifier la page d'erreur 40... Application BeerMe!... MassLoader et LoaderMax - Gé... Montage PC : Ventirad COOLER... Créer son propre type de tra...

Sondages

Do you think HTML5 can completely replace Flash ?
 
Would you be interested in an online XML editor ?
 

Paypal

paypal

Code du plugin Joomla AutoSEO 1.2 par www.geek-space.fr