これは少し即席の答えですが、論理は健全であり、追求する別の方向性を提供するはずです.
まず、コンセプト: Flash ビデオでは、2 つの完全に別個のプロセスが同時に発生します。
バッファリング / ロード
再生中のビデオ
したがって、再生とストリーミングは同時に発生する可能性がありますが、別々に発生する可能性があり、そこにロジックを接続する必要があります。
したがって、実装については、プライマリ プレーヤーと、セカンダリ (シャドウ) プレーヤー / ローダーを用意することになります。プライマリ プレーヤーは、最初のビデオの読み込みと再生を担当する必要があります。
[そしてここに魔法がやってくる]
プライマリ プレーヤーでのバッファリングが完了すると、NetStream オブジェクトの NetStream.Buffer.Flush NetStatusEvent によって決定されます。次に、シャドウ プレーヤーで次のビデオのバッファリングを開始し、接続を初期化し、NetStream.Pause を使用してバッファリングを開始しますが、プライマリ プレーヤーの再生中に再生は開始しません。
プライマリ プレーヤーで再生が完了すると (NetStream.Play.Stop イベントによって決定されます)、変数 (NetConnention、NetStream & Video) (常に参照によって渡されます) をシャドウ プレーヤーからプライマリ プレーヤーに渡すことができ、続行する必要があります。ほぼシームレスに。次に、シャドウ プレーヤーから値をクリアして上記のプロセスを繰り返し、次のビデオをロードする前にバッファリングが完了するのを待ちます。無限に。
または、よりバランスの取れたアプローチをとることもできます-私の考えでは、これはより多くのリソースを消費しますが (2 つのビデオ プレーヤーが継続的にアクティブになるため)、プライマリ プレーヤーとセカンダリ プレーヤーが交互に配置されます。1 つのバッファが完了するとすぐに、次のバッファリングを開始し、再生が完了するとすぐに、1 つのプレーヤーから別のプレーヤーに切り替えます。
これを組み立てるのは非常に面倒です (したがって、複雑であり、本質的にはあなたの仕事であるため、例がありません ;) 2 セットの NetConnections、NetStreams & Videos を扱うことになるため、開始するのは複雑です。で、処理が必要な多くのイベント...
しかし、私はここで play2() があなたの答えだとは思わない。ここで直面する問題は、2 つの別個の NetConnection と NetStream のシームレスな非同期化です。
ここでまだ支援/説明が必要な場合は、私に連絡してください。これは少し古い Q です。既に先に進んでいる場合は、数百行のコードを書きたくありません...
ベスト、a.)