屬性名稱 用途

duration 視頻流已播放時間

width 視頻寬度

height 視頻高度

framerate 視頻幀率

在事件onPlayStatus裏,我們可以通過訪問對象info的code屬性來判斷當前流的播放狀態,這個狀態和前述我們講到的NetStatus裏的狀態是一致的,這裏就不贅述了。

當視頻流開始緩衝和播放時,我們可以利用setInterval方式來檢測其緩衝進度和播放進度,並且相應地控製播放進度條的控件。

首先考慮視頻播放進度的情況,我們定義一個Number類型的全局變量playItv:

var playItv:Number;

定義一個setInterval函數checkTime,形參包括ns:NetStream 相關的NetStream 對象:

playItv = setInterval(checkTime, 500, ns);

function checkTime(ns:NetStream)

{

//to do…

}

定義一個用來控製checkTime函數工作的標誌位變量canPlay,類型為bool:

var canPlay:Boolean;

函數checkTime需要實現如下邏輯:

? 計算進度按鈕posBtn的顯示位置。

? 調整posBtn的顯示位置,使之和當前播放進度一致。

? 計算進度條playedBar的長度。

? 調整 playedBar的長度,使之和當前播放進度一致。

實現方法如下。

首先我們需要保證操作是在標誌位為true的時候發生,這樣在後麵可以方便控製setInterval的動作是否生效,代碼如下:

function checkTime(ns:NetStream)

{

if(canPlay)

{

//to do…

}

}

posBtn的位置計算方式如下:

function checkTime(ns:NetStream)

{

if(canPlay)

{

posBtn.x = (ns.time * posBar.width) / streamLength;

}

}

同理,進度條playedBar的寬度也可以用相同方式來計算,代碼如下:

function checkTime(ns:NetStream)

{

if(canPlay)

{

posBtn.x = (ns.time * posBar.width) / streamLength;

playedBar.width = (ns.time * posBar.width) / streamLength;