| Package | flash.media |
| Classe | public class Sound |
| Héritage | Sound EventDispatcher Object |
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Pour contrôler des sons imbriqués dans un fichier SWF, utilisez les propriétés de la classe SoundMixer.
Remarque : l'API son d'ActionScript 3.0 est différente de celle d'ActionScript 2.0. Dans ActionScript 3.0, il est impossible de prendre des objets son et de les classer selon un ordre hiérarchique pour contrôler leurs propriétés.
Lorsque vous employez cette classe, tenez compte du modèle de sécurité Flash Player :
Sound.id3, SoundMixer.computeSpectrum(), SoundMixer.bufferTime et la classe SoundTransform comptent parmi les API liées au son qui sont soumises à cette restriction.Pour plus d'informations, consultez les références suivantes :
Voir aussi
| Propriété | Défini par | ||
|---|---|---|---|
| bytesLoaded : uint
[lecture-seule]
Renvoie le nombre d’octets actuellement disponibles dans cet objet Sound.
| Sound | ||
| bytesTotal : int
[lecture-seule]
Renvoie le nombre total d’octets que contient l’objet Sound.
| Sound | ||
![]() | constructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
| Object | |
| id3 : ID3Info
[lecture-seule]
Donne accès aux métadonnées faisant partie d'un fichier MP3.
| Sound | ||
| isBuffering : Boolean
[lecture-seule]
Renvoie l’état de mise en mémoire tampon des fichiers MP3 externes.
| Sound | ||
| length : Number
[lecture-seule]
Durée du son actuel, en millisecondes.
| Sound | ||
![]() | prototype : Object
[static]
Référence à l’objet prototype d’un objet de classe ou fonction.
| Object | |
| url : String
[lecture-seule]
URL à partir de laquelle le son a été chargé.
| Sound | ||
| Méthode | Défini par | ||
|---|---|---|---|
|
Crée un objet Sound.
| Sound | ||
![]() |
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 | |
|
Ferme le flux, ce qui entraîne l’arrêt du téléchargement des données.
| Sound | ||
![]() |
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 | |
|
Lance le chargement d’un fichier MP3 externe à partir de l’URL spécifiée.
| Sound | ||
|
Crée un objet SoundChannel pour lire le son.
| Sound | ||
![]() |
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 | |
![]() |
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 | ||
|---|---|---|---|---|
![]() | Distribué lorsque Flash Player a le focus du système d’exploitation et devient actif. | EventDispatcher | ||
| Distribué lorsque le chargement de données aboutit. | Sound | |||
![]() | Distribué lorsque Flash Player perd le focus du système d’exploitation et devient inactif. | EventDispatcher | ||
| Distribué par un objet Sound lorsque des données ID3 sont disponibles pour un son MP3. | Sound | |||
| Distribué lorsqu'il se produit une erreur d'entrée/sortie entraînant l’échec d’un chargement. | Sound | |||
| Distribué lors du démarrage d’une opération de chargement. | Sound | |||
| Distribué lors de la réception de données, au fur et à mesure d’un chargement. | Sound | |||
| bytesLoaded | propriété |
bytesLoaded:uint [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Renvoie le nombre d’octets actuellement disponibles dans cet objet Sound. En règle générale, cette information ne présente d’intérêt que pour les fichiers chargés en externe.
public function get bytesLoaded():uint
| bytesTotal | propriété |
bytesTotal:int [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Renvoie le nombre total d’octets que contient l’objet Sound.
public function get bytesTotal():int
| id3 | propriété |
id3:ID3Info [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Donne accès aux métadonnées faisant partie d'un fichier MP3.
Les fichiers son MP3 peuvent contenir des balises ID3 qui fournissent des métadonnées sur le fichier. Si le son MP3 que vous chargez à l'aide de la méthode Sound.load() contient des balises ID3, vous pouvez interroger ces propriétés. Seules les balises ID3 qui utilisent le jeu de caractères UTF-8 sont prises en charge.
Flash Player 9 et version ultérieure prennent en charge les balises ID3 2.0, plus particulièrement 2.3 et 2.4. Les tableaux suivants répertorient les balises ID3 2.0 standard et le type de contenu que les balises représentent. La propriété Sound.id3 permet d’accéder à ces balises par le biais du format my_sound.id3.COMM, my_sound.id3.TIME, etc. Le premier tableau décrit les balises auxquelles il est possible d’accéder par le biais du nom de propriété ID3 2.0 ou le nom de propriété ActionScript. Le second tableau décrit les balises ID3 qui sont prises en charge, mais ne possèdent pas de propriétés prédéfinies dans ActionScript.
| Balise ID3 2.0 | Propriété ActionScript correspondante |
| COMM | Sound.id3.comment |
| TALB | Sound.id3.album |
| TCON | Sound.id3.genre |
| TIT2 | Sound.id3.songname |
| TPE1 | Sound.id3.artist |
| TRCK | Sound.id3.track |
| TYER | Sound.id3.year |
Le tableau ci-dessous décrit les balises ID3 qui sont prises en charge, mais ne possèdent pas de propriétés prédéfinies dans ActionScript. Pour y accéder, appelez mySound.id3.TFLT, mySound.id3.TIME, etc.
| Propriété | Description |
| TFLT | Type de fichier |
| TIME | Durée |
| TIT1 | Description du groupe de contenus |
| TIT2 | Titre/nom du morceau/description du contenu |
| TIT3 | Sous-titre/description plus précise |
| TKEY | Touche initiale |
| TLAN | Langues |
| TLEN | Durée |
| TMED | Type de média |
| TOAL | Titre de l’album/du film/du spectacle d'origine |
| TOFN | Nom du fichier d'origine |
| TOLY | Paroliers/auteurs d'origine |
| TOPE | Interprètes/musiciens d’origine |
| TORY | Année de parution d'origine |
| TOWN | Propriétaire du fichier/détenteur de licence |
| TPE1 | Interprètes principaux/solistes |
| TPE2 | Groupe/orchestre/accompagnement |
| TPE3 | Chef d'orchestre/description plus détaillée des musiciens |
| TPE4 | Interprété, remixé ou modifié par |
| TPOS | Elément d'un ensemble |
| TPUB | Editeur |
| TRCK | Numéro de piste/position dans l'ensemble |
| TRDA | Dates d'enregistrement |
| TRSN | Nom de la station radio Internet |
| TRSO | Propriétaire de la station radio Internet |
| TSIZ | Taille |
| TSRC | ISRC (international standard recording code - code standard et international d'enregistrement) |
| TSSE | Logiciel/matériel et paramètres utilisés pour le codage |
| TYER | Année |
| WXXX | Structure de lien URL |
Pour utiliser cette propriété, tenez compte du modèle de sécurité de Flash Player :
id3 d’un objet Sound est toujours autorisée pour les fichiers SWF qui se trouvent sur le même sandbox de sécurité que le fichier audio. Des contrôles de sécurité sont nécessaires pour les fichiers se trouvant sur d’autres sandbox.load() de la classe Sound, vous pouvez spécifier un paramètre context qui est un objet SoundLoaderContext. Si vous réglez la propriété checkPolicyFile de l’objet SoundLoaderContext sur true, Flash Player recherche un fichier de régulation interdomaines sur le serveur à partir duquel le son est chargé. S’il existe un fichier de régulation interdomaines qui autorise le domaine du fichier SWF effectuant le chargement, le fichier peut alors accéder à la propriété id3 de l’objet Sound ; dans le cas contraire, il n’y a pas accès.Pour plus d'informations, consultez les références suivantes :
public function get id3():ID3Info
Voir aussi
Dans le constructeur, le fichier audio est chargé mais n'est pas défini sur lecture. Ici, le fichier est supposé être dans le répertoire SWF. Le système doit être autorisé à lire les balises ID3 d'un fichier audio chargé. Si le fichier contient des informations ID3 alors que le programme n'est pas autorisé à les lire, un événement Event.ID3 est déclenché et la propriété id3 du fichier audio est renseignée. La propriété id3 contient un objet ID3Info renfermant toutes les informations ID3.
Dans la méthode id3Handler(), les balises ID3 du fichier sont stockées dans id3, un objet de la classe ID3Info. Un champ de texte est instancié pour afficher la liste des balises ID3. La boucle for fait une itération à travers toutes les balises ID3 2.0 et ajoute le nom et la valeur au contenu du champ de texte. L'artiste, le titre de la chanson et le nom de l'album sont également ajoutés via les propriétés (ID3Info) des informations ID3. ActionScript 3.0 et Flash Player 9 et versions ultérieures prennent en charge les balises ID3 2.0, et en particulier 2.3 et 2.4. Si vous faites une itération des propriétés comme dans la boucle for, seules les balises ID3 2.0 apparaissent. Toutefois, les données des versions précédentes sont également stockées dans la propriété id3 de la chanson et sont accessibles via les propriétés de la classe ID3Info. Les balises ID3 1.0 se situent à la fin du fichier alors que les balises ID3 2.0 sont placées au début du fichier. (Il arrive parfois que les balises des versions antérieures et ultérieures soient au même endroit dans le fichier.) Lorsqu'un fichier est encodé avec des balises 1.0 et 2.0 au début et à la fin du fichier, la méthode id3Handler() doit être invoquée deux fois. Elle lit d'abord la version 2.0, puis la version 1.0. Si seule une balise ID3 1.0 est disponible, les informations sont alors accessibles via les propriétés d'informations ID3, telles que id3.songname. Pour ID3 2.0, la propriété id3.TITS récupère le titre de la chanson à l'aide de la nouvelle balise (TITS).
Notez que aucune gestion d'erreur n'est écrite pour cet exemple et que si le contenu ID3 est long, le résultat peut dépasser la zone visible.
package {
import flash.display.Sprite;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.media.ID3Info;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.Event;
public class Sound_id3Example extends Sprite {
private var snd:Sound = new Sound();
private var myTextField:TextField = new TextField();
public function Sound_id3Example() {
snd.addEventListener(Event.ID3, id3Handler);
snd.load(new URLRequest("mySound.mp3"));
}
private function id3Handler(event:Event):void {
var id3:ID3Info = snd.id3;
myTextField.autoSize = TextFieldAutoSize.LEFT;
myTextField.border = true;
myTextField.appendText("Received ID3 Info: \n");
for (var propName:String in id3) {
myTextField.appendText(propName + " = " + id3[propName] + "\n");
}
myTextField.appendText("\n" + "Artist: " + id3.artist + "\n");
myTextField.appendText("Song name: " + id3.songName + "\n");
myTextField.appendText("Album: " + id3.album + "\n\n");
this.addChild(myTextField);
}
}
}
| isBuffering | propriété |
isBuffering:Boolean [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Renvoie l’état de mise en mémoire tampon des fichiers MP3 externes. Si la valeur correspond à true, la lecture éventuelle est interrompue pendant que l’objet attend des données supplémentaires.
public function get isBuffering():Boolean
| length | propriété |
length:Number [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Durée du son actuel, en millisecondes.
public function get length():Number
| url | propriété |
url:String [lecture-seule]
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
URL à partir de laquelle le son a été chargé. Cette propriété s’applique uniquement aux objets Sound chargés à l’aide de la méthode Sound.load(). Pour les objets Sound associés à une ressource son de la bibliothèque d’un fichier SWF, la valeur de la propriété url correspond à null.
La première fois que vous appelez Sound.load(), la valeur de la propriété url est d’abord définie null car l’URL finale n’est pas encore connue. La propriété url a une autre valeur dès qu’un événement open est distribué à partir de l’objet Sound.
La propriété url contient l'URL absolue finale à partir de laquelle un son a été chargé. En règle générale, la valeur de la propriété url est identique à la valeur transmise au paramètre stream de Sound.load(). Si vous transmettez une URL relative à Sound.load(), la valeur de la propriété url représente l’URL absolue. En outre, si la requête d’URL d’origine est redirigée par un serveur HTTP, la valeur de la propriété url reflète l’URL finale à partir de laquelle le fichier audio a réellement été téléchargé. La publication d’une URL finale absolue est équivalente au comportement de LoaderInfo.url.
public function get url():String
Voir aussi
| Sound | () | Constructeur |
public function Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Crée un objet Sound. Si vous transmettez un objet URLRequest valide au constructeur Sound, celui-ci appelle automatiquement la fonction load() pour l’objet Sound. Si vous ne transmettez pas un objet URLRequest valide au constructeur Sound, vous devez appeler la fonction load() pour l’objet Sound, sans quoi le flux ne sera pas chargé.
Une fois la fonction load() appelée pour un objet Sound, vous ne pouvez plus charger de fichier audio dans l’objet. Pour ce faire, créez un autre objet Sound.
stream:URLRequest (default = null) — URL pointant vers un fichier MP3 externe.
|
|
context:SoundLoaderContext (default = null) — Quantité minimale, en millisecondes, de données MP3 à conserver dans la mémoire tampon de l’objet Sound. Celui-ci attend de disposer au moins de cette quantité de données avant de commencer la lecture ou avant de reprendre la lecture après une interruption réseau. La valeur par défaut est 1 000 (une seconde).
|
| close | () | méthode |
public function close():void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Ferme le flux, ce qui entraîne l’arrêt du téléchargement des données. Une fois la méthode close() appelée, aucune donnée ne peut être lue dans le flux.
IOError — La fermeture du flux continu s'est révélée impossible ou ce flux n’a pas été ouvert.
|
Sound.close() est appelée et la diffusion du son s'arrête.
Dans le constructeur, un champ de texte est créé pour les boutons Start et Stop. Lorsque l'utilisateur clique sur le champ de texte, la méthode clickHandler() est invoquée. Elle gère le démarrage et l'arrêt du fichier audio. Notez que, selon la connexion réseau ou le moment où l'utilisateur clique sur le bouton Stop, une grande partie du fichier peut déjà avoir été chargée et l'arrêt de la lecture peut demander un certain temps. Un bloc try...catch est utilisé pour capturer toute erreur d'E/S pouvant survenir lors de la fermeture du flux. Par exemple, si le son est chargé depuis un répertoire local et n'est pas diffusé en continu, l'erreur 2029 est capturée et indique "Cet objet URLStream ne possède pas de flux ouvert".
package {
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.MouseEvent;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
public class Sound_closeExample extends Sprite {
private var snd:Sound = new Sound();
private var button:TextField = new TextField();
private var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
public function Sound_closeExample() {
button.x = 10;
button.y = 10;
button.text = "START";
button.border = true;
button.background = true;
button.selectable = false;
button.autoSize = TextFieldAutoSize.LEFT;
button.addEventListener(MouseEvent.CLICK, clickHandler);
this.addChild(button);
}
private function clickHandler(e:MouseEvent):void {
if(button.text == "START") {
snd.load(req);
snd.play();
snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
button.text = "STOP";
}
else if(button.text == "STOP") {
try {
snd.close();
button.text = "Wait for loaded stream to finish.";
}
catch (error:IOError) {
button.text = "Couldn't close stream " + error.message;
}
}
}
private function errorHandler(event:IOErrorEvent):void {
button.text = "Couldn't load the file " + event.text;
}
}
}
| load | () | méthode |
public function load(stream:URLRequest, context:SoundLoaderContext = null):void
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Lance le chargement d’un fichier MP3 externe à partir de l’URL spécifiée. Le constructeur Sound appelle automatiquement Sound.load() si vous lui fournissez un objet URLRequest valide. Vous ne devez appeler Sound.load() manuellement que si vous ne fournissez aucun objet URLRequest valide au constructeur Sound, ou si vous lui transmettez la valeur null.
Une fois la fonction load() appelée pour un objet Sound, vous ne pouvez plus charger de fichier audio dans l’objet. Pour ce faire, créez un autre objet Sound.
Sound.load() n'est pas autorisé si le fichier SWF appelant se trouve dans le sandbox local avec système de fichiers et que le son se trouve sur un sandbox réseau.allowNetworking des balises object et embed dans la page HTML qui comporte le contenu SWF.Pour plus d'informations, consultez les références suivantes :
Paramètres
stream:URLRequest — URL pointant vers un fichier MP3 externe.
|
|
context:SoundLoaderContext (default = null) — Quantité minimale, en millisecondes, de données MP3 à conserver dans la mémoire tampon de l’objet Sound. Celui-ci attend de disposer au moins de cette quantité de données avant de commencer la lecture ou avant de reprendre la lecture après une interruption réseau. La valeur par défaut est 1 000 (une seconde).
|
IOError — Une erreur réseau a entraîné l’échec du chargement.
|
|
SecurityError — Les fichiers SWF non approuvés au niveau local ne peuvent pas communiquer avec Internet. Pour contourner ce problème, reclassifiez le fichier SWF en tant que fichier local ayant accès au réseau ou comme fichier approuvé.
|
Voir aussi
Dans le constructeur, un objet URLRequest est créé pour identifier l'emplacement du fichier audio, qui correspond à un podcast d'Adobe. Le fichier est chargé dans un bloc try...catch pour capturer toute erreur pouvant survenir pendant son chargement. En cas d'erreur d'E/S, la méthode errorHandler() est également invoquée et le message d'erreur s'inscrit dans le champ de texte réservé au rapport de progression. Pendant la progression d'une opération de chargement, un événement ProgressEvent.PROGRESS est envoyé et la méthode progressHandler() est appelée. Ici, un événement ProgressEvent.PROGRESS est utilisé comme minuteur pour calculer la progression du chargement.
La méthode progressHandler() divise la valeur bytesLoaded transmise avec l'objet ProgressEvent par la valeur bytesTotal pour arriver au pourcentage de données audio chargées. Elle affiche ensuite ces valeurs dans le champ de texte. (Notez que si le fichier est petit, mis en cache ou dans le répertoire local, la progression peut ne pas être perceptible.)
package {
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.ProgressEvent;
import flash.events.IOErrorEvent;
public class Sound_loadExample extends Sprite {
private var snd:Sound = new Sound();
private var statusTextField:TextField = new TextField();
public function Sound_loadExample(){
statusTextField.autoSize = TextFieldAutoSize.LEFT;
var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
try {
snd.load(req);
snd.play();
}
catch (err:Error) {
trace(err.message);
}
snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
snd.addEventListener(ProgressEvent.PROGRESS, progressHandler);
this.addChild(statusTextField);
}
private function progressHandler(event:ProgressEvent):void {
var loadTime:Number = event.bytesLoaded / event.bytesTotal;
var LoadPercent:uint = Math.round(100 * loadTime);
statusTextField.text = "Sound file's size in bytes: " + event.bytesTotal + "\n"
+ "Bytes being loaded: " + event.bytesLoaded + "\n"
+ "Percentage of sound file that is loaded " + LoadPercent + "%.\n";
}
private function errorHandler(errorEvent:IOErrorEvent):void {
statusTextField.text = "The sound could not be loaded: " + errorEvent.text;
}
}
}| play | () | méthode |
public function play(startTime:Number = 0, loops:int = 0, sndTransform:SoundTransform = null):SoundChannel
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Crée un objet SoundChannel pour lire le son. Cette méthode renvoie un objet SoundChannel, auquel vous accédez pour arrêter le son et régler le volume. (Pour contrôler le volume, la balance horizontale et la balance, accédez à l’objet SoundTransform affecté au canal audio.)
Paramètres
startTime:Number (default = 0) — Position initiale du début de la lecture, en millisecondes.
|
|
loops:int (default = 0) — Définit le nombre de boucles décrit par un son sur la valeur startTime avant que le canal audio arrête la lecture.
|
|
sndTransform:SoundTransform (default = null) — Objet SoundTransform d'origine affecté au canal audio.
|
SoundChannel — Objet SoundChannel permettant de contrôler le son. Cette méthode renvoie null si vous n’êtes pas équipé d’une carte son ou si aucun canal audio n’est disponible. Le nombre maximal de canaux audio disponibles simultanément est 32.
|
Voir aussi
Le constructeur appelle la méthode Sound.load() pour commencer à charger les données audio. Il appelle ensuite la méthode Sound.play() qui commencera à lire le fichier dès que suffisamment de données seront chargées. La méthode Sound.play() renvoie un objet SoundChannel qui peut être utilisé pour contrôler la lecture du fichier. Le champ de texte affiche les instructions. Pour être sûr que le contenu où l'utilisateur souhaite que le fichier audio commence ait déjà été chargé, un objet Sprite bar est créé et affiché à la fin du chargement du fichier. Un événement Event.COMPLETE est envoyé lorsque le chargement du fichier s'est terminé avec succès, ce qui déclenche la méthode completeHandler(). La méthode completeHandler() crée ensuite la barre et l'ajoute dans la liste d'affichage. (Un objet sprite est utilisé au lieu d'un objet shape pour assurer l'interactivité.) Lorsque l'utilisateur clique sur la barre, la méthode clickHandler() est déclenchée.
Dans la méthode clickHandler(), la position de la coordonnée x du clic de l'utilisateur, event.localX, est utilisée pour déterminer l'emplacement où l'utilisateur souhaite que le fichier démarre. Comme la barre fait 100 pixels et commence à la coordonnée x 100 pixels, il est facile de déterminer le pourcentage de la position. De même, comme le fichier est chargé, la propriété length du fichier audio aura la longueur du fichier terminé, en millisecondes. La position de démarrage du fichier audio est déterminée par la longueur de ce fichier et sa position dans la ligne. Après arrêt de la lecture, le fichier audio redémarre à la position de démarrage sélectionnée, transmise sous forme de paramètre startTime à la méthode play().
package {
import flash.display.Sprite;
import flash.display.Graphics;
import flash.events.MouseEvent;
import flash.media.Sound;;
import flash.net.URLRequest;
import flash.media.SoundChannel;
import flash.events.ProgressEvent;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.IOErrorEvent;
public class Sound_playExample1 extends Sprite {
private var snd:Sound = new Sound();
private var channel:SoundChannel = new SoundChannel();
private var infoTextField:TextField = new TextField();
public function Sound_playExample1() {
var req:URLRequest = new URLRequest("MySound.mp3");
infoTextField.autoSize = TextFieldAutoSize.LEFT;
infoTextField.text = "Please wait for the file to be loaded.\n"
+ "Then select from the bar to decide where the file should start.";
snd.load(req);
channel = snd.play();
snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
snd.addEventListener(Event.COMPLETE, completeHandler);
this.addChild(infoTextField);
}
private function completeHandler(event:Event):void {
infoTextField.text = "File is ready.";
var bar:Sprite = new Sprite();
bar.graphics.lineStyle(5, 0xFF0000);
bar.graphics.moveTo(100, 100);
bar.graphics.lineTo(200, 100);
bar.addEventListener(MouseEvent.CLICK, clickHandler);
this.addChild(bar);
}
private function clickHandler(event:MouseEvent):void {
var position:uint = event.localX;
var percent:uint = Math.round(position) - 100;
var cue:uint = (percent / 100) * snd.length;
channel.stop();
channel = snd.play(cue);
}
private function errorHandler(errorEvent:IOErrorEvent):void {
infoTextField.text = "The sound could not be loaded: " + errorEvent.text;
}
}
}
Dans le constructeur, le son est chargé et un simple objet sprite rectangle button est créé. (Un objet sprite est utilisé au lieu d'un objet shape pour assurer l'interactivité.) (Ici, le fichier audio est supposé être dans le même répertoire que le fichier SWF.) (Il n'existe pas de code de gestion d'erreur pour cet exemple.)
Deux écouteurs d'événements sont configurés pour répondre aux simples clics et aux doubles clics de souris. Si l'utilisateur utilise un simple clic, la méthode clickHandler() est invoquée et la lecture du son commence. Si l'utilisateur double-clique sur le bouton, la méthode doubleClickHandler() est invoquée et le fichier audio est diffusé à deux reprises. Le second argument de la méthode play() est défini sur 1, ce qui signifie que le fichier audio reviendra à l'heure de démarrage du fichier et sera diffusé à nouveau. L'heure de démarrage, premier argument, est définie sur 0, ce qui signifie que la lecture du fichier doit commencer au début.
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.media.Sound;
import flash.net.URLRequest;
public class Sound_playExample2 extends Sprite {
private var button:Sprite = new Sprite();
private var snd:Sound = new Sound();
public function Sound_playExample2() {
var req:URLRequest = new URLRequest("click.mp3");
snd.load(req);
button.graphics.beginFill(0x00FF00);
button.graphics.drawRect(10, 10, 50, 30);
button.graphics.endFill();
button.addEventListener(MouseEvent.CLICK, clickHandler);
button.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler);
this.addChild(button);
}
private function clickHandler(event:MouseEvent):void {
snd.play();
}
private function doubleClickHandler(event:MouseEvent):void {
snd.play(0, 2);
}
}
}
Dans le constructeur, le fichier est chargé dans un bloc try...catch pour capturer toute erreur pouvant survenir pendant le chargement de fichier. Un écouteur est ajouté dans l'objet audio et répondra à un événement IOErrorEvent par un appel à la méthode errorHandler(). Un autre écouteur est ajouté pour l'application principale et répondra à un événement Event.ENTER_FRAME, utilisé comme mécanisme de minuterie pour l'affichage de la progression de la lecture. Enfin, un troisième écouteur est ajouté pour le canal audio et répondra à un événement Event.SOUND_COMPLETE (à la fin de la lecture) par un appel à la méthode soundCompleteHandler(). La méthode soundCompleteHandler() supprime également l'écouteur de l'événement Event.ENTER_FRAME.
La méthode enterFrameHandler() divise la valeur bytesLoaded transmise avec l'objet ProgressEvent par la valeur bytesTotal pour arriver au pourcentage de données audio chargées. Le pourcentage de données audio lues peut être déterminé en divisant la valeur de la propriété position du canal audio par la longueur des données audio. Toutefois, si les données audio ne sont pas entièrement chargées, la propriété length de l'objet audio ne présente que la taille des données audio déjà chargées. Une estimation de la taille définitive du fichier audio complet est calculée en divisant la valeur de la propriété length de l'objet audio en cours par la valeur de la propriété bytesLoaded divisée par la valeur de la propriété bytesTotal.
(Notez que si le fichier est petit, mis en cache ou dans le répertoire local, la progression du chargement peut ne pas être perceptible.) De même, le délai qui sépare le démarrage du chargement des données audio et celui du démarrage de la lecture des données chargées est déterminé par la valeur de la propriété SoundLoaderContext.buffertime, qui correspond par défaut à 1000 millisecondes et peut être réinitialisé.
package {
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.events.Event;
import flash.events.IOErrorEvent;
public class Sound_playExample3 extends Sprite {
private var snd:Sound = new Sound();
private var channel:SoundChannel;
private var statusTextField:TextField = new TextField();
public function Sound_playExample3(){
statusTextField.autoSize = TextFieldAutoSize.LEFT;
var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
try {
snd.load(req);
channel = snd.play();
}
catch (err:Error) {
trace(err.message);
}
snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
this.addChild(statusTextField);
}
private function enterFrameHandler(event:Event):void {
var loadTime:Number = snd.bytesLoaded / snd.bytesTotal;
var loadPercent:uint = Math.round(100 * loadTime);
var estimatedLength:int = Math.ceil(snd.length / (loadTime));
var playbackPercent:uint = Math.round(100 * (channel.position / estimatedLength));
statusTextField.text = "Sound file's size is " + snd.bytesTotal + " bytes.\n"
+ "Bytes being loaded: " + snd.bytesLoaded + "\n"
+ "Percentage of sound file that is loaded " + loadPercent + "%.\n"
+ "Sound playback is " + playbackPercent + "% complete.";
}
private function errorHandler(errorEvent:IOErrorEvent):void {
statusTextField.text = "The sound could not be loaded: " + errorEvent.text;
}
private function soundCompleteHandler(event:Event):void {
statusTextField.text = "The sound has finished playing.";
removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}
}
}| complete | Evénement |
flash.events.Event
flash.events.Event.COMPLETE
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Distribué lorsque le chargement de données aboutit.
Définit la valeur de la propriététype d'un objet événement complete.
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 réseau dont le chargement est terminé. |
Voir aussi
| id3 | Evénement |
flash.events.Event
flash.events.Event.ID3
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Distribué par un objet Sound lorsque des données ID3 sont disponibles pour un son MP3.
Définit la valeur de la propriététype d'un objet événement id3.
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 son chargeant le fichier MP3 pour lequel les données ID3 sont maintenant disponibles. La propriété target ne correspond pas toujours à l’objet de la liste d’affichage qui est associé à l’écouteur d'événements. Utilisez la propriété currentTarget pour accéder à l’objet de la liste d'affichage qui traite actuellement l'événement. |
Voir aussi
| ioError | Evénement |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Distribué lorsqu'il se produit une erreur d'entrée/sortie entraînant l’échec d’un chargement.
Définit la valeur de la propriététype d’un objet événement ioError.
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 réseau sur lequel l’erreur d’entrée/sortie s’est produite. |
text | Texte à afficher en tant que message d’erreur. |
Voir aussi
| open | Evénement |
flash.events.Event
flash.events.Event.OPEN
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Distribué lors du démarrage d’une opération de chargement.
Définit la valeur de la propriététype d'un objet événement open.
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 réseau qui a ouvert une connexion. |
Voir aussi
| progress | Evénement |
flash.events.ProgressEvent
flash.events.ProgressEvent.PROGRESS
| Version du langage : | ActionScript 3.0 |
| Version du lecteur : | Flash Player 9 |
Distribué lors de la réception de données, au fur et à mesure d’un chargement.
Définit la valeur de la propriététype d'un objet événement progress.
Les propriétés de cet événement sont les suivantes :
| Propriété | Valeur |
|---|---|
bubbles | false |
bytesLoaded | Nombre d’éléments ou d’octets chargés lors du traitement de l’événement par l'écouteur. |
bytesTotal | Nombre total d'éléments ou d'octets qui seront chargés si le processus de chargement aboutit. |
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 réseau indiquant la progression. |
Voir aussi
package {
import flash.display.Sprite;
import flash.events.*;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.net.URLRequest;
public class SoundExample extends Sprite {
private var url:String = "MySound.mp3";
private var song:SoundChannel;
public function SoundExample() {
var request:URLRequest = new URLRequest(url);
var soundFactory:Sound = 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);
song = soundFactory.play();
}
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);
}
private function progressHandler(event:ProgressEvent):void {
trace("progressHandler: " + event);
}
}
}
M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/media/Sound.html