Guida di riferimento di ActionScript® 3.0 per la piattaforma Adobe® Flash®
Home  |  Nascondi elenco pacchetti e classi |  Pacchetti  |  Classi  |  Novità  |  Indice  |  Appendici  |  Perché in inglese?
Filtri: Recupero dati dal server...
Recupero dati dal server...
flash.media 

SoundLoaderContext  - AS3

Pacchettoflash.media
Classepublic class SoundLoaderContext
EreditarietàSoundLoaderContext Inheritance Object

Versione linguaggio: ActionScript 3.0
Versioni runtime: AIR 1.0, Flash Player 9, Flash Lite 4

La classe SoundLoaderContext fornisce le verifiche di sicurezza per i file che caricano l'audio. Gli oggetti SoundLoaderContext vengono passati come argomenti alla funzione di costruzione e al metodo load() della classe Sound.

Quando utilizzate questa classe, prendete in considerazione il modello di sicurezza seguente:

  • Il caricamento e la riproduzione audio non sono consentiti se il file che effettua la chiamata si trova in una sandbox di rete mentre il file audio da caricare è locale.
  • Per impostazione predefinita, il caricamento e la riproduzione audio non sono consentiti se il file che effettua la chiamata è locale e cerca di caricare e riprodurre audio remoto. Per consentirlo, un utente deve accordare un permesso esplicito.
  • Alcune operazioni associate all'audio sono soggette a limitazioni. Per un file di un altro dominio non è possibile accedere ai dati dell'audio caricato, a meno che non venga implementato un file di criteri per gli URL. Le API associate all'audio soggette a questa limitazione sono la proprietà Sound.id3 e i metodi SoundMixer.computeSpectrum(), SoundMixer.bufferTime e SoundTransform().

Tuttavia, in Adobe AIR, il contenuto della funzione di sicurezza sandbox dell'applicazione (contenuto installato con l'applicazione AIR) non è interessato da queste limitazioni di sicurezza.

Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .



Proprietà pubbliche
 ProprietàDefinito da
  bufferTime : Number = 1000
Il numero di millisecondi per precaricare l'audio in streaming in un buffer prima dell'avvio dello streaming.
SoundLoaderContext
  checkPolicyFile : Boolean = false
Specifica se l'applicazione deve tentare di scaricare un file di criteri URL dal server su cui carica l'audio prima di iniziare il caricamento.
SoundLoaderContext
 Inheritedconstructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
Metodi pubblici
 MetodoDefinito da
  
SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Crea un nuovo oggetto SoundLoaderContext.
SoundLoaderContext
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
 Inherited
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate.
Object
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
Descrizione delle proprietà

bufferTime

proprietà
public var bufferTime:Number = 1000

Versione linguaggio: ActionScript 3.0
Versioni runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Il numero di millisecondi per precaricare l'audio in streaming in un buffer prima dell'avvio dello streaming.

Non è possibile sostituire il valore di SoundLoaderContext.bufferTime impostando la proprietà globale SoundMixer.bufferTime. La proprietà SoundMixer.bufferTime incide sul tempo di bufferizzazione dell'audio in streaming incorporato in un file SWF ed è indipendente dagli oggetti Sound creati in modo dinamico (ovvero gli oggetti Sound creati in ActionScript).

checkPolicyFile

proprietà 
public var checkPolicyFile:Boolean = false

Versione linguaggio: ActionScript 3.0
Versioni runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Specifica se l'applicazione deve tentare di scaricare un file di criteri URL dal server su cui carica l'audio prima di iniziare il caricamento. Questa proprietà è valida per l'audio caricato all'esterno del dominio del file che effettua la chiamata mediante il metodo Sound.load().

Impostate questa proprietà su true quando caricate audio dall'esterno del dominio del file che esegue la chiamata e il codice nel file che esegue la chiamata richiede un accesso di basso livello ai dati audio. Esempi di accesso di basso livello ai dati audio comprendono il riferimento alla proprietà Sound.id3 per ottenere un oggetto ID3Info o la chiamata del metodo SoundMixer.computeSpectrum() per ottenere il campionamento audio dal suono caricato. Se si tenta di accedere ai dati audio senza impostare la proprietà checkPolicyFile su true al momento del caricamento, può verificarsi un'eccezione SecurityError perché il file di criteri necessario non è stato scaricato.

Se l'accesso di basso livello ai dati audio da caricare non è necessario, evitare di impostare checkPolicyFile su true. Il controllo della presenza di un file di criteri richiede una notevole ampiezza di banda e potrebbe ritardare l'avvio dello scaricamento; pertanto, deve essere eseguito solo quando è necessario.

Se chiamate Sound.load() con SoundLoaderContext.checkPolicyFile impostato su true, Flash Player o AIR deve scaricare correttamente un file di criteri URL appropriato o determinare l'inesistenza di tale file prima di iniziare a scaricare il file audio specificato. Per verificare l'esistenza di un file di criteri, Flash Player o AIR esegue le seguenti operazioni, nell'ordine:

  • Flash Player o AIR prende in considerazione i file dei criteri che sono già stati scaricati.
  • Flash Player o AIR cerca di scaricare gli eventuali file dei criteri in attesa specificati nelle chiamate a Security.loadPolicyFile().
  • Flash Player o AIR cerca di scaricare un file di criteri dal percorso predefinito che corrisponde all'URL del file audio, ovvero /crossdomain.xml sullo stesso server di URLRequest.url. (L'URL del file audio è specificato nella proprietà url dell'oggetto URLRequest passato a Sound.load() o alla funzione di costruzione Sound).

In ogni caso, Flash Player o AIR richiede che sul server del file audio esista un file dei criteri appropriato, che questo consenta di accedere al file audio in URLRequest.url per mezzo del percorso del file dei criteri e che consenta al dominio del file che effettua la chiamata di accedere all'audio tramite uno o più tag <allow-access-from>.

Se impostate checkPolicyFile su true, Flash Player o AIR attende la verifica del file dei criteri prima di caricare l'audio. È opportuno aspettare a eseguire qualsiasi operazione di basso livello sui dati audio (ad esempio, la chiamata a Sound.id3 o SoundMixer.computeSpectrum()) fino a quando gli eventi progress e complete non vengono inviati dall'oggetto Sound.

Se impostate checkPolicyFile su true ma non viene trovato un file di criteri appropriato, l'errore viene generato solo quando si esegue un'operazione che richiede un file di criteri e, in quel caso, Flash Player o AIR genera un'eccezione SecurityError. Quando viene restituito un evento complete è possibile verificare se è stato trovato un file di criteri appropriato inserendo il valore di Sound.id3 all'interno di un blocco try per vedere se viene generata un'eccezione SecurityError.

Prestate attenzione nell'uso di checkPolicyFile in caso di scaricamento di audio da un URL che utilizza il reindirizzamento HTTP sul lato server. Flash Player o AIR tenta di recuperare i file di criteri che corrispondono alla proprietà url dell'oggetto URLRequest passato a Sound.load(). Se il file audio finale proviene da un URL diverso per via del reindirizzamento HTTP, i file di criteri scaricati all'inizio potrebbero non essere validi per l'URL del file audio finale, che è quello fondamentale nelle decisioni relative alla sicurezza.

Nel caso in cui si verifichi questa eventualità, di seguito è illustrata una possibile soluzione. Quando si riceve un evento progress o complete, è possibile esaminare il valore della proprietà Sound.url, che contiene l'URL finale del file audio. A questo punto, chiamate il metodo Security.loadPolicyFile() con un URL del file di criteri calcolato in base all'URL finale del file audio. Infine, eseguite il polling del valore di Sound.id3 fino a quando non vengono più generate eccezioni.

Ciò non vale per il contenuto presente nella funzione di sicurezza sandbox dell'applicazione AIR. Il contenuto presente nella funzione di sicurezza sandbox ha sempre accesso a livello di codice al contenuto audio, a prescindere dall'origine.

Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .

Altre informazioni

Elementi API correlati

Descrizione della funzione di costruzione

SoundLoaderContext

()Funzione di costruzione
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)

Versione linguaggio: ActionScript 3.0
Versioni runtime: AIR 1.0, Flash Player 9, Flash Lite 4

Crea un nuovo oggetto SoundLoaderContext.

Parametri
bufferTime:Number (default = 1000) — Il numero di secondi per precaricare l'audio in streaming in un buffer prima dell'avvio dello streaming.
 
checkPolicyFile:Boolean (default = false) — Specifica se è necessario verificare l'esistenza di un file di criteri URL al caricamento dell'oggetto (true) o meno.

Esempio  ( Come utilizzare questo esempio )

Nell'esempio seguente, il buffer per l'audio che verrà caricato è impostato sui tre secondi.

Il primo parametro dell'oggetto Soundloadercontext (context) viene utilizzato per aumentare il valore predefinito del buffer da uno a tre secondi. (Il valore è espresso in millisecondi.) Se il secondo parametro dell'oggetto SoundLoaderContext è impostato su true, Flash Player controllerà se esiste un file di criteri validi tra più domini al caricamento dell'oggetto. In questo caso tale parametro è impostato su false, per cui non verrà fatto nessun controllo riguardante il file di criteri validi. Il metodo load() relativo all'oggetto audio, grazie all'impostazione di contesto, impiegherà tre secondi per precaricare l'audio in streaming in un buffer prima dell'avvio dello streaming stesso. L'oggetto URLRequest determina la posizione del file, che sarà un podcast Adobe. Se si verifica un errore IOErrorEvent.IO_ERROR nel corso del caricamento del file audio, verrà richiamato il metodo 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 ]Perché in inglese?
Il contenuto della Guida di riferimento di ActionScript 3.0 appare in inglese

Non tutte le parti della Guida di riferimento di ActionScript 3.0 sono tradotte in tutte le lingue. Quando un elemento del linguaggio non è tradotto, viene riportato in inglese. Ad esempio, la classe ga.controls.HelpBox non è tradotta in nessuna lingua. Pertanto, nella versione italiana della guida di riferimento, la descrizione della classe ga.controls.HelpBox è riportata in inglese.