データ生成モードでNetStreamを使用して、appendBytesを使用して埋め込みFLVを再生しています。ストリームの再生が終了したら、FLVファイルをループさせたいと思います。これを達成する方法がわかりません。これが私がこれまでに持っているものです(これは完全な例ではありません):
public function createBorderAnimation():void
{
// Load the skin image
borderAnimation = Assets.BorderAnimation;
// Convert the animation to a byte array
borderAnimationBytes = new borderAnimation();
// Initialize the net connection
border_nc = new NetConnection();
border_nc.connect( null );
// Initialize the net stream
border_ns = new NetStream( border_nc );
border_ns.client = { onMetaData:function( obj:Object ):void{ trace(obj); } }
border_ns.addEventListener( NetStatusEvent.NET_STATUS, border_netStatusHandler );
border_ns.play( null );
border_ns.appendBytes( borderAnimationBytes );
// Initialize the animation
border_vd = new Video( 1024, 768 );
border_vd.attachNetStream( border_ns );
// Add the animation to the stage
ui = new UIComponent();
ui.addChild( DisplayObject( border_vd ) );
grpBackground.addElement( ui );
}
protected function border_netStatusHandler( event:NetStatusEvent ):void
{
if( event.info.code == "NetStream.Buffer.Flush" || event.info.code == "NetStream.Buffer.Empty" )
{
border_ns.appendBytesAction( NetStreamAppendBytesAction.RESET_BEGIN );
border_ns.appendBytes( borderAnimationBytes );
border_ns.appendBytesAction( NetStreamAppendBytesAction.END_SEQUENCE );
}
}
これはアニメーションをループしますが、それは狂ったように記憶をかみ砕き始めます。NetStream.seek(0)とNetStream.appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK)を使用してみましたが、次に何をすべきかわかりません。その後、appendBytesを再度呼び出そうとすると、機能しません。おそらく、FLVヘッダーなどを含むフルバイト配列を追加しているためです。私はそれがどのように機能するかについてはあまりよく知りません。
どんな助けでも大歓迎です。