データ(ByteArray)からの動画再生
Flash10からデータ(ByteArray)を直接実行する機能がNetStreamクラスに追加されている。NetStream.play()にnullを渡すことで、データ生成モードとなり、appendBytes()というメソッドを使ってデータ(ByteArray)から再生できる。
Flash10からの機能なのでFlash9向けのAPIリファレンスを見ると載っていないので注意。
動画の終了検知
データ生成モードの場合、通常の再生と異なり色々とイベントが発生しないようである。通常はVideoクラスのEvent.COMPLETEイベントで終了を検知できるようだが、データ生成モードの場合はできない。
動画の終了を検知するには、NetStreamクラスのNetStatusEvent.NET_STATUSイベントを使用する。
NetStatusEventのinfoプロパティのcodeに 'NetStream.Buffer.Empty' が入っていたらappendBytes()で追加したデータをすべて使い切ったということなので、終了を検知できる。
netStream.addEventListener( NetStatusEvent.NET_STATUS, handler );
function handler(e:NetStatusEvent):void {
if ( e.info.code == 'NetStream.Buffer.Empty' ) {
// 動画終了時処理
}
}参考サイト
ビデオ再生方法http://stackoverflow.com/questions/10579142/how-to-embed-flv-in-flash-and-play-it-with-as3
終了を検知してループ再生する方法
http://stackoverflow.com/questions/11891852/how-to-loop-video-using-netstream-in-data-generation-mode