环境:
系统:centos 6.1
flex:Adobe Flash Builder 4.6
red5 : red5-0.9.1 tar.gz (地址:http://trac.red5.org/downloads/0_9/red5-0.9.1.tar.gz)
eclipse: eclipse-jee-juno-linux-gtk (1).tar.gz(http://download.actuatechina.com/eclipse/technology/epp/downloads/release/juno/R/eclipse-jee-juno-linux-gtk.tar.gzr.g)z)
第一步:JAVA(服务端)
1、将red5.jar下载回本机,将/webapps/SOSample也下载到本机,进行本机操作。并将的SOSample目录改名为HelloWorld。HelloWorld目录下包含有两个目录,分别为WEB-INF和META-INF。进入WEB-INF目录,如下图所示:
2个目录和3个文件
2、修改red5-web.properties
原第一行:webapp.contextPath=/SOSample
修改为:webapp.contextPath=/HelloWorld
3、修改red5-web.xml
原第23行: class="org.red5.server.adapter.ApplicationAdapter"
修改为: class="org.d5.sayHello.Application"
4、修改web.xml
原第8行: <display-name>SOSample</display-name>
修改为:<display-name>HelloWorld</display-name>
原第12行: <param-value>/SOSample</param-value>
修改为: <param-value>/HelloWorld</param-value>
前期准备工作结束,现进入JAVA代码部份。
5、打开Flash Builder,(Flash Builder IDE是用Eclipse定制的,实际上也本身就是Eclipse),在第二排图形工具栏的最右边,选中Java开发模式。
点击“Java 项目”后,出现“新建Java项目”窗口
7、接下来,“包资源管理器”里已出现了刚刚新建的项目
点“+”展开所有文件夹,删除根目录下的“src”文件夹,在WEB-INF目录下新建一个“src”文件夹
右击项目名“HelloWorld” ->属性
点击“属性”后的效果
点击“Java构建路径”->源代码
打勾选中“允许将输出文件夹用作源文件夹”,点击“浏览”,在弹出的框中选择Class文件夹作为存储class文件,然后点“确定”。
点击“确定”后的效果。
点击“库”->“添加外部JAR”->出现一个“选择JAR”的框,选中事先准备好的red5.jar,点击“打开”
添加外部JAR后的效果,点“确定”后完成。至此,环境设定完毕。
8、进行编码环节,右击“WEB-INF/src”->新建->包
右击“org.d5.sayHello”->新建->文件
点击“完成”后,会有一个生成文件的过程,这是生成文件后的效果
Application.java文件内容如下:
package org.d5.sayHello;
import org.red5.server.adapter.ApplicationAdapter;
public class Application extends ApplicationAdapter {
public String Helloworld() {
return "Helloworld";
}
}
编辑完后,保存。
9、导出Jar文件。右击项目“HelloWorld”->导出
弹出导出对话框,选中“JAR文件”->下一步
点击“下一步”后,出现“JAR导出”框,根据图示,勾上“WEB-INF/src”文件夹,其他的文件夹取消勾,勾上两个功能“导出生成的类文件和资源”,“导出Java源文件和资源”。勾上一个选项“压缩JAR文件的内容”,选择导出的目标: JAR文件,位于“WEB-INF\lib”文件夹,文件名为HelloWorld.jar,这里,我填入的是:HelloWorld\WEB-INF\lib\HelloWorld.jar,最后点击“完成”。
第二步:Flash Builder(客户端)
FB的操作就不在此多说了,打开FB,建一个FLEX项目,MXML内容如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
private var nc:NetConnection;
private var ns:NetStream;
public function openConn():void {
nc=new NetConnection();
nc.objectEncoding=ObjectEncoding.AMF3;
nc.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
nc.connect("rtmp://192.168.1.66/HelloWorld",true); //默认端口1935,说明192.168.1.66是我的流媒体服务器IP,这个要改成你自己的地址。
}
public function startRecord():void {
openConn();
}
public function netStatus(event:NetStatusEvent):void {
if (event.info.code == "NetConnection.Connect.Success") {
showtx.text = "连接成功"+event.info.code;
var response:Responder=new Responder(result,status);
nc.call("Helloworld",response); //Helloworl是JAVA里的一个函数
} else {
showtx.text += "连接失败:"+event.info.code;
}
}
private function result(returnObj:Object):void {
showtx.text += returnObj;
}
private function status(error:Object):void {
showtx.text += error;
}
]]>
</fx:Script>
<mx:Text id="showtx" x="118" y="113" text="准备就续"/>
<mx:Button x="109" y="246" label="开始测试" click="startRecord()"/>
</s:Application>
参考:http://www.jhtsw.cn/home.php?mod=space&uid=35560&do=blog&id=19666