Package | flash.media |
Classe | public final class SoundChannel |
Héritage | SoundChannel EventDispatcher Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
stop()
, des propriétés permettant de contrôler l’amplitude (volume) du canal et une propriété servant à affecter un objet SoundTransform au canal.
Plus d’exemples
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
leftPeak : Number [lecture seule]
Amplitude actuelle (volume) du canal gauche, comprise entre 0 (muet) et 1 (amplitude maximale). | SoundChannel | ||
position : Number [lecture seule]
Lorsque le fichier est en cours de lecture, la propriété position indique en millisecondes le point en cours de lecture dans le fichier audio. | SoundChannel | ||
rightPeak : Number [lecture seule]
Amplitude actuelle (volume) du canal droit, comprise entre 0 (muet) et 1 (amplitude maximale). | SoundChannel | ||
soundTransform : flash.media:SoundTransform
Objet SoundTransform affecté au canal audio. | SoundChannel |
Méthode | Défini par | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Enregistre un objet écouteur d’événement auprès d’un objet EventDispatcher afin que l’écouteur soit averti d’un événement. | EventDispatcher | ||
Distribue un événement dans le flux d’événements. | EventDispatcher | ||
Vérifie si des écouteurs sont enregistrés auprès de l’objet EventDispatcher pour un type spécifique d’événement. | EventDispatcher | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Supprime un écouteur de l’objet EventDispatcher. | EventDispatcher | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Arrête la lecture du son dans le canal. | SoundChannel | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object | ||
Vérifie si un écouteur d’événement est enregistré auprès de cet objet EventDispatcher ou de ses ancêtres pour le type d’événement spécifié. | EventDispatcher |
Evénement | Synthèse | Défini par | ||
---|---|---|---|---|
[Evénement de diffusion] Distribué lorsque l’application Flash Player obtient le focus du système d’exploitation et devient active. | EventDispatcher | |||
[Evénement de diffusion] Distribué lorsque l’application Flash Player ou AIR perd le focus du système d’exploitation et devient inactive. | EventDispatcher | |||
Distribué au terme de la lecture d’un son. | SoundChannel |
leftPeak | propriété |
position | propriété |
position:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Lorsque le fichier est en cours de lecture, la propriété position
indique en millisecondes le point en cours de lecture dans le fichier audio. Lorsque la lecture est arrêtée ou interrompue, la propriété position
indique le dernier point lu dans le fichier audio.
Généralement, la valeur de la propriété position
est enregistrée lorsque la lecture est interrompue. Vous pouvez ensuite reprendre la lecture en redémarrant à partir de cette position enregistrée.
Si le son fait l’objet d’une boucle, la propriété position
est réinitialisée à 0 au début de chaque boucle.
Implémentation
public function get position():Number
rightPeak | propriété |
soundTransform | propriété |
soundTransform:flash.media:SoundTransform
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Objet SoundTransform affecté au canal audio. Un objet SoundTransform comprend les propriétés de réglage du volume, du déplacement panoramique, ainsi que des haut-parleurs gauche et droit.
Implémentation
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Eléments de l’API associés
stop | () | méthode |
public function stop():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Arrête la lecture du son dans le canal.
Exemple ( Comment utiliser cet exemple )
Le fichier audio est chargé dans le constructeur (cet exemple suppose que le fichier est dans le même répertoire que le fichier SWF). Un champ de texte est utilisé comme bouton pour que l’utilisateur puisse lire ou interrompre la lecture. Lorsque l’utilisateur sélectionne le champ de texte button
, la méthode clickHandler()
est invoquée.
Dans la méthode clickHandler()
, la première fois que l’utilisateur sélectionne le champ de texte, le son est défini sur lecture et affecté à un canal audio. Lorsque l’utilisateur sélectionne ensuite le champ de texte pour faire une pause, la lecture s’interrompt. La propriété position
du canal audio enregistre la position du son au moment où il a été arrêté. Cette propriété est utilisée pour reprendre le son à partir de cette position, une fois que l’utilisateur sélectionne le champ de texte pour relancer la lecture. Chaque fois que la méthode Sound.play()
est appelée, un nouvel objet SoundChannel est créé et affecté à la variable channel
. L’objet Sound doit être affecté à un objet SoundChannel pour que la méthode stop()
du canal audio soit utilisée pour arrêter le son.
package { import flash.display.Sprite; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextField; import flash.events.MouseEvent; import flash.text.TextFieldAutoSize; public class SoundChannel_stopExample extends Sprite { private var snd:Sound = new Sound(); private var channel:SoundChannel = new SoundChannel(); private var button:TextField = new TextField(); public function SoundChannel_stopExample() { var req:URLRequest = new URLRequest("MySound.mp3"); snd.load(req); button.x = 10; button.y = 10; button.text = "PLAY"; button.border = true; button.background = true; button.selectable = false; button.autoSize = TextFieldAutoSize.CENTER; button.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(button); } private function clickHandler(e:MouseEvent):void { var pausePosition:int = channel.position; if(button.text == "PLAY") { channel = snd.play(pausePosition); button.text = "PAUSE"; } else { channel.stop(); button.text = "PLAY"; } } } }
soundComplete | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.SOUND_COMPLETE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué au terme de la lecture d’un son.
La constanteEvent.SOUND_COMPLETE
définit la valeur de la propriété type
d’un objet événement soundComplete
.
Les propriétés de cet événement sont les suivantes :
Propriété | Valeur |
---|---|
bubbles | false |
cancelable | false ; il n’existe aucun comportement par défaut à annuler. |
currentTarget | L’objet qui traite activement l’objet Event avec un écouteur d’événements. |
target | Objet SoundChannel dont la lecture d’un son est terminée. |
Exemple ( Comment utiliser cet exemple )
Dans le constructeur, un champ de texte est défini et contient la liste des chansons et une ligne de sélection des lectures (généralement, des boutons servent à lire et à lister les champs d’une liste de chansons). Un objet text format est défini pour changer le format des lignes de chansons en italique une fois qu’elles sont sélectionnées. Lorsqu’un utilisateur sélectionne le champ de texte, la méthode clickHandler()
est invoquée.
Dans la méthode clickHandler()
, la méthode getLineIndexAtPoint()
de l’objet de champ de texte renvoie l’index de la ligne que l’utilisateur a sélectionnée. A l’aide de l’index de la ligne, la méthode getLineText()
obtient le contenu du texte. L’instruction if vérifie si l’utilisateur a sélectionné un élément pour le lire ou pour ajouter une chanson à la liste de lecture. Si l’utilisateur a activé la lecture et qu’un morceau a été sélectionné, l’écouteur d’événement du clic de souris est supprimé et la méthode playNext()
est appelée pour commencer la lecture des morceaux. Si l’utilisateur a sélectionné un titre de chanson, le contenu de la ligne est ajouté au tableau songList
et le format de la ligne est défini sur italique.
La méthode playNext()
charge et lit chaque chanson en faisant une itération dans la liste du tableau. La chanson est également affectée à un canal audio. Un écouteur d’événement du canal audio est ajouté pour répondre lorsque la lecture de la chanson est terminée et l’événement Event.SOUND_COMPLETE
est distribué. La méthode soundCompleteHandler()
invoque alors la méthode playNext()
pour diffuser la chanson suivante. Ce processus se poursuit jusqu’à ce que la lecture de toutes les chansons du tableau soit terminée.
package { import flash.display.Sprite; import flash.media.Sound; import flash.media.SoundChannel; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.text.TextFormat; import flash.net.URLRequest; import flash.events.Event; import flash.events.IOErrorEvent; public class SoundChannel_event_soundCompleteExample extends Sprite { private var channel:SoundChannel = new SoundChannel(); private var songList:Array = new Array(); private var listTextField:TextField = new TextField(); private var songFormat:TextFormat = new TextFormat(); private var arrayIndex:int = 0; private var songSelected:Boolean = false; public function SoundChannel_event_soundCompleteExample() { listTextField.autoSize = TextFieldAutoSize.LEFT; listTextField.border = true listTextField.background = true; listTextField.text = "Song1.mp3\n" + "Song2.mp3\n" + "Song3.mp3\n" + "Song4.mp3\n" + "PLAY"; songFormat.italic = true; listTextField.addEventListener(MouseEvent.CLICK, clickHandler); addChild(listTextField); } private function clickHandler(e:MouseEvent):void { var index:int = listTextField.getLineIndexAtPoint(e.localX, e.localY); var line:String = listTextField.getLineText(index); var firstIndex:uint = listTextField.getLineOffset(index); var playLine:uint = listTextField.numLines - 1; if((index == playLine) && (songSelected == true)) { listTextField.removeEventListener(MouseEvent.CLICK, clickHandler); playNext(); } else if (index != playLine) { songList.push(line.substr(0, (line.length - 1))); listTextField.setTextFormat(songFormat, firstIndex, (firstIndex + listTextField.getLineLength(index))); songSelected = true; } } private function playNext():void { if(arrayIndex < songList.length) { var snd:Sound = new Sound(); snd.load(new URLRequest(songList[arrayIndex])); channel = snd.play(); channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); arrayIndex++; } else { songSelected = false; while(arrayIndex > 0) { songList.pop(); arrayIndex--; } } } private function soundCompleteHandler(e:Event):void { playNext(); } private function errorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } } }
package { import flash.display.Sprite; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; import flash.utils.Timer; public class SoundChannelExample extends Sprite { private var url:String = "MySound.mp3"; private var soundFactory:Sound; private var channel:SoundChannel; private var positionTimer:Timer; public function SoundChannelExample() { var request:URLRequest = new URLRequest(url); soundFactory = new Sound(); soundFactory.addEventListener(Event.COMPLETE, completeHandler); soundFactory.addEventListener(Event.ID3, id3Handler); soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler); soundFactory.load(request); channel = soundFactory.play(); channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); positionTimer = new Timer(50); positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler); positionTimer.start(); } private function positionTimerHandler(event:TimerEvent):void { trace("positionTimerHandler: " + channel.position.toFixed(2)); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function id3Handler(event:Event):void { trace("id3Handler: " + event); } private function ioErrorHandler(event:Event):void { trace("ioErrorHandler: " + event); positionTimer.stop(); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: " + event); } private function soundCompleteHandler(event:Event):void { trace("soundCompleteHandler: " + event); positionTimer.stop(); } } }
Tue Jun 12 2018, 09:30 AM Z