播放多個視訊檔

如果要由 FLVPlayback 實體連續播放多個視訊檔,只要在上一個視訊檔完成播放時,使用 source 屬性載入新的 URL 即可。例如,下列 ActionScript 程式碼會偵聽在視訊檔完成播放時所發生的 complete 事件。當這個事件發生時,程式碼會為 source 屬性設定新視訊檔的名稱和位置,並且呼叫 play() 方法來播放新的視訊。

import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/clouds.flv"; 
my_FLVPlybk.addEventListener(VideoEvent.COMPLETE, complete_listener); 
// listen for complete event; play new FLV 
function complete_listener(eventObject:VideoEvent):void { 
    if (my_FLVPlybk.source == "http://www.helpexamples.com/flash/video/clouds.flv") { 
        my_FLVPlybk.play("http://www.helpexamples.com/flash/video/water.flv"); 
    } 
};

使用多個視訊播放程式

您也可以在 FLVPlayback 組件的單一實體內開啟多個視訊播放程式,以播放多個視訊並在播放的同時進行切換。

將 FLVPlayback 組件拖曳到「舞台」時,便會建立初始視訊播放程式。組件會自動指派數字 0 給初始視訊播放程式,讓它成為預設的播放程式。只要將 activeVideoPlayerIndex 屬性設定為新的數字,即可建立其它視訊播放程式。設定 activeVideoPlayerIndex 屬性也會使指定的視訊播放程式成為「作用中」視訊播放程式,而該視訊播放程式將會受 FLVPlayback 類別的屬性和方法影響。不過,設定 activeVideoPlayerIndex 屬性並不會將視訊播放程式顯示出來。若要讓視訊播放程式變成可見的狀態,請將 visibleVideoPlayerIndex 屬性設定為視訊播放程式的編號。如需有關這些屬性如何與 FLVPlayback 類別之方法和屬性互動的詳細資訊,請參閱 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考 中的 FLVPlayback.activeVideoPlayerIndex 與 FLVPlayback.visibleVideoPlayerIndex 屬性。

下列 ActionScript 程式碼會載入 source 屬性,以便在預設視訊播放程式中播放視訊檔,並為它新增提示點。當 ready 事件發生時,事件處理常式會將 activeVideoPlayerIndex 屬性設定為數字 1 以開啟第二個視訊播放程式,再為第二個視訊播放程式指定 FLV 檔和提示點,然後讓預設播放程式 (0) 再次成為現用的視訊播放程式。

/** 
    Requires: 
- FLVPlayback component on the Stage with an instance name of my_FLVPlybk 
*/ 
// add a cue point to the default player 
import fl.video.*; 
my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/clouds.flv"; 
my_FLVPlybk.addASCuePoint(3, "1st_switch"); 
my_FLVPlybk.addEventListener(VideoEvent.READY, ready_listener); 
function ready_listener(eventObject:VideoEvent):void { 
    // add a second video player and create a cue point for it 
    my_FLVPlybk.activeVideoPlayerIndex = 1; 
    my_FLVPlybk.source = "http://www.helpexamples.com/flash/video/water.flv"; 
    my_FLVPlybk.addASCuePoint(3, "2nd_switch"); 
    my_FLVPlybk.activeVideoPlayerIndex = 0; 
};

若要在播放 FLV 檔時切換至其它 FLV 檔,您必須在 ActionScript 程式碼中進行切換。提示點可讓您利用 cuePoint 事件介入 FLV 檔中特定的時間點。下列程式碼會為 cuePoint 事件建立偵聽程式,並呼叫能夠暫停現用視訊播放程式 (0)、切換至第二個播放程式 (1) 及播放其 FLV 檔的處理常式函數:

import fl.video.*; 
// add listener for a cuePoint event 
my_FLVPlybk.addEventListener(MetadataEvent.CUE_POINT, cp_listener); 
// add the handler function for the cuePoint event 
function cp_listener(eventObject:MetadataEvent):void { 
        // display the no. of the video player causing the event 
        trace("Hit cuePoint event for player: " + eventObject.vp); 
        // test for the video player and switch FLV files accordingly 
        if (eventObject.vp == 0) { 
            my_FLVPlybk.pause();     //pause the first FLV file 
            my_FLVPlybk.activeVideoPlayerIndex = 1; // make the 2nd player active 
            my_FLVPlybk.visibleVideoPlayerIndex = 1; // make the 2nd player visible 
            my_FLVPlybk.play(); // begin playing the new player/FLV 
        } else if (eventObject.vp == 1) { 
            my_FLVPlybk.pause(); // pause the 2nd FLV 
            my_FLVPlybk.activeVideoPlayerIndex = 0; // make the 1st player active 
            my_FLVPlybk.visibleVideoPlayerIndex = 0; // make the 1st player visible 
            my_FLVPlybk.play(); // begin playing the 1st player 
        } 
} 
my_FLVPlybk.addEventListener(VideoEvent.COMPLETE, complete_listener); 
function complete_listener(eventObject:VideoEvent):void { 
        trace("Hit complete event for player: " + eventObject.vp); 
        if (eventObject.vp == 0) { 
            my_FLVPlybk.activeVideoPlayerIndex = 1; 
            my_FLVPlybk.visibleVideoPlayerIndex = 1; 
            my_FLVPlybk.play(); 
        } else { 
            my_FLVPlybk.closeVideoPlayer(1); 
        } 
};

當您建立新的視訊播放程式時,FLVPlayback 實體會將視訊播放程式的屬性設定為預設視訊播放程式的值,但 source totalTime isLive 屬性除外,因為 FLVPlayback 實體永遠都會將這些屬性設定為預設值:分別為空字串、0 和 false 。它會將預設視訊播放程式原本預設為 true autoPlay 屬性設定為 false cuePoints 屬性不會有任何作用,並且對預設視訊播放程式的後續載入動作也沒有作用。

控制音量、位置、尺寸、可見性和使用者介面控制項的方法和屬性永遠是通用的,而且其行為不會因為 activeVideoPlayerIndex 屬性的設定而受到影響。如需有關這些方法和屬性以及設定 activeVideoPlayerIndex 屬性影響的詳細資訊,請參閱 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考 中的 FLVPlayback.activeVideoPlayerIndex 屬性。其餘的屬性和方法會以 activeVideoPlayerIndex 屬性值所識別的視訊播放程式為目標。

不過,控制尺寸的屬性和方法仍將與 visibleVideoPlayerIndex 屬性互動。如需詳細資訊,請參閱 適用於 Adobe Flash Platform 的 ActionScript 3.0 參考 中的 FLVPlayback.visibleVideoPlayerIndex 屬性。