2011-09-16 7 views
2

私はループでAS3アプリケーションを作成しようとしています、シームレスビデオの背景。背景はflvからロードされます。これまでの問題は、シームレスなビットです。なぜなら、私がAS3に関して遭遇したすべてのビデオループの戦術は、ビデオの終わりには、最初に戻って再びプレイする前に、短くて目立つポーズが常にあるようです。ActionScript3でビデオバッファをループする

これに対処するための最良の方法は、ビデオを再生し、ビデオフレームをBitmapDataオブジェクトとして定義された長さのキューに(ステージにビデオを追加せずに)バッファリングすることです。この方法では、ビデオをレンダリングすると、それぞれのBitmapDatasをビットマップ オブジェクトにポップして、ステージに時間を置いてステージにアタッチして描画します。同様の

並べ替え:

/*VideoBufferer loops the input video and queues frames and then updates*/ 
var vidbuffer:VideoBufferer = new MyVideo("video.flv",outputImage) 

var outputImage:Bitmap = new Bitmap(); 
stage.addChild(outputImage); 

//forgive syntax, this is pseudoCode 
timed process that happens X times per second{ 
    outputImage.bitmapData = vidbuffer.popBitmapData(); //returns bitmap data from the queue 
} 

私は音を気にしないでください。

しかし、この希望のVideoBuffererクラスを実装する方法が分からないようですが、ビデオをステージに追加せずにビデオを再生する方法がわからず、フレームをフレームから取得する必要もありません。誰かが既にこのようなクラスを知っている人がいますか、誰かが私にVideoBuffererのフレームを取得する方法を説明するポインタを与えることができますか?

おかげ

答えて

1

ユアーズとオープンソースのための私の親友:ミスターDoob、救助に。

http://code.google.com/p/mrdoob/source/browse/trunk/libs/net/hires/utils/display/BitmapDataSequence.as

SWFをロードし、BitmapDataオブジェクトの配列をフレームに変換するために設計されています。それは2008年以来更新されていないので、ベクトルなどを使用するように更新する必要がありますが、それは答えです。

ビデオを使ってオンザフライで行うのは間違いありませんが、タイムラインにビデオを埋め込んだり(フレームレートを正しく設定してください)、後でロードするSWFを書き出すことは価値がありますうまくいく。

関連する問題