Skip to main content
Known Participant
March 19, 2010
Answered

Publish live video & play

  • March 19, 2010
  • 1 reply
  • 1400 views

Hi all, i use the code below to publish my cam, and i can play it in the same application. Then i copy and renamer it videoPlayer2.as then i use

displayPlaybackVideo(); method but it says "TypeError: Error #1009: Cannot access a property or method of a null object reference.". How can i get the published live video from another app.

Thanks..

videoPlayer.as // publish and play

package
{
     import flash.display.MovieClip;
     import flash.net.NetConnection;
     import flash.net.NetStream;
     import flash.media.Camera;
  import flash.media.Microphone;
     import flash.media.Video;
     import flash.events.NetStatusEvent;
  import fl.video.FLVPlayback;
     
     
     public class videoPlayer extends MovieClip
     {
            var nc:NetConnection;
   var ns:NetStream;
   var nsPlayer:NetStream;
   var vid:Video;
   var vidPlayer:Video;
   var cam:Camera;
   var mic:Microphone;
        
  
           public function videoPlayer()
           {       
                nc=new NetConnection();
                nc.connect("rtmp://localhost/video");
                nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);    
           }
    
           function onNetStatus(event:NetStatusEvent):void
     {
      trace(event.info.code);
       if(event.info.code == "NetConnection.Connect.Success"){
           publishCamera();
           displayPublishingVideo();
           displayPlaybackVideo();
       }
     }
    
     function publishCamera() {
        cam = Camera.getCamera();
    cam.setMode(160,120,15);
    cam.setQuality(100000,0);
       mic = Microphone.getMicrophone();
       ns = new NetStream(nc);
       ns.attachCamera(cam);
       ns.attachAudio(mic);
       ns.publish("myCamera", "record");
   }

  function displayPublishingVideo():void {
   vid = new Video(200,200);
   vid.x = 10;
      vid.y = 10;
      vid.attachCamera(cam);
      addChild(vid); 
  }

  function displayPlaybackVideo():void{
      nsPlayer = new NetStream(nc);
      vidPlayer = new Video(200,200);
  
   nsPlayer.client=this
      nsPlayer.play("myCamera",-1,-1);
  
   vidPlayer.x = cam.width + 80;
      vidPlayer.y = 10;
      vidPlayer.attachNetStream(nsPlayer);
      addChild(vidPlayer);
  }    
    }
}

    This topic has been closed for replies.
    Correct answer SE_0208

    Nailed it down, there is one error in one statement, please change the line in your VideoPlayer2.as:

    vidPlayer.x = cam.width + 80;   // its referring to cam which is not defined in this class

    1 reply

    Participating Frequently
    March 19, 2010

    I think after you copy/paste and rename it to VideoPlayer2.as , you need to rename the class inside, so please change all references of videoPlayer to videoPlayer2.

    Let me know if that does not solve and you still have issues.

    tkosenAuthor
    Known Participant
    March 19, 2010

    if i publish camera in videoPlayer2, displayPlaybackVideo() method is working, but i cannot catch the video whichs is published from videuPlayer.as.

    thanks

    //videoPlayer.as

    package
    {
         import flash.display.MovieClip;
         import flash.net.NetConnection;
         import flash.net.NetStream;
         import flash.media.Camera;
      import flash.media.Microphone;
         import flash.media.Video;
         import flash.events.NetStatusEvent;
      import fl.video.FLVPlayback;
         
         
         public class videoPlayer extends MovieClip
         {
                var nc:NetConnection;
                var ns:NetStream;
                var nsPlayer:NetStream;
                var vid:Video;
                var vidPlayer:Video;
                var cam:Camera;
                var mic:Microphone;
            
      
               public function videoPlayer()
               {       
                    nc=new NetConnection();
                    nc.connect("rtmp://localhost/video");
                    nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);    
               }
        
               function onNetStatus(event:NetStatusEvent):void
         {
          trace(event.info.code);
           if(event.info.code == "NetConnection.Connect.Success"){
               publishCamera();
               displayPublishingVideo();
               displayPlaybackVideo();
           }
         }
        
         function publishCamera() {
            cam = Camera.getCamera();
        cam.setMode(160,120,15);
        cam.setQuality(100000,0);
           mic = Microphone.getMicrophone();
           ns = new NetStream(nc);
           ns.attachCamera(cam);
           ns.attachAudio(mic);
           ns.publish("myCamera", "append");
       }

      function displayPublishingVideo():void {
       vid = new Video(200,200);
       vid.x = 10;
          vid.y = 10;
          vid.attachCamera(cam);
          addChild(vid); 
      }

      function displayPlaybackVideo():void{
          nsPlayer = new NetStream(nc);
          vidPlayer = new Video(200,200);
      
       nsPlayer.client=this
          nsPlayer.play("myCamera",-1,-1);
      
       vidPlayer.x = cam.width + 80;
          vidPlayer.y = 10;
          vidPlayer.attachNetStream(nsPlayer);
          addChild(vidPlayer);
      }    
        }
    }

    //videoPlayer2.as

    package
    {
         import flash.display.MovieClip;
         import flash.net.NetConnection;
         import flash.net.NetStream;
         import flash.media.Camera;
         import flash.media.Microphone;
         import flash.media.Video;
         import flash.events.NetStatusEvent;
         import fl.video.FLVPlayback;
         
         
         public class videoPlayer2 extends MovieClip
         {
                var nc:NetConnection;
                var ns:NetStream;
                var nsPlayer:NetStream;
                var vid:Video;
                var vidPlayer:Video;
                var cam:Camera;
                var mic:Microphone;
            
      
               public function videoPlayer2()
               {       
                    nc=new NetConnection();
                    nc.connect("rtmp://localhost/video");
                    nc.addEventListener(NetStatusEvent.NET_STATUS,onNetStatus);    
               }
        
               function onNetStatus(event:NetStatusEvent):void
              {
                    trace(event.info.code);
                     if(event.info.code == "NetConnection.Connect.Success"){
                          displayPlaybackVideo();
                     }
              }
       

           function displayPlaybackVideo():void{
                    nsPlayer = new NetStream(nc);
                    vidPlayer = new Video(200,200);
      
                    nsPlayer.client=this
                    nsPlayer.play("myCamera",-1,-1);
      
                     vidPlayer.x = cam.width + 80;
                     vidPlayer.y = 10;
                    vidPlayer.attachNetStream(nsPlayer);
                    addChild(vidPlayer);
           }   


        }
    }

    SE_0208Correct answer
    Participating Frequently
    March 19, 2010

    Nailed it down, there is one error in one statement, please change the line in your VideoPlayer2.as:

    vidPlayer.x = cam.width + 80;   // its referring to cam which is not defined in this class