網路互動的增強功能

Flash Player 10.1 與 AIR 2.5 引進一組針對所有平台的網路最佳化新功能,包括循環式緩衝與智慧型搜尋。

循環式緩衝

在行動裝置上載入媒體內容時,可能會遇到桌上型電腦上幾乎從未預期的問題。例如,您比較有可能用完磁碟空間或記憶體。載入視訊時,Flash Player 10.1 與 AIR 2.5 的桌上型電腦版本會將整個 FLV 檔案 (或 MP4 檔案) 下載和快取至硬碟。接著執行階段會從快取檔案播放視訊。磁碟空間用完的情況較不常見。如果有這樣的情況發生,桌上型電腦執行階段會停止視訊的播放。

行動裝置比較容易用完磁碟空間。如果裝置用完磁碟空間,執行階段不會像桌上型電腦執行階段一樣停止播放。執行階段反而會開始從快取檔案的開頭再次寫入它,以重複使用快取檔案。使用者可以繼續觀賞視訊。使用者無法在已經重新寫入的視訊區域中尋找,但檔案的開頭除外。預設不會啟動循環式緩衝。它可以在播放期間啟動,而且如果影片大於磁碟空間或 RAM,也可以在播放的開頭啟動。執行階段至少需要 4 MB 的 RAM 或 20 MB 的磁碟空間,才能使用循環式緩衝。

備註: 如果裝置有足夠的磁碟空間,執行階段行動版本的行為會與桌上型電腦版本相同。請記住如果裝置沒有磁碟或磁碟已滿,會將 RAM 中的緩衝區做為備用空間。快取檔案與 RAM 緩衝區的大小限制可以在編譯期間設定。有些 MP4 檔案的結構需要下載整個檔案,才能開始播放。如果沒有足夠的磁碟空間,而且無法播放 MP4 檔案,執行階段會偵測這些檔案並避免下載。最好根本不要要求下載這些檔案。

身為開發人員,請記住搜尋只能在快取串流的界限內運作。如果偏移量超出範圍, NetStream.seek() 有時會失敗,而且在此情況下,會傳送 NetStream.Seek.InvalidTime 事件。

智慧型搜尋

備註: 智慧型搜尋功能需要 Adobe® Flash® Media Server 3.5.3。

Flash Player 10.1 與 AIR 2.5 引進稱為智慧型搜尋的新行為,這將可改善播放串流視訊時的使用者體驗。如果使用者在緩衝區界限內搜尋目的地,則執行階段會重複使用緩衝區以提供即時搜尋。在舊版的執行階段中,不會重複使用緩衝區。例如,如果使用者從串流伺服器播放視訊,並將緩衝時間設定為 20 秒 ( NetStream.bufferTime ),而使用者嘗試事先搜尋 10 秒,執行階段將會捨棄所有的緩衝區資料,而不是重複使用已經載入的 10 秒。此行為會強制執行階段更常從伺服器要求新資料,因而讓慢速連線的播放效能更差。

下圖說明舊版執行階段中的緩衝區行為。 bufferTime 屬性會指定預先載入的秒數,如果連線變慢,即會使用緩衝區而不需停止視訊:

智慧型搜尋功能之前的緩衝區行為

透過智慧型搜尋功能,執行階段現在會使用緩衝區,在使用者拖曳視訊時提供即時往前與往後搜尋。下圖說明此新行為:

使用智慧型搜尋功能往前搜尋

使用智慧型搜尋功能往後搜尋

當使用者往前或往後搜尋時,智慧型搜尋會重複使用緩衝區,這樣播放體驗會更快且更順暢。此新行為的其中一項優點是為視訊發行者節省頻寬。不過,如果搜尋是在緩衝區限制之外,會發生標準行為,執行階段會從伺服器要求新資料。

備註: 此行為不適用於漸進式視訊下載。

若要使用智慧型搜尋,請將 NetStream.inBufferSeek 設定為 true