如果在仍載入音效檔或視頻檔案資料的同時回放該檔案,則認為是串流。通常,將對
從遠程伺服器載入的外部音效檔進行串流,以使使用者不必等待載入完所有聲音資料再
收聽聲音。
SoundMixer.bufferTime 屬性工作表示 Flash Player 在允許播放聲音之前應收集多長時間的聲
音資料(以毫秒為單位)。也就是說,如果將 bufferTime 屬性設定為 5000,在開始播放
聲音之前, Flash Player 將從音效檔中載入至少相當於 5000 毫秒的資料。
SoundMixer.bufferTime 預設值為 1000。
通過在載入聲音時顯式地指定新的 bufferTime 值,應用程式可以覆蓋單個聲音的全域
SoundMixer.bufferTime 值。要覆蓋預設緩衝時間,請先建立一個新的
SoundLoaderContext 類執行個體,設定其 bufferTime 屬性,然後將其作為參數傳遞給
Sound.load() 方法,如下所示:
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();
當回放繼續進行時, Flash Player 嘗試將聲音緩衝保持在相同大小或更大。如果聲音資料的
載入速度比回放快,回放將繼續進行而不會中斷。但是,如果資料載入速率由於網路限制而
減慢,播放頭可能會到達聲音緩衝區的結尾。如果發生這種情況,將暫停回放,但會在載入
更多聲音資料後自動回復回放。
要查明暫停回放是否是由於 Flash Player 正在等待載入資料,請使用 Sound.isBuffering
屬性。