[FMS]FMS流媒体服务器配置与使用相关的介绍(3)
以后我们写程序最常用的就是这个View Applications ,每当有客户端连接服务器时,左边就会列出连接的是哪个app,有多少连接 下图为连接applications文件夹下的bs文件夹(bs文件夹,因为每个文件夹对应一个app,就是bs app),连接数为1,458是实例名(实例名默认为 _definst_ ,每个文件夹可以有若干实例,互相不影响,这个特性可以用来做聊天是的房间,以后再说)
选中某个app后,或者客户端有连接,会看到当前打开的app的状态,这个
Live Log 服务器端的trace就这里看了 ,右边依次是客户端情况 , 共享对象,流,执行的情况(占内存,cpu等),后边两个小按钮,调试时候常用哦,reload和unload!
每当服务器端main.asc修改后一定记得reload或者unload一下,否则不会生效,unload会把窗口关闭,有客户端连的时候还会自动打开
总有人告诉我,他的fms经常会出现诡异现象,比如连接不上,代码已经删了还会执行,一生气连文件夹都删了,还会执行,怀疑是自己的rp有问题。。
那不是rp问题,记住出现问题就reload !实在不行就去tools文件夹点StopServerService.bat
conf文件夹
还有重要的是conf文件夹了,里边是一些服务器端的配置文件,以后可能会用,先不用动。。。。
自此,安装部分结束,go on...
有一种协议叫rtmp
客户端和服务器端通信是使用协议rtmp的
现在在服务器端applications文件夹(当然偶的客户端和服务器端是一台机器了)里建个test1文件夹,你的地址就为
rtmp:/test1 或者 rtmp://localhost/test1
注意两个地址中的 "/ "符号
打开flash
与服务器通信首先要建个NetConnection()
nc = new NetConnection();
连接
nc.connect("rtmp://localhost/test1");
怎么知道连没连上呢?顺利连接服务器后会触发一个onStatus事件,自己trace一下info.code
nc.onStatus = function(info) {
//trace(info)
//trace(info.code)
for (i in info) {
trace(i+": "+info[i]);
}
};
完整代码:
nc = new NetConnection();
nc.onStatus = function(info) {
trace(info.code);
if (info.code == "NetConnection.Connect.Success") {
trace("接通");
}
};
nc.connect("rtmp://localhost/test1");
注意:默认情况下服务器是允许你连接的,但只是默认,如果服务器拒绝你连接的话,上述代码就不好用了。怎么回事?我们看看连接的过程吧
连接过程
每当客户端试图连接服务器,一个NetConnection.connect(),服务器将会调用application.onConnect 来鉴定是不是允许客户端连接,onConnect()方法返回null 或不返回则将进入未决状态,直到onConnect方法中返回true或执行acceptConnection(client)则允许,返回false或执行rejectConnection(client)则拒绝,如图(从左往右看)。
调用FMS流媒体的免费播放器介绍
目前我这边测试好用一点的,支持rtmp协议(含rtmp点播和rtmp直播)的播放器,有flowplayer和酷播V4.0;
酷播V4.0的话,是国内产品,比较适合国内用户的使用习惯;flowplayer是国外的一款产品;
主要介绍一下酷播V4.0调用rtmp的方法:
对应他们官方的地址是:http://www.cuplayer.com/cuplayer/help/Help411.html
例(4.11)-1:rtmp协议下的播放器调用代码示例
<script type="text/javascript" src="/player/js/swfobject.js"></script>
<div class="video" id="CuPlayer"> <b> <img src="/player/images/loading.gif" /> 网页视频播放器加载中,请稍后...</b> </div>
<script type="text/javascript">
var so = new SWFObject("/player/player.swf","ply","980","460","9","#000000");
so.addParam("allowfullscreen","true");
so.addParam("allowscriptaccess","always");
so.addParam("wmode","opaque");
so.addParam("quality","high");
so.addParam("salign","lt");
<!-- HTML代码参数/Begin -->
so.addVariable("JcScpServer","rtmp://www.yourServer.com/vod"); //rtmp流媒体服务器地址
so.addVariable("JcScpVideoPath","mp4:test.mp4"); //文件地址
so.addVariable("JcScpImg","/player/images/startpic.jpg"); //视频缩略图
so.addVariable("JcScpFile","/player/CuSunV4set.xml"); //配置文件
<!-- HTML代码参数/End -->
so.write("CuPlayer");
</script>
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例