Podczas odtwarzania pliku dźwiękowego lub wideo, gdy dane są nadal ładowane, mówi się, że są one
przesyłane strumieniowo
. Zewnętrzne pliki dźwiękowe ładowane ze zdalnego serwera są często przesyłane strumieniowo, tak że użytkownik nie musi czekać, aż wszystkie dane zostaną załadowane, zanim wysłucha dźwięku.
Właściwość
SoundMixer.bufferTime
reprezentuje liczbę milisekund danych dźwiękowych, które program Flash Player lub AIR powinien zgromadzić przed odtworzeniem dźwięku. Innymi słowy, jeśli właściwość
bufferTime
ustawiono na wartość 5000, Flash Player lub AIR ładuje co najmniej 5000 milisekund danych z pliku dźwiękowego zanim plik dźwiękowy zacznie być odtwarzany. Wartość domyślna
SoundMixer.bufferTime
to 1000.
Aplikacja może zastępować globalną wartość
SoundMixer.bufferTime
dla poszczególnych dźwięków, jawnie określając nową wartość
bufferTime
podczas ładowania dźwięku. W celu nadpisania domyślnego czasu buforowania należy po pierwsze utworzyć nową instancję klasy SoundLoaderContext, ustawić jej właściwość
bufferTime
, a następnie przekazać ją w postaci parametru do metody
Sound.load()
, zgodnie z przykładem poniżej:
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();
W miarę odtwarzania program Flash Player lub AIR próbują zachować co najmniej tę samą wielkość bufora dźwięku. Jeśli dane są ładowane w tempie szybszym od tempa odtwarzania, odtwarzanie jest kontynuowane bez przeszkód. Jeśli jednak tempo ładowania zwolni z uwagi na ograniczenia sieci, głowica odtwarzania może osiągnąć koniec bufora. W takim wypadku odtwarzanie jest zawieszane i wznawiane automatycznie po załadowaniu większej ilości danych.
W celu sprawdzenia, czy odtwarzanie zostało zawieszone z powodu oczekiwania przez program Flash Player lub AIR na ładowane dane, należy użyć właściwości
Sound.isBuffering
.