Consideraciones de seguridad al cargar y reproducir sonidos

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

La capacidad de la aplicación para acceder a datos de sonido puede limitarse según el modelo de seguridad de Flash Player o AIR. Cada sonido está sujeto a las restricciones de dos entornos limitados de seguridad diferentes, el del contenido en sí (el "entorno limitado de contenido") y el de la aplicación o el objeto que carga y reproduce el sonido (el "entorno limitado de propietario"). Para el contenido de la aplicación AIR en el entorno limitado de seguridad de la aplicación, todos los sonidos, incluidos los que se cargan desde otros dominios, están accesibles para el contenido en el entorno limitado de seguridad de la aplicación. Sin embargo, el contenido de otros entornos limitados de seguridad sigue las mismas reglas que el contenido ejecutado en Flash Player. Para más información sobre el modelo de seguridad de Flash Player en general y la definición de los entornos limitados, consulte Seguridad .

El entorno limitado de contenido controla si se pueden extraer datos detallados del sonido con la propiedad id3 o el método SoundMixer.computeSpectrum() . No limita la carga o la reproducción del sonido en sí.

El dominio de origen del archivo de sonido define las limitaciones de seguridad del entorno limitado de contenido. Normalmente, si un archivo de sonido se encuentra en el mismo dominio o la misma carpeta que el archivo SWF de la aplicación o el objeto que lo carga, estos tendrán acceso total al archivo de sonido. Si el sonido procede de un dominio diferente al de la aplicación, aún es posible extraerlo al entorno limitado de contenido mediante un archivo de política.

La aplicación puede pasar un objeto SoundLoaderContext con una propiedad checkPolicyFile como parámetro al método Sound.load() . Si se establece la propiedad checkPolicyFile en true , se indica a Flash Player o AIR que busque un archivo de política en el servidor desde el que se carga el sonido. Si ya existe un archivo de política, y proporciona acceso al dominio del archivo SWF que se carga, el archivo SWF puede cargar el archivo de sonido, acceder a la propiedad id3 del objeto Sound y llamar al método SoundMixer.computeSpectrum() para sonidos cargados.

El entorno limitado de propietario controla la reproducción local de los sonidos. La aplicación o el objeto que empieza a reproducir un sonido definen el entorno limitado de propietario.

El método SoundMixer.stopAll() detiene los sonidos de todos los objetos SoundChannel que se reproducen en ese momento, siempre y cuando cumplan los criterios siguientes:

  • Los objetos del mismo entorno limitado de propietario han iniciado los sonidos.

  • Los sonidos proceden de un origen con un archivo de política que proporciona acceso al dominio de la aplicación o del objeto que llama al método SoundMixer.stopAll() .

Sin embargo, en una aplicación de AIR, el contenido del entorno limitado de seguridad de la aplicación (contenido instalado con la aplicación AIR) no está limitado por estas restricciones de seguridad.

Para saber si el método SoundMixer.stopAll() detendrá realmente todos los sonidos en reproducción, la aplicación puede llamar al método SoundMixer.areSoundsInaccessible() . Si el método devuelve un valor true , algunos de los sonidos que se reproducen se encuentran fuera del control del entorno limitado de propietario actual y no se detendrán con el método SoundMixer.stopAll() .

El método SoundMixer.stopAll() también evita que la cabeza lectora continúe para todos los sonidos cargados desde archivos externos. Sin embargo, los sonidos que se incorporan en archivos FLA y se asocian a los fotogramas de la línea de tiempo con la herramienta de edición de Flash podrían volver a reproducirse si la animación se desplaza a un nuevo fotograma.