1

同じ FLVPlayback コンポーネントを使用して、構築中の大規模なフラッシュ サイト全体で多くのページ遷移ビデオを再生しています。各遷移で、各ページ遷移に進む前myFLVPlayback.sourceに、イベントを使用してリッスンするコンポーネントのソースを設定しています。fl.video.VideoEvent.READYこれは、ページのすべてのペア間のトランジションで異なるビデオが使用されている限り、問題なく機能します。

残念ながら、同じページからページへのトランジション ビデオを 2 つの連続するトランジションで呼び出す必要がある場合に問題が発生します。同じビデオを 2 回続けて再生するときsource、コンポーネントのプロパティを既に持っている値に設定しても何も起こらないようです。つまり、私のリスナーは起動しませんfl.video.VideoEvent.READYsourceコンポーネントを「リセット」する手段としてトランジションに実際に使用しているFLVに設定する前に、小さな、決して使用されていないFLVに設定するようなハックなことをすることができますが、知りたいですこのような状況でのベスト プラクティスとは (FLVPlaybackComponent などのベスト プラクティスについて率直に議論できる限り)。

コンポーネントのライブドキュメントを熟読しましたが、手ぶらで出てきました。この後期段階で NetStream、NetConnection、および Video オブジェクトを手動で使用することは、実際には選択肢ではありません。

4

2 に答える 2

3

再生しようとしている URL が前のトランジションと同じかどうかをチェックするハーネスを用意することをお勧めします。そうである場合は、ソースをリセットする代わりに、seek(0) (つまり、ビデオを巻き戻す) だけです。ソースをリセットすると、ビデオが強制的にリロードされる可能性があります (たとえば、ブラウザーのキャッシュが無効になっている場合)。

if (myFlvPlayback.source == nextTransitionUrl) {
  myFlvPlayback.seek(0);
  startTransition();
}
else {
  myFlvPlayback.source = nextTransitionUrl;
  // The "ready" event will fire, and your event handler will start playback
}

FLVPlayback.seek()メソッドを見てください。

乾杯

于 2009-12-31T15:23:17.603 に答える
0

これはしばらく解決されたように見えますが、とにかくチャイムを鳴らすと思いました. 説明した動作を正確にエミュレートするには、ソースが次の URL に == であるかどうかを確認してから、flvPlayback インスタンスで直接 dispatchEvent を呼び出すだけです。そうすれば、URL が異なる場合と同じように動作し、コーディングする必要があった唯一の手動介入は、URL が == であるかどうかを確認することだけです。

于 2010-05-19T13:43:39.370 に答える