は、ByteArrayのにFLVをエンコードByteArrayFlvEncoderをインスタンス化することによって開始します。残りは前バージョンと似ていますが、メタデータ内のdurationプロパティの更新が完了したら、updateDurationMetadata()を呼び出すことができます。最後に、kill()を呼び出してガベージコレクションのオブジェクトを準備します。
var baFlvEncoder:ByteArrayFlvEncoder = new ByteArrayFlvEncoder(myFrameRate);
baFlvEncoder.setVideoProperties(myWidth, myHeight, VideoPayloadMakerAlchemy);
// (Omit the 3rd argument to NOT use Alchemy if you're targeting Flash 9)
baFlvEncoder.setAudioProperties(BaseFlvEncoder.SAMPLERATE_44KHZ, true, false, true);
baFlvEncoder.start();
baFlvEncoder.addFrame(myBitmapData, myAudioByteArray);
baFlvEncoder.addFrame(myBitmapData, myAudioByteArray); // etc.
baFlvEncoder.updateDurationMetadata();
saveOutMyFileUsingFileReference(baFlvEncoder.byteArray);
baFlvEncoder.kill(); // for garbage collection
そして
、(AIRで)ローカルファイルに直接FLVをエンコードするファイルを参照してFileStreamFlvEncoderをインスタンス化し、露出のFileStreamを開き、その後、あなたがすべて完了したら、それを閉じるには:?
http://www.zeropointnine.com/blog/updated-flv-encoder-alchem/
:参考リンク以下でより詳細用の
var myFile:File = File.documentsDirectory.resolvePath("video.flv");
var fsFlvEncoder:FileStreamFlvEncoder = new FileStreamFlvEncoder(myFile, myFrameRate);
fsFlvEncoder.fileStream.openAsync(myFile, FileMode.UPDATE);
fsFlvEncoder.setVideoProperties(myWidth, myHeight, VideoPayloadMakerAlchemy);
fsFlvEncoder.setAudioProperties(BaseFlvEncoder.SAMPLERATE_44KHZ, true, false, true);
fsFlvEncoder.start();
fsFlvEncoder.addFrame(myBitmapData, myAudioByteArray);
fsFlvEncoder.addFrame(myBitmapData, myAudioByteArray); // etc.
fsFlvEncoder.updateDurationMetadata();
fsFlvEncoder.fileStream.close();
fsFlvEncoder.kill();