package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
//動画ストリーミングの再生
[SWF(width=240, height=240, backgroundColor=0xFFFFFF)]
public class VideoEx extends Sprite {
//変数
private var nc:NetConnection;//コネクション
private var ns:NetStream; //ストリーム
//コンストラクタ
public function VideoEx() {
//コネクションの生成
nc=new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError);
nc.connect(null);
}
//通信状態イベントの処理
private function onNetStatus(evt:NetStatusEvent):void {
//成功
if (evt.info.code=="NetConnection.Connect.Success") {
//ストリームの生成
ns=new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);
ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,onAsyncError);
//メタデータの取得
var obj:Object=new Object();
obj.onMetaData=onMetaData;
ns.client=obj;
//ビデオの生成
var video:Video=new Video(128,96);
video.x=56;
video.y=72;
addChild(video);
video.attachNetStream(ns);
//ビデオの再生
ns.play("robo.flv");
}
//停止
else if (evt.info.code=="NetStream.Play.Stop") {
trace("Stop");
}
//エラー
else if (evt.info.level=="error") {
trace("Error");
}
}
//メタデータ取得イベントの処理
private function onMetaData(info:Object):void {
}
//セキュリティーエラーイベントの処理
private function onSecurityError(evt:SecurityErrorEvent):void {
trace("SecurityError");
}
//同期エラーイベントの処理
private function onAsyncError(evt:AsyncErrorEvent):void {
trace("AsyncErrorEvent");
}
}
}
|