Paqueteflash.media
Clasepublic class SoundLoaderContext
HerenciaSoundLoaderContext Inheritance Object

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

La clase SoundLoaderContext proporciona comprobaciones de seguridad para los archivos SWF 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 modelo de seguridad de Flash® Player:

Para más información, consulte las siguientes secciones:



Propiedades públicas
 PropiedadDefinido por
  bufferTime : Number = 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.
SoundLoaderContext
  checkPolicyFile : Boolean = false
Especifica si Flash Player debe intentar descargar un archivo de política entre dominios 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
 Inheritedprototype : Object
[static] Una referencia al objeto prototipo de una clase u objeto de función.
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 del objeto especificado.
Object
 Inherited
Devuelve el valor simple del objeto especificado.
Object
Información sobre propiedades
bufferTimepropiedad
public var bufferTime:Number = 1000

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

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.

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).

checkPolicyFilepropiedad 
public var checkPolicyFile:Boolean = false

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

Especifica si Flash Player debe intentar descargar un archivo de política entre dominios 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 SWF que llama con el método Sound.load().

Establezca esta propiedad como true al cargar un sonido desde fuera del dominio del archivo SWF que llama y podrá acceder a los datos del sonido de ActionScript con privilegios de acceso de bajo nivel. 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 debe descargar correctamente un archivo de política entre dominios adecuado o determinar que no existe ninguno antes de comenzar la descarga del sonido especificado. Flash Player lleva a cabo las acciones siguientes (en el orden indicado) para comprobar la existencia de un archivo de política:

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

Si establece checkPolicyFile en true, Flash Player 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 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 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.

Para más información acerca de los archivos de política, consulte el capítulo "Seguridad de Flash Player" de Programación con ActionScript 3.0.

Véase también

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

Versión del lenguaje: ActionScript 3.0
Versión del reproductor: Flash Player 9

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 Flash Player debe comprobar si existe un archivo de política entre dominios antes de cargar el objeto (true) o no.

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(30000, 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);
        }

    }
}




 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/flash/media/SoundLoaderContext.html