C++ rtmp livestream 流媒体

海阔天空 张翼飞翔

我的学习笔记。--我喜欢这里,因为这里安静,无广告骚扰。
随笔 - 82, 文章 - 2, 评论 - 126, 引用 - 0
数据加载中……

RED5创建应用 及参数传递

参考http://hi.baidu.com/xinming_blog/blog/item/bb5ffd8f6d94bcf9513d92bd.html

  流程:

  1.下载最新版本的RED5 http://osflash.org/red5
  2.安装JRE

  3.安装RED5,注意此时会要求指定JRE的目录。
  4.到RED5的安装目录,找到doc/templates目录,该目录中存放了一个标准的RED5应用程序模版myapp,将其复制到RED5安装目录中的webapps目录下,并改名为你喜欢的文件夹名,比如你要开发一个聊天的程序,那么可以把myapp改为myChat,这个名字就是以后你要连接的服务名了。
  5.在WEB-INF中新建一个文件夹src用来存放程序的源代码,新建一个classes文件夹用来存放编译后的文件。
  6.打开Eclipse(若没有请事先安装),将工作区指定为RED5安装目录下webapps,然后新建一个项目,项目名为myChat.这个时候你应该发现刚才myChat中的文件都被加载进来了,我们首先把src目录指定为源代码目录,右键选择src,在弹出的菜单中选择Build Path->Use as Source Folder,即将其指定为代码文件夹。接下来要指定项目的目标目录,在项目名上右键选择Properties,选择Java Bulid Path,在选择Source标签,在下面的Browse中选择Classes目录,将其指定为目标目录。然后选择Libraries,点击Add External JARs,将RED5安装目录下的red5.jar包含进来。
  7.这个时候,在Eclipse的左边应该多了WEB-INF/src这样一个东东,我们将要在这里开始写入我们的第一个项目代码。右键选择它,在弹出的菜单中选择New->Package,新建一个包,举例,包名可以为org.d5.first,然后再在生成的org.d5.first这个包上继续右键选择New->File,输入文件名Application.java。并在建好的文件中输入以下代码:

1package org.d5.first;
2import org.red5.server.adapter.ApplicationAdapter;
3public class Application extends ApplicationAdapter {
4  public String Login(String str)
5  System.out.println("user connected. param= " + str ); 
6  return "Welcome to Chat Servers";
7 }

8}

9


  8.进行配置。

  注意:在WEB-INF下一共有四个文件,分别是web.xml,red5-web.xml,red5-web.properties和log4j.properties。我们需要对他们进行修改,关于这四个文件的详细功能,见《关于RED5——应用程序配置文件详解》

a、把web.xml文件作以下更改:找到webAppRootKey,将其下面的param-value标签中的值修改为/myChat。
b、把red5-web.xml文件做以下更改:找到bean id=”web.handler”一句,将class=”XXX”中的XXX位置修改为org.d5.first.Application,这样本程序将以刚才写的Application来运行。
c、后面的<bean id="myhandler.service" 可删除整句,也可改写为<bean id="MyService.service" class="org.d5.first.MyService" /> 然后在Eclipse项目里面创建一个org.d5.first.MyService类写个Fun()方法,再AS里面用nc.call("MyService.Fun",null)来调用Fun方法
d、把red5-web.properties文件做以下更改:将第一句修改为webapp.contextPath=/myChat
e、把red5-web.properties文件第二句修改为webapp.virtualHosts=*, localhost, 127.0.0.1 不然无法用局域网的IP连接

  9.编译项目
  10.重新启动RED5服务器
  11.打开FLASH(若没有请安装,最好安装flash9),新建一个文件,在第一桢输入以下代码来实现AS3.0与Red5参数传递 。

 1NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;
 2var nc:NetConnection = new NetConnection();
 3nc.addEventListener(NetStatusEvent.NET_STATUS,StatusHander);
 4nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR,ErroHander);
 5nc.connect("rtmp://192.168.10.10/myServer");
 6trace("connect..");
 7
 8
 9var obj:Object = new Object();
10function StatusHander(event:NetStatusEvent):void
11{
12 var info:Object = event.info;
13 
14 trace("StatusHander");
15 switch(info.code)
16 {
17  case "NetConnection.Connect.Success":
18   trace("Sucess");
19   nc.client = this;   
20   //nc.call("handler.method", null, "Hello world!");
21   nc.call("Login",new Responder(Result),"msg=NC.call");
22   break;
23  case "NetConnection.Connect.Failed":
24   trace("Failed");
25   break;
26  default:
27   trace(info.code);
28   break;
29 }

30}

31var a:int=0;
32function Result(obj:Object):void 
33        
34                trace(obj); 
35                trace("i got it.."); 
36        }
 
37function ErroHander(event:AsyncErrorEvent):void
38{
39 trace("Erro:");
40}

41
42


输出的结果如下:
connect..
StatusHander
Sucess
Welcome to Chat Servers
i got it.....


posted on 2008-04-01 19:09 ZhangEF 阅读(723) 评论(0)  编辑  收藏 所属分类: rtmp