Package | flash.media |
Classe | public class Sound |
Héritage | Sound EventDispatcher Object |
Sous-classes | SoundAsset |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dans Flash Player 10 et les versions ultérieures, ainsi que dans AIR 1.5 et les versions ultérieures, vous pouvez également utiliser cette classe pour gérer le son généré dynamiquement. Dans ce cas, l’objet Sound utilise la fonction que vous affectez à un gestionnaire d’événement sampleData
pour interroger les données audio. Le son est lu au fur et à mesure que les données sont récupérées dans un objet ByteArray que vous renseignez avec les données audio. Vous pouvez utiliser la méthode Sound.extract()
pour extraire les données audio d’un objet Sound, après quoi vous pouvez les manipuler avant de les réécrire dans le flux pour la lecture.
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é suivant :
- Le chargement et la lecture d’un son ne sont pas autorisés si le fichier appelant se trouve sur un sandbox réseau et que le fichier à charger est local.
- Par défaut, le chargement et la lecture d’un son sont interdits si le fichier appelant est local et tente de charger et de lire un son distant. Pour permettre ce type d’accès, un utilisateur doit accorder une autorisation explicite.
- Des restrictions s’appliquent à certaines opérations concernant le son. Les données d’un son chargé ne sont pas accessibles par un fichier appartenant à un autre domaine, sauf si vous mettez en place un fichier de régulation interdomaines. Les propriétés
Sound.id3
,SoundMixer.computeSpectrum()
,SoundMixer.bufferTime
et la classeSoundTransform
comptent parmi les API liées au son qui sont soumises à cette restriction.
Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité application
(contenu installé avec l’application AIR) n’est pas soumis à ces restrictions de sécurité.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Plus d’exemples
Lecture de sons
Contrôle du volume du son et de la balance
Utilisation des métadonnées audio
Accès aux données audio brutes
Exemple d’objet Sound : Podcast Player
Informations complémentaires
Présentation de l’architecture audio
Utilisation des sons intégrés
Utilisation de fichiers audio de lecture en continu
Utilisation de données audio générées de façon dynamique
Sécurité lors du chargement et de la lecture des sons
Eléments de l’API associés
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 | ||
isURLInaccessible : Boolean [lecture seule]
Indique si la propriété Sound.url a été tronquée. | Sound | ||
length : Number [lecture seule]
Durée du son actuel, en millisecondes. | Sound | ||
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 | ||
Extrait les données audio brutes d’un objet Sound. | Sound | ||
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 | ||
Chargez les données audio MP3 à partir d’un objet ByteArray dans un objet Sound. | Sound | ||
loadPCMFromByteArray(bytes:ByteArray, samples:uint, format:String = "float", stereo:Boolean = true, sampleRate:Number = 44100.0):void
Charge les données audio à virgule flottante PCM 32 bits depuis un objet ByteArray dans un objet Sound. | Sound | ||
play(startTime:Number = 0, loops:int = 0, sndTransform:flash.media:SoundTransform = null):SoundChannel
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 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 | |||
Distribué lorsque le chargement de données a abouti. | Sound | |||
[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é 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 | |||
Distribué lorsque le moteur d’exécution sollicite de nouvelles données audio. | Sound |
bytesLoaded | propriété |
bytesLoaded:uint
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Renvoie le nombre d’octets actuellement disponibles dans cet objet Sound. Cette propriété n’est généralement utile que pour les fichiers chargés en externe.
Implémentation
public function get bytesLoaded():uint
bytesTotal | propriété |
id3 | propriété |
id3:ID3Info
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 les versions ultérieures) et AIR 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é de la classe Sound 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 suivant décrit les balises ID3 qui sont prises en charge, mais ne possèdent pas de propriétés prédéfinies dans la classe Sound. Pour y accéder, appelez mySound.id3.TFLT
, mySound.id3.TIME
, etc. REMARQUE : aucune de ces balises n’est prise en charge dans Flash Lite 4.
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 :
- La propriété
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. - Lorsque vous chargez le son à l’aide de la méthode
load()
de la classe Sound, vous pouvez spécifier un paramètrecontext
qui est un objet SoundLoaderContext. Si vous définissez la propriétécheckPolicyFile
de l’objet SoundLoaderContext surtrue
, Flash Player recherche un fichier de régulation d’URL sur le serveur à partir duquel le son est chargé. S’il existe un fichier de régulation qui autorise un accès à partir du 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, l’accès lui est interdit.
Néanmoins, dans Adobe AIR, le contenu du sandbox de sécurité application
(contenu installé avec l’application AIR) n’est pas soumis à ces restrictions de sécurité.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Implémentation
public function get id3():ID3Info
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
Implémentation
public function get isBuffering():Boolean
isURLInaccessible | propriété |
isURLInaccessible:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10.1, AIR 2 |
Indique si la propriété Sound.url
a été tronquée. Lorsque la valeur isURLInaccessible
est définie sur true
, la valeur Sound.url
correspond uniquement au domaine de l’URL finale à partir de laquelle le son a été chargé. Par exemple, la propriété est tronquée si le son est chargé depuis http://www.adobe.com/assets/hello.mp3
, et la propriété Sound.url
a la valeur http://www.adobe.com
. La valeur isURLInaccessible
est définie sur true
uniquement lorsque toutes les affirmations suivantes sont également vraies :
- Une redirection HTTP s’est produite lors du chargement du fichier audio.
- Le fichier SWF qui appelle
Sound.load()
provient d’un domaine différent de celui de l’URL finale du fichier audio. - Le fichier SWF qui appelle
Sound.load()
n’est pas autorisé à accéder au fichier audio. L’autorisation d’accéder au fichier audio s’obtient de la même façon que l’autorisation d’accéder à la propriétéSound.id3
: créez un fichier de régulation et utilisez la propriétéSoundLoaderContext.checkPolicyFile
.
Remarque : la propriété isURLInaccessible
a été ajoutée à Flash Player 10.1 et AIR 2.0. Toutefois, cette propriété est disponible pour les fichiers SWF de toutes les versions lorsque le moteur d’exécution de Flash la prend en charge. Ainsi, l’utilisation de certains outils de création en « mode strict » entraîne une erreur de compilation. Pour contourner cette erreur, utilisez la syntaxe indirecte mySound["isURLInaccessible"]
ou désactivez le mode strict. Si vous utilisez Flash Professional CS5 ou le kit SDK Flex version 4.1, vous pouvez utiliser et compiler cette API pour les moteurs d’exécution publiés avant Flash Player 10.1 et AIR 2.
Pour le contenu de l’application dans AIR, la valeur de cette propriété est toujours false
.
Implémentation
public function get isURLInaccessible():Boolean
Eléments de l’API associés
length | propriété |
url | propriété |
url:String
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 à un actif 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
.
Dans certains cas, la valeur de la propriété url
est tronquée. Voir la propriété isURLInaccessible
pour plus d’informations.
Implémentation
public function get url():String
Eléments de l’API associés
Sound | () | Constructeur |
public function Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
load()
, vous pouvez utiliser le gestionnaire d’événement sampleData
pour charger dynamiquement le son dans l’objet Sound.
Paramètres stream:URLRequest (default = null ) — URL pointant vers un fichier MP3 externe.
| |
context:SoundLoaderContext (default = null ) — Un objet de contexte SoundLoader en option, qui peut définir la durée de mise en mémoire tampon (le nombre minimum de millisecondes de données MP3 à conserver dans la mémoire tampon de l’objet Sound) et peut spécifier si l’application doit rechercher un fichier de régulation interdomaines avant de charger le son.
|
close | () | méthode |
public function close():void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
Valeur émise
IOError — La fermeture du flux continu s’est révélée impossible ou ce flux n’a pas été ouvert.
|
Exemple ( Comment utiliser cet exemple )
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; } } }
extract | () | méthode |
public function extract(target:ByteArray, length:Number, startPosition:Number = -1):Number
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Extrait les données audio brutes d’un objet Sound.
Cette méthode doit être employée lorsque vous gérez un son généré dynamiquement, à l’aide d’une fonction que vous affectez à l’événement sampleData
pour un autre objet Sound. En d’autres termes, vous pouvez utiliser cette méthode pour extraire les données audio d’un objet Sound. Vous pouvez ensuite écrire les données dans le tableau d’octets utilisé par un autre objet Sound pour diffuser en continu les données audio dynamiques.
Les données audio sont placées dans le tableau d’octets cible, à partir de la position actuelle du tableau d’octets. Les données audio sont toujours exposées au format 44100 Hz stéréo. Le type d’échantillon est une valeur 32 bits en virgule flottante qui peut être convertie en nombre par la méthode ByteArray.readFloat()
.
Paramètres
target:ByteArray — Objet ByteArray qui contient les échantillons audio extraits.
| |
length:Number — Nombre d’échantillons audio à extraire. Un échantillon contient à la fois les canaux gauche et droit, c’est-à-dire deux valeurs 32 bits en virgule flottante.
| |
startPosition:Number (default = -1 ) — Echantillon au niveau duquel l’extraction commence. Si vous ne spécifiez pas de valeur, le premier appel à Sound.extract() démarre au début du son ; les appels suivants sans valeur pour startPosition continuent en séquence tout au long du fichier.
|
Number — Nombre d’échantillons écrits dans l’objet ByteArray spécifié dans le paramètre target .
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
extract()
de la classe Sound pour accéder aux données audio.
Les données mp3 sont chargées dans l’objet Sound sourceSnd
. Lorsque l’application charge les données mp3, elle appelle la fonction loaded()
(le gestionnaire d’événement pour l’événement complete
de l’objet sourceSnd
). Un deuxième objet Sound, outputSound
, est utilisé pour lire les données audio modifiées. L’objet outputSound
possède un écouteur d’événement sampleData
; par conséquent, l’objet distribue régulièrement des événements sampleData
lorsque vous appelez la méthode play()
de l’objet. La méthode upOctave()
renvoie un tableau d’octets des données audio modifiées en fonction des données audio source. Elle renvoie les sons plus hauts d’un octave en ignorant les échantillons audio dans les données source. Le gestionnaire d’événement de l’événement sampleData
écrit le tableau d’octets renvoyé dans la propriété data
de l’objet outputSound
. Le tableau d’octets data
est ajouté aux données audio de sortie de l’objet outputSound
.
Pour tester cet exemple, ajoutez un fichier test.mp3 au même répertoire que le fichier SWF.
var sourceSnd:Sound = new Sound(); var outputSnd:Sound = new Sound(); var urlReq:URLRequest = new URLRequest("test.mp3"); sourceSnd.load(urlReq); sourceSnd.addEventListener(Event.COMPLETE, loaded); function loaded(event:Event):void { outputSnd.addEventListener(SampleDataEvent.SAMPLE_DATA, processSound); outputSnd.play(); } function processSound(event:SampleDataEvent):void { var bytes:ByteArray = new ByteArray(); sourceSnd.extract(bytes, 4096); event.data.writeBytes(upOctave(bytes)); } function upOctave(bytes:ByteArray):ByteArray { var returnBytes:ByteArray = new ByteArray(); bytes.position = 0; while(bytes.bytesAvailable > 0) { returnBytes.writeFloat(bytes.readFloat()); returnBytes.writeFloat(bytes.readFloat()); if (bytes.bytesAvailable > 0) { bytes.position += 8; } } return returnBytes; }
load | () | méthode |
public function load(stream:URLRequest, context:SoundLoaderContext = null):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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.
Lorsque vous employez cette méthode, tenez compte du modèle de sécurité suivant :
- L’appel de
Sound.load()
n’est pas autorisé si le fichier appelant se trouve dans le sandbox local avec système de fichiers et que le son se trouve sur un sandbox réseau. - Un accès à partir du sandbox approuvé local ou du sandbox local avec accès au réseau exige l’autorisation du site Web via un fichier de régulation d’URL.
- Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
- Vous pouvez éviter qu’un fichier SWF utilise cette méthode en définissant le paramètre
allowNetworking
des balisesobject
etembed
dans la page HTML qui héberge le contenu SWF.
Dans Flash Player versions 10 et ultérieures, si vous utilisez un Content-Type en plusieurs parties (par exemple « multipart/form-data ») qui contient un chargement (indiqué par un paramètre « filename » dans un en-tête « content-disposition » au sein du corps POST), l’opération POST est soumise aux règles de sécurité appliquées aux chargements :
- L’opération POST doit être effectuée en réponse à l’action d’un utilisateur, comme un clic de souris ou la pression d’une touche.
- Si l’opération POST se fait entre plusieurs domaines (la cible POST ne se trouve pas sur le même serveur que le fichier SWF qui envoie la demande POST), le serveur cible doit fournir un fichier de régulation d’URL qui permette l’accès interdomaines.
Par ailleurs, la syntaxe de tous les Content-Type en plusieurs parties doit être correcte (selon la norme RFC2046). Si la syntaxe s’avère incorrecte, l’opération POST est soumise aux règles de sécurité appliquées aux chargements.
Dans Adobe AIR, le contenu du sandbox de sécurité de l’application
(contenu installé avec l’application AIR) n’est pas restreint par ces limites de sécurité.
Pour plus d’informations concernant la sécurité, voir la rubrique du Pôle de développement Flash Player : Sécurité (disponible en anglais uniquement).
Paramètres
stream:URLRequest — URL pointant vers un fichier MP3 externe.
| |
context:SoundLoaderContext (default = null ) — Un objet de contexte SoundLoader en option, qui peut définir la durée de mise en mémoire tampon (le nombre minimum de millisecondes de données MP3 à conserver dans la mémoire tampon de l’objet Sound) et peut spécifier si l’application doit rechercher un fichier de régulation interdomaines avant de charger le son.
|
Valeur émise
IOError — Une erreur réseau a entraîné l’échec du chargement.
| |
SecurityError — Les fichiers non approuvés au niveau local ne peuvent pas communiquer avec Internet. Pour contourner ce problème, reclassifiez le fichier en tant qu’approuvé ou en tant que fichier local avec accès au réseau.
| |
SecurityError — Vous ne pouvez pas vous connecter aux ports généralement réservés. Pour obtenir une liste complète des ports bloqués, voir la rubrique « Restriction des API de réseau » dans le Guide du développeur d’ActionScript 3.0.
| |
IOError — La propriété digest de l’objet stream n’est pas définie sur null . Vous devez définir la propriété digest d’un objet URLRequest uniquement lorsque vous appelez la méthode URLLoader.load() en vue de charger un fichier SWZ (un composant de la plateforme Adobe).
|
Exemple ( Comment utiliser cet exemple )
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; } } }
loadCompressedDataFromByteArray | () | méthode |
public function loadCompressedDataFromByteArray(bytes:ByteArray, bytesLength:uint):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 3, Flash Player 11 |
Chargez les données audio MP3 à partir d’un objet ByteArray dans un objet Sound. Les données seront lues à partir de la position actuelle de l’objet ByteArray et laisseront la position de l’objet ByteArray à la fin de la longueur d’octets spécifiée une fois la lecture terminée. Si les données audio MP3 contiennent des données ID3, des événements ID3 seront distribués lors l’appel de cette fonction. Cette fonction renvoie une exception si l’objet ByteArray ne contient pas suffisamment de données.
Paramètres
bytes:ByteArray | |
bytesLength:uint |
loadPCMFromByteArray | () | méthode |
public function loadPCMFromByteArray(bytes:ByteArray, samples:uint, format:String = "float", stereo:Boolean = true, sampleRate:Number = 44100.0):void
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 3, Flash Player 11 |
Charge les données audio à virgule flottante PCM 32 bits depuis un objet ByteArray dans un objet Sound. Les données seront lues à partir de la position actuelle de l’objet ByteArray et laisseront la position de l’objet ByteArray à la fin de la longueur de l’échantillon spécifiée multipliée par 1 ou 2 canaux si l’indicateur stéréo est défini une fois la lecture terminée.
A partir de Flash Player 11.8, la quantité de données audio qui peut être transmise à cette fonction est limitée. Pour les fichiers SWF des versions 21 ou ultérieures, cette fonction déclenche une exception si la quantité de données audio transmise est supérieure à 1 800 secondes. Autrement dit, la valeur échantillons/taux d’échantillonnage doit être inférieure ou égale à 1 800. Pour les fichiers SWF des versions antérieures à la version 21, l’exécution silencieuse échoue si la quantité de données audio transmises dépasse 12 000 secondes. (uniquement dans le cadre d’une compatibilité descendante).
Cette fonction renvoie une exception si l’objet ByteArray ne contient pas assez de données.
Paramètres
bytes:ByteArray | |
samples:uint | |
format:String (default = "float ")
| |
stereo:Boolean (default = true )
| |
sampleRate:Number (default = 44100.0 )
|
play | () | méthode |
public function play(startTime:Number = 0, loops:int = 0, sndTransform:flash.media:SoundTransform = null):SoundChannel
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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:flash.media: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.
|
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
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énement 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 à 1 000 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
propriété Event.type =
flash.events.Event.COMPLETE
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué lorsque le chargement de données a abouti.
La constanteEvent.COMPLETE
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é. |
Eléments de l’API associés
id3 | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.ID3
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué par un objet Sound lorsque des données ID3 sont disponibles pour un son MP3.
La constanteEvent.ID3
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énement. Utilisez la propriété currentTarget pour accéder à l’objet de la liste d’affichage qui traite actuellement l’événement. |
Eléments de l’API associés
ioError | Evénement |
flash.events.IOErrorEvent
propriété IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 d’é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. |
errorID | Un numéro de référence associé à l’erreur spécifique (AIR uniquement). |
target | Objet réseau sur lequel l’erreur d’entrée/sortie s’est produite. |
text | Texte à afficher en tant que message d’erreur. |
Eléments de l’API associés
open | Evénement |
flash.events.Event
propriété Event.type =
flash.events.Event.OPEN
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Distribué lors du démarrage d’une opération de chargement.
La constanteEvent.OPEN
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. |
Eléments de l’API associés
progress | Evénement |
flash.events.ProgressEvent
propriété ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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 indiquant la progression. |
Eléments de l’API associés
sampleData | Evénement |
flash.events.SampleDataEvent
propriété SampleDataEvent.type =
flash.events.SampleDataEvent.SAMPLE_DATA
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | Flash Player 10, AIR 1.5 |
Distribué lorsque le moteur d’exécution sollicite de nouvelles données audio.
Définit la valeur de la propriététype
d’un objet événement SampleDataEvent
.
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. |
position | Point à partir duquel les données audio sont fournies. |
Exemple ( Comment utiliser cet exemple )
var mySound:Sound = new Sound(); function sineWaveGenerator(event:SampleDataEvent):void { for ( var c:int=0; c<8192; c++ ) { event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); } } mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator); mySound.play();
Eléments de l’API associés
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); } } }
Tue Jun 12 2018, 09:30 AM Z