Sécurité lors du chargement et de la lecture des sons

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

L’accès aux données audio par votre application peut être limité selon la fonction de sécurité de Flash Player ou AIR. Chaque son est soumis aux restrictions de deux sandbox de sécurité différents, le sandbox pour le contexte lui-même (le sandbox de contexte), et le sandbox pour l’application ou l’objet qui charge et lit le son (le sandbox propriétaire). Pour le contenu de l’application AIR dans le sandbox de sécurité de l’application, tous les sons, y compris ceux chargés à partir d’autres domaines, sont accessibles au contenu dans le sandbox de sécurité de l’application. Toutefois, le contenu dans d’autres sandbox de sécurité observe les même règles que le contenu qui s’exécute dans Flash Player. Pour plus d’informations sur le modèle de sécurité de Flash Player en général et la définition des sandbox, voir Sécurité .

Le sandbox de contexte contrôle si des données audio détaillées peuvent être extraites du son à l’aide de la propriété id3 ou de la méthode SoundMixer.computeSpectrum() . Il ne limite pas le chargement ou la lecture du fichier audio lui-même.

Le domaine d’origine du fichier audio définit les limites de sécurité du sandbox de contexte. Généralement, si un fichier audio se trouve dans le même domaine ou dossier que le fichier SWF de l’application ou de l’objet qui le charge, ce dernier dispose d’un accès total à ce fichier audio. Si le son provient d’un domaine différent par rapport à l’application, il peut être intégré dans le sandbox de contexte à l’aide d’un fichier de régulation.

Votre application peut transmettre un objet SoundLoaderContext avec une propriété checkPolicyFile comme paramètre à la méthode Sound.load() . Lorsque vous définissez la propriété checkPolicyFile sur true , vous indiquez à Flash Player ou à AIR de rechercher un fichier de régulation sur le serveur à partir duquel le son est chargé. Si un fichier de régulation existe et qu’il autorise l’accès au domaine du fichier SWF de chargement, ce dernier peut charger le fichier audio, accéder à la propriété id3 de l’objet Sound et appeler la méthode SoundMixer.computeSpectrum() pour les sons chargés.

Le sandbox propriétaire contrôle la lecture locale des sons. L’application ou l’objet qui lance la lecture d’un son définit le sandbox propriétaire.

La méthode SoundMixer.stopAll() interrompt les sons dans tous les objets SoundChannel en cours de lecture, tant qu’ils répondent aux critères suivants :

  • Les sons ont été démarrés par des objets se trouvant dans le même sandbox propriétaire.

  • Les sons sont issus d’une source possédant un fichier de régulation qui autorise l’accès au domaine de l’application ou de l’objet qui appelle la méthode SoundMixer.stopAll() .

Cependant, dans une application 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 savoir si la méthode SoundMixer.stopAll() interrompra tous les sons lus, votre application peut appeler la méthode SoundMixer.areSoundsInaccessible() . Si cette méthode renvoie une valeur true, certains des sons lus ne sont pas sous le contrôle du sandbox propriétaire actuel et ne seront pas arrêtés par la méthode SoundMixer.stopAll() .

La méthode SoundMixer.stopAll() empêche également la tête de lecture de continuer pour tous les sons chargés à partir de fichiers externes. Néanmoins, les sons qui sont incorporés dans des fichiers FLA et associés à des images dans le scénario à l’aide de l’outil de programmation Flash risquent d’être relus si l’animation s’est déplacée sur une nouvelle image.