import flash.display.Sprite; import flash.events.NetStatusEvent; import flash.events.SecurityErrorEvent; import flash.events.AsyncErrorEvent; import flash.events.IOErrorEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.Event; class NetConnectionExample extends Sprite { private static var videoURL:String = "test.flv"; private var connection:NetConnection; private var stream:NetStream; public function NCExample() { NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0; connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); connection.addEventListener(IOErrorEvent.IO_ERROR, iOErrorHandler); trace("Before Connect."); connection.connect("rtmp://cp19552.edgefcs.net/ondemand"); trace("After Connect."); } private function netStatusHandler(event:NetStatusEvent):Void { switch (event.info.code) { case "NetConnection.Connect.Success": trace(event); connectStream(); default: trace(event); } } private function securityErrorHandler(event:SecurityErrorEvent):Void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):Void { trace(event); } private function iOErrorHandler(event:IOErrorEvent):Void { trace(event); } function onMetaData( data : Dynamic ) { var metas = Reflect.copy(data); trace("META "+Std.string(metas)); } private function connectStream():Void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.client = { onMetaData : onMetaData }; var video:Video = new Video(); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } } class StreamPlayer { public static function main() { var example:NetConnectionExample; example = new NetConnectionExample(); example.NCExample(); } }