Werken met gestreamde geluidsbestanden

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

Wanneer een geluidsbestand of videobestand wordt afgespeeld terwijl er nog gegevens uit het bestand worden geladen, is er sprake van streaming . Externe geluidsbestanden die vanaf een externe server worden geladen, worden vaak gestreamd, zodat de gebruiker niet hoeft te wachten tot alle geluidsgegevens zijn geladen om naar het geluid te kunnen luisteren.

De eigenschap SoundMixer.bufferTime staat voor het aantal milliseconden aan geluidsgegevens dat door Flash Player of AIR moet worden verzameld voordat er kan worden gestart met het afspelen van het geluid. Met andere woorden, als de eigenschap bufferTime op 5000 is ingesteld, laadt Flash Player of AIR ten minste 5000 milliseconden aan gegevens uit het geluidsbestand voordat het afspelen van het geluid wordt gestart. De standaardwaarde voor SoundMixer.bufferTime is 1000.

Uw toepassing kan de algemene waarde van SoundMixer.bufferTime voor een specifiek geluidsbestand onderdrukken door bij het laden van het geluid expliciet een nieuwe waarde voor bufferTime op te geven. Als u de standaardbuffertijd wilt onderdrukken, maakt u eerst een nieuwe instantie van de klasse SoundLoaderContext, stelt u de waarde voor de eigenschap bufferTime hiervan in en geeft u dit vervolgens door als parameter aan de methode Sound.load() , zoals hieronder wordt weergegeven:

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

Terwijl het afspelen wordt vervolgd, probeert Flash Player of AIR de geluidsbuffer even groot of groter te houden. Als de geluidsgegevens sneller dan de afspeelsnelheid worden geladen, wordt het afspelen zonder onderbreking voortgezet. Als de snelheid waarmee de gegevens worden geladen door netwerkbeperkingen afneemt, zou de afspeelkop echter het einde van de geluidsbuffer kunnen bereiken. Als dit gebeurt, wordt het afspelen onderbroken, om vervolgens automatisch te worden hervat zodra er meer geluidsgegevens zijn geladen.

Als u wilt nagaan of het afspelen is onderbroken omdat Flash Player of AIR wacht tot er gegevens zijn geladen, gebruikt u de eigenschap Sound.isBuffering .