| Package | flash.media |
| Classe | public class SoundLoaderContext |
| Héritage | SoundLoaderContext Object |
| Version du langage: | ActionScript 3.0 |
| Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load() de la classe Sound.
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 que cette opération soit possible, un utilisateur doit accorder une autorisation explicite.
- Des restrictions s’appliquent à certaines opérations concernant le son. Tout fichier appartenant à un autre domaine ne peut pas accéder aux données d’un son chargé, sauf si vous implémentez un fichier de régulation d’URL. La propriété
Sound.id3et les méthodesSoundMixer.computeSpectrum(),SoundMixer.bufferTimeetSoundTransform()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).
| Propriété | Défini par | ||
|---|---|---|---|
| bufferTime : Number = 1000
Durée, en millisecondes, de préchargement dans une mémoire tampon d’un son en flux continu avant que la diffusion ne commence. | SoundLoaderContext | ||
| checkPolicyFile : Boolean = false
Indique si l’application doit tenter de télécharger un fichier de régulation d’URL à partir du serveur du son chargé avant de commencer à charger ce dernier. | SoundLoaderContext | ||
![]() | constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | |
| Méthode | Défini par | ||
|---|---|---|---|
Crée un objet SoundLoaderContext. | SoundLoaderContext | ||
![]() |
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 | |
![]() |
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 | |
bufferTime | propriété |
public var bufferTime:Number = 1000| Version du langage: | ActionScript 3.0 |
| Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Durée, en millisecondes, de préchargement dans une mémoire tampon d’un son en flux continu avant que la diffusion ne commence.
Vous pouvez remplacer la valeur de SoundLoaderContext.bufferTime en définissant la propriété globale SoundMixer.bufferTime. La propriété SoundMixer.bufferTime affecte uniquement la durée de mise en mémoire tampon des sons en flux continu imbriqués dans un fichier SWF. Elle n’a aucune incidence sur les objets Sound créés dynamiquement (autrement dit, créés dans ActionScript).
checkPolicyFile | propriété |
public var checkPolicyFile:Boolean = false| Version du langage: | ActionScript 3.0 |
| Versions du moteur d’exécution: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Indique si l’application doit tenter de télécharger un fichier de régulation d’URL à partir du serveur du son chargé avant de commencer à charger ce dernier. Cette propriété s’applique si le son chargé à l’aide de la méthode Sound.load() se trouve en dehors du domaine du fichier appelant.
Définissez cette propriété sur true lorsque vous chargez un son qui se trouve en dehors du domaine du fichier appelant et que le code dans le fichier appelant requiert un accès de niveau bas pour les données du son. Référencer la propriété Sound.id3 pour extraire un objet ID3Info et appeler la méthode SoundMixer.computeSpectrum() pour extraire des échantillons audio du son chargé constituent des exemples d’accès de bas niveau. Si vous tentez d’accéder aux données audio sans régler la propriété checkPolicyFile sur true au chargement, vous risquez d’obtenir une exception SecurityError car le fichier de régulation requis n’a pas été téléchargé.
Si un accès de bas niveau aux données audio que vous chargez est inutile, il est préférable de ne pas régler checkPolicyFile sur true. La recherche d’un fichier de régulation consomme de la bande passante réseau et peut retarder le début du téléchargement. N’effectuez donc cette opération qu’en cas de nécessité.
Lorsque vous appelez Sound.load() en définissant SoundLoaderContext.checkPolicyFile sur true, Flash Player ou AIR doit télécharger un fichier de régulation d’URL approprié, ou déterminer qu’un tel fichier n’existe pas, avant de commencer à télécharger le son spécifié. Flash Player ou AIR exécute les actions suivantes, dans l’ordre indiqué, pour vérifier l’existence d’un fichier de régulation :
- Flash Player ou AIR examine les fichiers de régulation téléchargés au préalable.
- Flash Player ou AIR tente de télécharger tout fichier de régulation en attente spécifié dans les appels de
Security.loadPolicyFile(). - Flash Player ou AIR tente de télécharger un fichier de régulation à partir de l’emplacement par défaut qui correspond à l’URL du son, autrement dit
/crossdomain.xmlsur le même serveur queURLRequest.url(l’URL du son est spécifiée dans la propriétéurlde l’objet URLRequest transmis àSound.load()ou à la fonction du constructeur Sound()).
Dans tous les cas, Flash Player ou AIR requiert que le serveur du son héberge un fichier de régulation approprié et que ce fichier autorise l’accès au fichier son à URLRequest.url, sur la base de l’emplacement du fichier de régulation, et qu’il permette au domaine du fichier appelant d’accéder au son par le biais d’une ou plusieurs balises <allow-access-from>.
Si vous réglez checkPolicyFile sur true, Flash Player ouAIR attend la vérification du fichier de régulation avant de télécharger le son. Avant d’effectuer des opérations de bas niveau sur les données audio, en appelant Sound.id3 ou SoundMixer.computeSpectrum() par exemple, attendez que l’objet Sound ait déclenché les événements progress et complete.
Si vous définissez checkPolicyFile sur true et qu’il n’existe aucun fichier de régulation approprié, vous ne recevez aucun message d’erreur tant que vous n’effectuez pas d’opération nécessitant un tel fichier ; dans ce cas Flash Player ou AIR renvoie une exception SecurityError. Une fois que vous avez reçu un événement complete, vous pouvez vérifier qu’un fichier de régulation approprié a été éventuellement trouvé en extrayant la valeur de Sound.id3 d’un bloc try et en vérifiant si une exception SecurityError est renvoyée.
Servez-vous de checkPolicyFile avec précaution si vous téléchargez un son à partir d’une URL qui utilise des redirections HTTP côté serveur. Flash Player ou AIR tente d’extraire les fichiers de régulation correspondant à la propriété url de l’objet URLRequest transmis à Sound.load(). Si le fichier audio final provient d’une URL différente en raison de redirections HTTP, les fichiers de régulation initialement téléchargés peuvent ne pas être applicables à l’URL finale du son, autrement dit l’URL à prendre en compte dans les décisions relatives à la sécurité.
La solution ci-après peut vous permettre de résoudre ce problème. Après la réception d’un événement progress ou complete, vous pouvez examiner la valeur de la propriété Sound.url qui contient l’URL finale du son. Appelez ensuite la méthode Security.loadPolicyFile() en vous basant sur l’URL finale du son pour calculer l’URL du fichier de régulation. Enfin, interrogez Sound.id3 jusqu’à ce qu’aucune exception ne soit renvoyée.
Ceci ne s’applique pas au contenu dans le sandbox de l’application AIR. Le contenu dans le sandbox de l’application a toujours un accès par programmation au contenu sonore, quelle que soit son origine.
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).
Informations complémentaires
Eléments de l’API associés
SoundLoaderContext | () | Constructeur |
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)| 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 SoundLoaderContext.
ParamètresbufferTime:Number (default = 1000) — Durée, en secondes, de préchargement dans une mémoire tampon d’un son en flux continu avant que la diffusion ne commence.
| |
checkPolicyFile:Boolean (default = false) — Indique si l’existence d’un fichier de régulation d’URL doit être vérifiée après le chargement de l’objet (true) ou non.
|
Exemple ( Comment utiliser cet exemple )
Le premier paramètre d’un objet SoundLoaderContext (context) est utilisé pour augmenter la valeur de tampon par défaut d’une seconde à trois secondes (la valeur est en millisecondes). Si le second paramètre de l’objet SoundLoaderContext est défini sur true, Flash Player recherche un fichier de régulation interdomaines lors du chargement de l’objet Ici, il est défini sur la valeur par défaut false, donc aucun fichier de régulation n’est recherché. La méthode load() de l’objet audio utilisera le paramètre de contexte pour s’assurer que le préchargement des données audio en flux continu dans un tampon prendra trois secondes avant que ces données ne commencent à être diffusées. L’objet URLRequest détermine l’emplacement du fichier, qui correspond à un podcast d’Adobe. Si une erreur IOErrorEvent.IO_ERROR se produit pendant le chargement du fichier audio, la méthode errorHandler() est invoquée.
package {
import flash.display.Sprite;
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundLoaderContext;
import flash.events.IOErrorEvent;
public class SoundLoaderContextExample extends Sprite {
public function SoundLoaderContextExample() {
var snd:Sound = new Sound();
var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
var context:SoundLoaderContext = new SoundLoaderContext(3000, false);
snd.load(req, context);
snd.play();
snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
}
private function errorHandler(errorEvent:IOErrorEvent):void {
trace("The sound could not be loaded: " + errorEvent.text);
}
}
}
Tue Jun 12 2018, 09:30 AM Z
Masquer les propriétés publiques héritées
Afficher les propriétés publiques héritées