Referencia de ActionScript® 3.0 para la plataforma de Adobe® Flash®
Inicio  |  Ocultar lista de paquetes y clases |  Paquetes  |  Clases  |  Novedades  |  Índice  |  Apéndices  |  ¿Por qué hay texto en inglés?
Filtros: Recuperando datos del servidor...
Recuperando datos del servidor...
flash.media 

SoundLoaderContext  - AS3

Paqueteflash.media
Clasepublic class SoundLoaderContext
HerenciaSoundLoaderContext Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

La clase SoundLoaderContext proporciona comprobaciones de seguridad para los archivos que cargan sonidos. Los objetos SoundLoaderContext se transmiten como argumento al constructor y al método load() de la clase Sound.

Cuando utilice esta clase, puede ser conveniente usar el siguiente modelo de seguridad:

  • No se admite la carga ni la reproducción de un sonido si el archivo que realiza la llamada se encuentra en el entorno limitado de red y el archivo de sonido que debe cargarse está en un sistema local.
  • De forma predeterminada, no está permitido cargar y reproducir un sonido si el archivo que realiza la llamada es local e intenta cargar y reproducir sonido remoto. El usuario debe otorgar un permiso explícito para permitir esta acción.
  • Están restringidas ciertas operaciones relacionadas con sonidos. Un archivo de un dominio distinto no puede acceder a los datos de un sonido cargado a no ser que implemente un archivo de política URL. Las API relacionadas con sonidos a las que afecta esta restricción son la propiedad Sound.id3 y los métodos SoundMixer.computeSpectrum(), SoundMixer.bufferTime y SoundTransform().

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

Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.



Propiedades públicas
 PropiedadDefinido por
  bufferTime : Number = 1000
El número de milisegundos que se tarda en precargar un flujo de sonido en un búfer antes de que el sonido comience a reproducirse.
SoundLoaderContext
  checkPolicyFile : Boolean = false
Especifica si la aplicación debe intentar descargar un archivo de política URL desde el servidor del sonido cargado antes de comenzar la carga del mismo.
SoundLoaderContext
 Inheritedconstructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada.
Object
Métodos públicos
 MétodoDefinido por
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Crea un nuevo objeto contextual de carga de sonido.
SoundLoaderContext
 Inherited
Indica si un objeto tiene definida una propiedad especificada.
Object
 Inherited
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro.
Object
 Inherited
Indica si existe la propiedad especificada y si es enumerable.
Object
 Inherited
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle.
Object
 Inherited
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional.
Object
 Inherited
Devuelve la representación de cadena del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
Información sobre propiedades

bufferTime

propiedad
public var bufferTime:Number = 1000

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

El número de milisegundos que se tarda en precargar un flujo de sonido en un búfer antes de que el sonido comience a reproducirse.

Tenga en cuenta que no es posible anular el valor de SoundLoaderContext.bufferTime estableciendo la propiedad global SoundMixer.bufferTime. La propiedad SoundMixer.bufferTime afecta al tiempo de búfer en los flujos de sonido incorporados de un archivo SWF y no tiene nada que ver con los objetos Sound creados dinámicamente (es decir, objetos Sound creados con ActionScript).

checkPolicyFile

propiedad 
public var checkPolicyFile:Boolean = false

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Especifica si la aplicación debe intentar descargar un archivo de política URL desde el servidor del sonido cargado antes de comenzar la carga del mismo. Esta propiedad se aplica a sonidos cargados desde fuera del dominio del archivo que llama con el método Sound.load().

Establezca esta propiedad como true cuando cargue sonido desde fuera del propio dominio del archivo que realiza la llamada y si el código del archivo necesita acceso de bajo nivel a los datos de sonido. Algunos ejemplos de acceso de bajo nivel a los datos de un sonido son la propiedad Sound.id3 para obtener un objeto ID3Info o llamar al método SoundMixer.computeSpectrum() para obtener muestras del sonido cargado. Si intenta acceder a los datos de sonido sin establecer la propiedad checkPolicyFile como true en el momento de la carga, es posible que obtenga una excepción SecurityError, ya que no ha descargado el archivo de política necesario.

Si no necesita privilegios de acceso de bajo nivel para los datos de sonido que está cargando, no establezca checkPolicyFile en true. La búsqueda de un archivo de política consume ancho de banda de la red y podría demorar el inicio de la descarga, por lo que sólo debe hacerse si es necesario.

Al llamar a Sound.load() con SoundLoaderContext.checkPolicyFile establecido en true, Flash Player o AIR debe descargar correctamente un archivo de política URL adecuado o determinar que no existe ninguno antes de comenzar la descarga del sonido especificado. Flash Player o AIR lleva a cabo las acciones siguientes (en el orden indicado) para comprobar la existencia de un archivo de política:

  • Flash Player o AIR tiene en cuenta los archivos de política ya descargados.
  • Flash Player o AIR intenta descargar cualquier archivo de política pendiente especificado en las llamadas a Security.loadPolicyFile().
  • Flash Player o AIR intenta descargar un archivo de política de la ubicación predeterminada que corresponde a la dirección URL del sonido, que es /crossdomain.xml en el mismo servidor que URLRequest.url. (La URL del sonido se especifica en la propiedad url del objeto URLRequest transmitido a Sound.load() o a la función del constructor Sound().

En todos los casos, Flash Player o AIR necesita que exista un archivo de política adecuado en el servidor de sonido. Éste debe proporcionar acceso al archivo de sonido en URLRequest.url de acuerdo con la ubicación del archivo de política. También debe permitir que el dominio acceda al archivo que realiza la llamada gracias a una o varias etiquetas <allow-access-from>.

Si establece checkPolicyFile en true, Flash Player o AIR espera a que se verifique el archivo de política antes de cargar el sonido. Para poder realizar operaciones de bajo nivel en los datos de sonido, como llamar a Sound.id3 o a SoundMixer.computeSpectrum(), debe esperar a que los eventos progress y complete se distribuyan desde el objeto Sound.

Si define checkPolicyFile como true, pero no se encuentra ningún archivo de política adecuado, no recibirá ningún error hasta que no se realice alguna operación que requiera un archivo de política; cuando esto ocurra, Flash Player o AIR emitirá una excepción SecurityError. Tras recibir un evento complete, se puede comprobar si el archivo de política correspondiente se encontró mediante la obtención del valor de Sound.id3 en un bloque try y comprobando si se emitía una excepción SecurityError.

Tenga cuidado con checkPolicyFile si descarga un sonido desde una URL que utilice redirección HTTP en el servidor. Flash Player o AIR intenta recuperar archivos de política que correspondan a la propiedad url del objeto URLRequest transmitida a Sound.load(). Si el archivo de sonido final proviene de una URL distinta por la redirección HTTP, es posible que los archivos de política descargados inicialmente no se puedan aplicar a la URL final del archivo de sonido, que es la URL determinante en las decisiones de seguridad.

Si se encuentra en esta situación, le presentamos una posible solución. Tras recibir un evento progress o complete, puede examinar el valor de la propiedad Sound.url, que contiene la URL final del sonido. A continuación, llame al método Security.loadPolicyFile() con una URL de archivo de política calculada según la URL final del sonido. Finalmente, sondee el valor de Sound.id3 hasta que deje de emitir excepciones.

Esto no se aplica al contenido del entorno limitado de la aplicación de AIR. El contenido del entorno limitado de la aplicación siempre tiene acceso al contenido de sonido, independientemente de su origen.

Para obtener más información, consulte el tema del Centro de desarrollo de Flash Player Seguridad.

Elementos de API relacionados

Información sobre constructores

SoundLoaderContext

()Información sobre
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)

Versión del lenguaje: ActionScript 3.0
Versiones de motor de ejecución: AIR 1.0, Flash Player 9, Flash Lite 4

Crea un nuevo objeto contextual de carga de sonido.

Parámetros
bufferTime:Number (default = 1000) — El número de segundos que se tarda en precargar un flujo de sonido en un búfer antes de que el sonido comience a reproducirse.
 
checkPolicyFile:Boolean (default = false) — Especifica si se debe comprobar la existencia de un archivo de política URL entre los dominios al cargar el objeto (true) o no.

Ejemplo  ( Cómo utilizar este ejemplo )

En el ejemplo siguiente, el búfer para el sonido que se cargará se establece en tres segundos.

El primer parámetro de un objeto SoundLoaderContext (context) se utiliza para aumentar el valor de búfer predeterminado de un segundo a tres. (El valor es en milisegundos.) Si el segundo parámetro del objeto SoundLoaderContext se establece en true, Flash Player consultará un archivo de política entre distintos dominios al cargar el objeto. En este caso se establece en un valor predeterminado false, por lo que no se comprobará ningún archivo de política. El método load() del objeto de sonido utilizará el parámetro de contexto para asegurarse de que se tardarán tres segundos en la carga previa del sonido en el búfer antes de que el sonido comience a transmitirse. El objeto URLRequest determina la ubicación del archivo, que es un podcast de Adobe. Si se produce un error IOErrorEvent.IO_ERROR durante la carga de un archivo de sonido, se invoca el método errorHandler().

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);
        }

    }
}




[ X ]¿Por qué hay texto en inglés?
Cierto contenido de la Referencia de ActionScript 3.0 se muestra en inglés

No todo el contenido de la Referencia de ActionScript 3.0 se traduce a todos los idiomas. Si un elemento del lenguaje no se traduce, aparecerá en inglés. Por ejemplo, la clase ga.controls.HelpBox no está traducida en ningún idioma. Por lo tanto, en la versión en español de la referencia, la clase ga.controls.HelpBox aparecerá en inglés.