La riproduzione di un file audio o video mentre i relativi dati sono ancora in fase di caricamento si definisce
streaming
. I file audio esterni che vengono caricati da un server remoto sono eseguiti spesso in streaming per evitare all'utente di attendere che tutti i dati audio siano stati caricati prima di poter ascoltare l'audio.
La proprietà
SoundMixer.bufferTime
rappresenta il numero di millisecondi di dati audio che Flash Player o AIR devono raccogliere prima di consentire la riproduzione dell'audio. In altre parole, se la proprietà
bufferTime
è impostata su 5000, Flash Player o AIR caricano almeno 5000 millisecondi di dati dal file audio prima di iniziare la riproduzione dell'audio. Il valore predefinito di
SoundMixer.bufferTime
è 1000.
L'applicazione può ignorare il valore globale di
SoundMixer.bufferTime
per un determinato file audio specificando un nuovo valore per
bufferTime
durante il caricamento dell'audio. Per ignorare il tempo di bufferizzazione predefinito, innanzi tutto create una nuova istanza della classe SoundLoaderContext, impostatene la proprietà
bufferTime
e passatela come parametro al metodo
Sound.load()
, come mostrato di seguito:
import flash.media.Sound;
import flash.media.SoundLoaderContext;
import flash.net.URLRequest;
var s:Sound = new Sound();
var req:URLRequest = new URLRequest("bigSound.mp3");
var context:SoundLoaderContext = new SoundLoaderContext(8000, true);
s.load(req, context);
s.play();
Mentre la riproduzione continua, Flash Player o AIR tentano di preservare la dimensione del buffer audio (o di aumentarla). Se i dati audio vengono caricati più rapidamente rispetto alla velocità di riproduzione, la riproduzione continua senza interruzioni. Tuttavia, se la velocità di caricamento dei dati rallenta a causa dei limiti della rete, è possibile che l'indicatore di riproduzione raggiunga la fine del buffer audio. In tal caso, la riproduzione viene sospesa e ripristinata automaticamente non appena sono stati caricati altri dati audio.
Per determinare se la riproduzione è sospesa perché Flash Player o AIR sono in attesa del caricamento dei dati, usate la proprietà
Sound.isBuffering
.