Operazioni con l'audio in streaming

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

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 .