package { import flash.media.Video; import flash.media.*; import flash.net.NetConnection; import flash.net.NetStream; import flash.display.Sprite; import flash.text.TextField; import flash.events.Event; import flash.events.NetStatusEvent; import flash.events.SecurityErrorEvent; public class Player extends Sprite { // Streaming URL private var rtmp_url:String = "rtmp://itp.nyu.edu/sve204/live"; private var stream_name:String = "live"; private var nc:NetConnection; private var ns:NetStream; private var mycam:Camera; private var mymic:Microphone; private var myvid:Video; private var displayText:TextField = new TextField(); public function Player():void { // Enable debugging showing status in textfield showDebug(true); displayText.text = "Starting Up"; // Create connection object nc = new NetConnection(); displayText.text = "Created NetConnection"; // add netstatus event handler nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); displayText.text = "added netstatus event handler"; // add security event handler nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); displayText.text = "added security event handler"; // Connect to FMS nc.connect(rtmp_url); displayText.text = "Connected?"; } private function showDebug(show:Boolean):void { this.addChild(displayText); } private function connectStream():void { // Create netstream object ns = new NetStream(nc); displayText.text = "Created NetStream"; // Create a video object myvid = new Video(320, 240); displayText.text = "Created video object"; // Add the video object to the stage this.addChild(myvid); displayText.text = "Added video object to stage"; // Attach the stream to the video object myvid.attachNetStream(ns); displayText.text = "Attached stream to video object"; // Play the stream ns.play(stream_name); displayText.text = "Playing stream"; } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": displayText.text = "Connection Success"; connectStream(); break; case "NetStream.Play.StreamNotFound": displayText.text = "Stream not found: " + rtmp_url; trace("Stream not found: " + rtmp_url); break; } } private function securityErrorHandler(event:SecurityErrorEvent):void { displayText.text = "security error " + event; trace("securityErrorHandler: " + event); } } }