3

複数の動画を連続して再生するプロジェクトを行っていますが、ストリームURLを指定して通常の方法で動画を読み込むと、次の動画を開始するたびに読み込みに遅延が発生します。

FlashとFlexの両方についてAdobeのドキュメントを調べましたが、ビデオをプリロードする方法が見つかりません。それらを埋め込むことは、このアプリケーションでは機能しません。理想的には、それらをプリロードし、その間にプログレスバーまたはその他の短いビデオを表示し、すべてのビデオがロードされたときにのみビデオの再生を開始します。

私はプログラミングについて他の人に質問することに慣れていません、私はRTFMですが、Adobeのドキュメントが不足していることがわかり、フラッシュ/フレックスの問題をグーグルで調べるのは難しいです。ふるいにかけることがたくさんあり、関連する技術/解決策を見つけることができません。

Flex / Flashに関しては、どちらか、または両方のソリューションに興味があります。おそらくそれはactionscriptと同じですか?

4

2 に答える 2

3

bulk-loaderプロジェクトを見て、これに役立つかどうかを確認してみてください。

フロントページからの抜粋:

「BulkLoaderは、Actionscript 3(AS3)で記述された最小限のライブラリであり、複雑な読み込み要件の読み込みと管理をより簡単かつ迅速に行うことを目的としています。BulkLoaderは、より動的でアーキテクチャの重いアプローチを採用します[原文のまま]。機能を備えたBulkLoaderには、邪魔にならないワンライナーの感触があります。」

于 2008-12-19T06:55:49.863 に答える
3

これは非常に簡単なはずです。ストレートフラッシュの場合は、いずれかのfl.videoを使用します。VideoPlayerまたはfl.video。FLVPlayback。動画ごとに1つずつ、複数のプレーヤーを作成し、ソース動画へのURLを使用してそれぞれにload()を呼び出します。次に、VideoProgressEvent.PROGRESSイベントをリッスンして、ビデオがいつロードされるかを確認します。最後に、ビデオを連続してビジュアルコンポーネントに添付し、play()を呼び出してそれらを再生できます。

サンプルコード(テストされていません):

var video1:VideoPlayer = new VideoPlayer();
video1.load("http://example.com/video1.flv");
video.addEventListener(VideoProgressEvent.PROGRESS,
                       function(e:VideoProgressEvent):void
                       {
                         if (e.bytesLoaded == e.bytesTotal)
                         {
                           trace("video1 loaded.");
                           parent.addChild(video1);
                           video1.play();
                         }
                       }
var video2:VideoPlayer = new VideoPlayer();
video2.load("http://example.com/video1.flv");
video.addEventListener(VideoProgressEvent.PROGRESS,
                       function(e:VideoProgressEvent):void
                       {
                         if (e.bytesLoaded == e.bytesTotal)
                         {
                           trace("video2 loaded.");
                         }
                       }
于 2008-12-19T07:20:12.403 に答える