·您当前的位置:首页 > 技术教程 > Rtmp技术 >

[FMS]FMS3进行在线视频的录制与视频回放代码示例(4)

时间:2012-09-13 11:47beniao
通过本文的基础上可以很方便的扩展出在线拍照等多种应用,有兴趣的朋友可以去试验下。下面是本文完整的示例代码。 package { importflash.net.*; importflash.events.*; importflash.media.*; importflash.display.

通过本文的基础上可以很方便的扩展出在线拍照等多种应用,有兴趣的朋友可以去试验下。下面是本文完整的示例代码。

  1. package  
  2. {  
  3.  import flash.net.*;  
  4.  import flash.events.*;  
  5.  import flash.media.*;  
  6.  import flash.display.*;  
  7.  import fl.controls.*;  
  8.    
  9.  public class PublishPlay extends Sprite  
  10.  {  
  11.   private var nc:NetConnection;  
  12.   private var ns:NetStream;  
  13.   private var video:Video;  
  14.   private var cam:Camera;  
  15.   private var mic:Microphone;  
  16.     
  17.   public function PublishPlay():void  
  18.   {  
  19.    lbName.text="请输入视频文件名:";  
  20.    btnPublish.label="开始录制";  
  21.    btnPublish.addEventListener(MouseEvent.CLICK,onPublishClick);  
  22.    btnStop.label="停止录制";  
  23.    btnStop.addEventListener(MouseEvent.CLICK,onStopHandler);  
  24.    btnPlay.label="视频回放";  
  25.    btnPlay.addEventListener(MouseEvent.CLICK,onPlayHandler);  
  26.      
  27.    video=new Video();  
  28.    cam = Camera.getCamera();  
  29.    mic = Microphone.getMicrophone();  
  30.    if(cam==null)  
  31.    {  
  32.     trace("没检测到视频摄像头");  
  33.    }  
  34.    else  
  35.    {  
  36.     video.attachCamera(cam);  
  37.    }  
  38.    addChild(video);  
  39.   }  
  40.     
  41.   private function onStatusHandler(evt:NetStatusEvent):void  
  42.   {  
  43.    trace(evt.info.code);  
  44.    if(evt.info.code=="NetConnection.Connect.Success")  
  45.    {  
  46.     ns=new NetStream(nc);  
  47.     ns.addEventListener(NetStatusEvent.NET_STATUS,onStatusHandler);  
  48.     ns.client=new CustomClient();  
  49.    }  
  50.   }  
  51.     
  52.   private function onPublishClick(evt:MouseEvent):void  
  53.   {  
  54.    nc=new NetConnection();  
  55.    nc.addEventListener(NetStatusEvent.NET_STATUS,onPublishStatusHandler);  
  56.    nc.connect("rtmp://localhost/PulishedStreams");  
  57.   }  
  58.     
  59.   private function onPublishStatusHandler(evt:NetStatusEvent):void  
  60.   {  
  61.    if(evt.info.code=="NetConnection.Connect.Success")  
  62.    {  
  63.     ns=new NetStream(nc);  
  64.     ns.addEventListener(NetStatusEvent.NET_STATUS,onPublishStatusHandler);  
  65.     ns.client=new CustomClient();  
  66.     ns.attachCamera(cam);  
  67.     ns.attachAudio(mic);  
  68.     ns.publish(tbName.text,"record");  
  69.    }  
  70.   }  
  71.     
  72.   private function onStopHandler(evt:MouseEvent):void  
  73.   {  
  74.    nc.close();  
  75.   }  
  76.     
  77.   private function onPlayHandler(evt:MouseEvent):void  
  78.   {  
  79.    nc=new NetConnection();  
  80.    nc.addEventListener(NetStatusEvent.NET_STATUS,onPlayStatusHandler);  
  81.    nc.connect("rtmp://localhost/PulishedStreams");  
  82.   }  
  83.     
  84.   private function onPlayStatusHandler(evt:NetStatusEvent):void  
  85.   {  
  86.    if(evt.info.code=="NetConnection.Connect.Success")  
  87.    {  
  88.     ns=new NetStream(nc);  
  89.     ns.addEventListener(NetStatusEvent.NET_STATUS,onPlayStatusHandler);  
  90.     ns.client=new CustomClient();  
  91.       
  92.     video = new Video();  
  93.     video.attachNetStream(ns);  
  94.     ns.play(tbName.text,0);  
  95.     addChild(video);  
  96.    }  
  97.   }  
  98.  }  

http://www.cnblogs.com/beniao/archive/2009/04/26/1415342.html

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器