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 プロパティを参照してください。