複数のビデオファイルの再生

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 コンポーネントの 1 つのインスタンス内で複数のビデオプレーヤーを開き、複数のビデオを再生して、再生中にそれらを切り替えることもできます。

FLVPlayback コンポーネントをステージにドラッグすると、最初のビデオプレーヤーを作成できます。 最初のビデオプレーヤーには自動的に数値 0 が割り当てられ、これがデフォルトプレーヤーとなります。 追加のビデオプレーヤーを作成するには、 activeVideoPlayerIndex プロパティを新しい数値に設定します。 activeVideoPlayerIndex プロパティを設定すると、指定したビデオプレーヤーがアクティブなビデオプレーヤーになります。これは、FLVPlayback クラスのプロパティとメソッドによって制御されるビデオプレーヤーです。ただし、 activeVideoPlayerIndex プロパティを設定しても、ビデオプレーヤーは表示されません。ビデオプレーヤーを表示するには、 visibleVideoPlayerIndex プロパティにビデオプレーヤーの番号を設定します。これらのプロパティと、FLVPlayback クラスのメソッドとプロパティとの関連について詳しくは、「 Adobe Flash Professional CS5 用 ActionScript 3.0 リファレンスガイド 」の FLVPlayback.activeVideoPlayerIndex プロパティおよび FLVPlayback.visibleVideoPlayerIndex プロパティを参照してください。

次の ActionScript コードでは、 source プロパティをロードしてデフォルトのビデオプレーヤーでビデオファイルを再生し、そのキューポイントを追加します。 ready イベントが発生したら、イベントハンドラーは activeVideoPlayerIndex プロパティを値 1 に設定して、2 番目のビデオプレーヤーを開きます。イベントハンドラーは、2 番目のビデオプレーヤーの 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; 
};

1 つの FLV ファイルが再生中に別の FLV ファイルに切り替えるには、ActionScript コードで切り替えを行う必要があります。 キューポイントを使用すると、 cuePoint イベントを使用して、FLV ファイルで特定のポイントに介入することができます。次のコードでは、 cuePoint イベントのリスナを作成します。次に、アクティブなビデオプレーヤー(0)を一時停止し、2 番目のプレーヤー(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 の各プロパティは例外であり、これらに関しては常にデフォルト値である空のストリング、0 および false にそれぞれ設定されます。また autoPlay プロパティも設定されます。このプロパティはデフォルトで true であり、デフォルトのビデオプレーヤーの場合は false になります。 cuePoints プロパティには効果がなく、デフォルトビデオプレーヤーへのそれ以降のロードに対して無効です。

ボリューム、位置、サイズ、可視性およびユーザーインターフェイスコントロールを制御するメソッドとプロパティは常にグローバルであり、そのビヘイビアーは activeVideoPlayerIndex プロパティを設定しても影響を受けません。これらのメソッドおよびプロパティと、 activeVideoPlayerIndex プロパティを設定した影響について詳しくは、「 Adobe Flash Professional CS5 用 ActionScript 3.0 リファレンスガイド 」の FLVPlayback.activeVideoPlayerIndex プロパティを参照してください。その他のプロパティとメソッドは、 activeVideoPlayerIndex プロパティの値で指定されたビデオプレーヤーをターゲットとします。

ただし、サイズを制御するプロパティとメソッドは、 visibleVideoPlayerIndex プロパティによって影響を受けます。詳しくは、「 Adobe Flash Professional CS5 用 ActionScript 3.0 リファレンスガイド 」の FLVPlayback.visibleVideoPlayerIndex プロパティを参照してください。