石头的博客

关注flash,flex,asp,php的相关项目开发

« asp.net读取txt文本文件内容asp.net 操作word常用代码 »

用flash开发的iphone应用程序可以观看fms4做的在线视频

[ At 2011-3-28 By stone   0 comments ]

需要安装FLASH MEDIA SERVER 4 (这个版本已经支持flash的p2p视频)
需要用flash cs5 开发iphone程序  (生成的ipa格式的文件,需要91助手安装)

我把测试的代码发出来,需要iphone先打开程序,
然后电脑在打开一个,电脑的程序点击发布视频,iphone端点击接收视频

package
{
 import flash.display.Sprite;
 import flash.events.SecurityErrorEvent;
 import flash.events.IOErrorEvent;
 import flash.events.MouseEvent;
 import flash.events.NetStatusEvent;
 import flash.events.AsyncErrorEvent;
 import flash.net.NetStream;
 import flash.net.NetConnection;
 import flash.media.Camera;
 import flash.media.Microphone;

 public class Cs1 extends Sprite
 {
  public var nc:NetConnection;
  public var outgoingStream:NetStream;
  public var incomingStream:NetStream;
  public var myInofArr:Array=new Array();
  public var youInofArr:Array=new Array();

  public var camera:Camera;
  public var mic:Microphone;

  public function Cs1()
  {
   nc = new NetConnection();
   nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
   nc.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
   nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
   nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
   nc.connect("rtmfp://192.168.1.100/iphone1",youInofArr);
  }
  private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
  private function ioErrorHandler(event:IOErrorEvent):void {
   trace("ioErrorHandler="+event);
  }
  public function netStatusHandler(event:NetStatusEvent):void
  {
   trace(event.info.code);
   switch (event.info.code)
   {
    case "NetConnection.Connect.Success" :
     connectOk();
     //nc.call("checkBandwidth", null);
     break;
   }
  }

  public function asyncErrorHandler(event:AsyncErrorEvent):void
  {
   trace("asyncErrorHandler="+event);
  }

  public function showMsg(msg:String):void
  {
   txtc.htmlText +=  msg;
  }

  public function connectOk():void
  {
   trace("connectOk()");
   showMsg("connectOk()");
   showMsg("nc.nearID="+nc.nearID);
   txt1.text = "nc.nearID=" + nc.nearID;
   myInofArr.nid = nc.nearID;
   var ClientObj:Object=new Object();
   ClientObj.backInfo = backInfo;
   function backInfo(tempC:Object)
   {
    trace("backInfo");
    //trace(tempC);
   }

   ClientObj.ctoallMsg = ctoallMsg;
   function ctoallMsg(msg:String)
   {
    showMsg(msg);
    txt1.text = msg;
   }

 

   nc.client = ClientObj;

   bt1.addEventListener(MouseEvent.CLICK, bt1_ck);
   function bt1_ck(event:MouseEvent):void
   {
    outCam();
   }

   bt2.addEventListener(MouseEvent.CLICK, bt2_ck);
   function bt2_ck(event:MouseEvent):void
   {

    if (txt1.text != "")
    {
     inCam(txt1.text);
    }
   }

  }


  public function outCam():void
  {
   //myInofArr.nid
   //nc.call()
   nc.call("toallMsg",null, myInofArr.nid);

   //发布视频
   outgoingStream = new NetStream(nc,NetStream.DIRECT_CONNECTIONS);
   outgoingStream.addEventListener(NetStatusEvent.NET_STATUS,outStreamHandler);
   outgoingStream.publish("mediac");
   camera = Camera.getCamera();
   if (camera)
   {
    outgoingStream.attachCamera(camera);
    av1.attachCamera(camera);
   }

   mic = Microphone.getMicrophone();
   if (mic)
   {
    outgoingStream.attachAudio(mic);

   }
   function outStreamHandler(event:NetStatusEvent):void
   {
    //trace("outStreamHandler: " + event.info.code + "\n");
    switch (event.info.code)
    {
     case "NetStream.Play.Start" :

      break;
     case "NetStream.Connect.Closed" :

      break;

    }
   }

 

  }
  public function inCam(temp_nearID:String):void
  {
   incomingStream = new NetStream(nc,temp_nearID);
   incomingStream.addEventListener(NetStatusEvent.NET_STATUS,incontrolHandler);
   incomingStream.play("mediac");
   av1.attachNetStream(incomingStream);
   function incontrolHandler(event:NetStatusEvent):void
   {
    trace("in event: " + event.info.code + "\n");
    switch (event.info.code)
    {
     case "NetStream.Play.Start" :
      break;
     case "NetStream.Connect.Closed" :
      break;
    }
   }

  }
 }
}

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427 Code detection by Codefense

@2010 stonemx.com