扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
要连接到FCS的一个实例,需要在客户端脚本使用Net NetConnection和NetConnection.connect命令发送请求到服务器。
小技巧:还可以使用组件连接到服务器。
启动服务
如果服务器没有启动,必须手动启动它,在Windows开始菜单选择程序>Macromedia Flash Communication Server MX>Start Service。在Windows.
如果希望查看服务是否运行,打开任务管理器,确定flashCom.exe和FlashComAdmin.exe是否在进程列表中。
在unix中,打开shell窗口,更改目录到FCS的安装目录,作为一个root user,输入fcsmgr server start。
打开一个到服务器的连接
在flash中打开一个新文件,增加增加客户端脚本命令连接到服务器。
1、 在flash电影中,开启一个连接:
my_nc=new NetConnection();
2、 下面这个命令连接到服务器。
My_nc.connect(targetURI);
上面是NetConnection.connect的基本用法。targetURI是一个位于FCS上的应用程序的URI,格式如下:
rtmp://localhost[:port]/apName[/instanceName]
localhost标识这个服务器运行在本地计算机上。
rtmp://host[:port]/appName[/instanceName]
注意,必须指定rtmp协议,如果没有指定,flashPlayer会使用http协议连接到服务器,导致连接失败。
下面的代码展示了如何连接到应用服务器。
My_nc:NetConnection=new NetConnection();
My_nc.connect(“rtmp://myServer.myDomain.com/appName/appInstance”);
my_nc = new NetConnection();
my_nc.connect("rtmp://myServer.myDomain.com/appName/appInstance");
FCS应用程序常常需要去发布(广播)和回放一个流(文件)。安装FCS后包含一个FLA示例:/doc_connect/doc_connect.fla,样式了怎样在两个客户之间传送视频流。查看这个示例,可以知道怎样连接到fcs,以及怎样开发基于流的应用程序。
Doc_connect文件显示了怎样初始化电影,连接到服务器,发布并且播放流。他也说明了怎样保存你的示例文件。
在../help_collateral/doc_connect目录中可以打开doc_connect.fla文件。
查看效果:
1、 在服务器上创建一个名为doc_connect的应用程序。
2、 在../help_collateral/doc_connect目录中打开doc_connect.swf文件。
然后就可以看到两个视/音频播放窗口,一个是从camera中获得的实况流媒体,一个则是服务器发布的回放的流媒体。
这个例子使用了FlashMX的fcsComponent,如果FlashMX中没有安装这些组件,可以采用这样的办法:
1、在Flash中选择文件>新建,创建一个新文件.
2、在库面板中创建一个视频对象(点击库面板的选项菜单,选择New Video)。
3、 拖动该对象到舞台,创建两个该对象的实例,分别命名为live_video和Published_video,将Published_video的大小改为200*150;
4、在fcs上创建名为doc_connect的目录,建立doc_connect的fcs应用程序。保存FLA文件doc_connect.fla在该目录中。
5、选择时间轴的第一帧,打开动作面板(窗口>动作)。
注意:确定动作在第一帧加载,而不是加载在舞台上的某个对象上。
6、获得默认的camera(摄像头),并将它加载到live_video这个video对象上。
Client_cam=Camera.get();
Live_video.attachVideo(client_cam);
创建一个连接到FCS的函数,使用trace显示是否连接成功,并且打开doc_connect应用程序中一个名为room_1的实例。记住,你必须指定real-time messaging protocol(实时信息协议,rtmp).
function doConnect() {
client_nc = new netConnection();
client_nc.onStatus = function(info) {
trace("Level: " + info.level + " Code: " + info.code);
}
client_nc.connect("rtmp://localhost/doc_connect/room_01");
}
注意,如果你的swf和fcs运行在同一台计算机上,可以使用rtmp://localhost/doc_connect/test的缩写rtmp:/doc_connect/test建立连接。这样,你就可以移动这个文件到不同的服务器上而不需要改变你的代码。但是如果你的FlashMX和FCS不再同一台机器上,就必须指明服务器URL.
为video创建名为out_ns的网络流,加载camera到这个流,并且发布这个流为myTestStream,这些步骤都在函数publishMe中完成
function publishMe() {
out_ns = new netStream(_root.client_nc);
out_ns.attachVideo(client_cam);
out_ns.publish("myTestStream");
}
注意:out_ns.publish(“myTestStream”)省略了一个参数:howToPublish。如果不为该参数赋值,服务器将自动发布该stream为live(“实况转播”,而不讲这个stream记录在服务器上后在发布)
在函数playMe中创建一个流in_ns,连接到client_nc这个Netconnect,让Published_video对象加载stream,播放流in_ns。
function playMe() {
in_ns = new netStream(_root.client_nc);
Published_video.attachVideo(in_ns);
in_ns.play("myTestStream");
}
6 撰写下列命令调用刚才创建的函数。
// 连接到服务器
doConnect();
// 发布live stream
publishMe();
//回放服务器发布的stream
playMe();
7 Save the file.
保存该文件。
测试这个例子
1 Choose File > Publish Settings, select Flash and HTML, click Publish, and then click OK.
1、选择文件>发布设置,选择flash和html,点击发布,然后点击OK
2 Choose Control > Test movie.
选择控制>测试电影
你将看到两个视频窗口显示在舞台上,而且显示同样的影像。呵呵。
3 、要想在浏览器中查看,选择文件>发布预览>默认,或者按ctrl+f12键
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=777810
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者