·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]Red5流媒体RTMP服务端和Flash方法相互调用的示例代码

时间:2012-05-04 18:12ZhangEF
[AS3]Red5流媒体RTMP服务端和Flash方法相互调用的示例代码,Red5服务端,rtmp播放器
播放器界面

极酷阳光播放器CuSunPlayerV2.0版RTMP流媒体播放器:[ Rtmp测试演示1 ]

支持RTMP协议(支持red5,wowza,FMS等rtmp流媒体)[ 演示2 ]

更多演示请点击进入[ 极酷阳光V2版RTMP流媒体播放器专栏 ]

服务端代码

  1. package org.zyf.myServer;//需要修改  
  2. import org.red5.server.adapter.ApplicationAdapter;  
  3. import org.red5.server.api.IConnection;  
  4. import org.apache.commons.logging.Log;  
  5. import org.apache.commons.logging.LogFactory;  
  6. import org.red5.server.api.Red5;  
  7. import org.red5.server.api.service.IServiceCapableConnection;  
  8.  
  9. public class Application extends ApplicationAdapter {  
  10.       
  11.     protected static Log log = LogFactory.getLog(Application.class.getName());  
  12.     public String CallServer(String str){      
  13.         System.out.println("user connected.param= " + str );   
  14.          IConnection myConn=Red5.getConnectionLocal();  
  15.         if (myConn instanceof IServiceCapableConnection)  
  16.         {  
  17.             //转发消息  
  18.             IServiceCapableConnection sc = (IServiceCapableConnection) myConn;  
  19.             sc.invoke("CallBack", new Object[]{"wellcome"});            
  20.         }  
  21.         return "hellow";  
  22.     }  
  23.  
  24.     public boolean appConnect(IConnection conn, Object[] params) {  
  25.         // Trigger calling of "onBWDone", required for some FLV players  
  26.           
  27.         if (params == null || params.length == 0) {  
  28.             log.debug("user unknown connected");  
  29.             // NOTE: "rejectClient" terminates the execution of the current method!  
  30.             //rejectClient("No username passed.");  
  31.         }  
  32.         else  
  33.         {  
  34.             log.debug("user "+params[0]+" connected");  
  35.         }  
  36.    
  37.         return super.appConnect(conn, params);  
  38.     }  
  39.  

Flash代码:

  1. //import flash.net.Responder;   
  2.  
  3. NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;  
  4. var nc:NetConnection = new NetConnection();  
  5. nc.addEventListener(NetStatusEvent.NET_STATUS,StatusHander);  
  6. nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR,ErroHander);  
  7. nc.connect("rtmp://192.168.10.10/myServer");  
  8. trace("connect..");  
  9.  
  10.  
  11. var obj:Object = new Object();  
  12. function StatusHander(event:NetStatusEvent):void  
  13. {  
  14.     var info:Object = event.info;  
  15.       
  16.     trace("StatusHander");  
  17.     switch(info.code)  
  18.     {  
  19.         case "NetConnection.Connect.Success":  
  20.             trace("Sucess");  
  21.             nc.client = this;              
  22.             nc.call("CallServer",new Responder(Result),"msg=NC.call");  
  23.             break;  
  24.         case "NetConnection.Connect.Failed":  
  25.             trace("Failed");  
  26.             break;  
  27.         default:  
  28.             trace(info.code);  
  29.             break;  
  30.     }  
  31. }  
  32. var a:int=0;  
  33. function Result(obj:Object):void   
  34.         {   
  35.                 trace("i got it: "+obj);   
  36.         }   
  37. function ErroHander(event:AsyncErrorEvent):void  
  38. {  
  39.     trace("Erro:");  
  40. }  
  41.  
  42. function CallBack(str:String):String  
  43. {  
  44.     trace("CallBack()"+str);  
  45.     return str+" len = "+ str.length;  
  46. }  
  47.  
  48. //stop(); 

输出:
connect..
StatusHander
Sucess
CallBack()wellcome.
i got it: hellow
 

热门文章推荐

请稍候...

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

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