Praca z przesyłanymi strumieniowo plikami dźwięków

Flash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje

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 .