FMS3技术文档之一.docx
《FMS3技术文档之一.docx》由会员分享,可在线阅读,更多相关《FMS3技术文档之一.docx(11页珍藏版)》请在冰豆网上搜索。
FMS3技术文档之一
序言
如果你对使用FMS3和Adobe的实时消息协议来录制和播放流媒体感兴趣的话,这本书是一个很好的初级入门。
它虽然不是一个参考书,但是它系统的带领你使用AS3.0来开发FMS3应用程序,章节侧重于服务器介绍和它们的工作原理。
FMS3和其它正规的服务非常不同。
因为它是一个open-socket的服务器技术,直到用户退出程序它才断开连接,你可以实时的播放声音、视频、文字、和其它媒体。
FMS3也和前面版本非常不同,熟悉fms2或者fcs1.5的开发者很快就会察觉到。
不用担心。
在学习fms3和有一点flashcs3和as3.0的经验,任何人都可以快速进入。
你将学习怎么样安装FMS3,用Apacheweb服务器一起组织你的开发环境,在进入为什么和怎么样前,使用控制管理器:
∙用H.26和VP6格式录制和播放流媒体
∙使用新的FlashMeidaEncoder来录制视频
∙设置摄像头和麦克风
∙非持久的客户端远程共享对像
∙双向音频-视频通讯
∙广播和服务端的带宽控制
∙与服务端的工作:
file类
∙服务端共享对像
∙服务端流
∙成立一个软件加载处理器,使用fms3的新服务器端Netstream
∙实现在数据和与配置文件工作
在每章内部都是一组核心的代码,显示不同程序的最小需求。
除此之外,学习FMS3提供给你许多可使用的不同版本的FMS3:
所有功能型的服务器、只有流的服务器、和有限制用户的开发型服务器。
它是一个全新的世界媒体,这本书做为你的入门之阶。
准备进入了吗?
章1.开始FlashMediaServer3
1.1.FMS3的新口味
FMS3有三种不同的服务器:
∙第一个FlashMediaInteractiveServer3(FMIS3)有交互流的全部功能,有fms2版本全部的功能,FMIS3还有一些特色:
对并发连接或者带宽使用没有限制。
∙第二个FMS3的版本是FlashMediaStreamingServer3(FMSS3)。
这个服务器限于流媒体。
想像它似渐进式下载,除FMSS3使用服务端流。
如果你的主要目标是从一个站点播放流媒体,这个选项提供更少的成本。
∙第三个版本是FlashMediaDevelopmentServer3(FMDS3),功能和FMIS3一样,这个版本限制10个并发用户和不能用在成品的环境中,主要是用来给开发者使用的。
为了避免混淆,本书简单地用FMS3来引用所有的三个版本。
你需要紧记,FMSS3服务器不能用来录制视频或者交互式的聊天,还有其它限制。
无论如何,使用开发者版本的服务器,你可以建立和测试本书中的所有例子,可以录制你自已怕FLV视频文件和在其它的服务器上播放它们。
1.2.什么是MediaServer?
如果你使用过FlashCommunicationServer或者FlashMediaServer2和明白它的使用,你可以跳过本小节。
FlashMediaServer3是FlashMediaServer的最新版本和有些改进。
如果你刚开始使用opensocket技术,请继续。
FMS3是一个opensocket服务器,与web服务器不同的是一旦你从web服务器接收到信息后连接就断了。
如果你打开一个web页面,web服务器发送给你的页面是连同所有关联的图片,文字,和其它媒体。
你的电脑发送一个信息返回说:
”gotit!
”,连接关闭了。
一个opensocket服务器,连接始终保持连接,直到你退出程序或者引发一个事件切断连接。
因为连接保持打开,你可以实时地播放在网络上可用的流媒体、视频、文字和任何其它媒体。
你不能用一个正规的web服务器来做到这点,因为它是一个完全不同的结构体系。
1.2.1.EnterRTMP
当你使用一个正规的web页面,你很可能使用着HTTP协议。
为了能与流媒体一起工作,Adode开发了实时消息协议(RTMP)。
通常,当你使用FMS3,第一个连接到web服务器是通过HTTP,然后到FlashMediaServer使用RTMP。
因为这些安排,你同时与两种不同的协议一起工作:
一是web站点,二是流媒体。
1.2.2.专业语言和文档
为了能处理FMS3能做的所有事情,你有两个额外语言API,两个API是:
ActionScript-客户端媒体ActionScript和服务端媒体ActionScript,在本书中简单地叫CS和SS。
这些文档都有包含在安装包中,
1.3.安装FMS3(请参考原文,略过…)
注意:
你不能在MacOS或者AppleOS服务器上安装FMS3
1.4.组织你的开发环境
如果你是按照默认安装,你的FMS3会在你的电脑启动时自动启动的。
在这个环境里面,你需要设置你的工作环境,好让你更方便的测试你的应用程序
1.4.1.Server-SideFiles服务端文件
当你在Windows上安装FMS3,默认的安装会设置你的服务端文件在下面的路径中:
C:
\ProgramFiles\Adobe\FlashMediaServer3\applications
所有的服务端应用程序所在的文件夹是叫applications。
图1-10显示了一个在applications文件夹中的三个应用程序(ideafactory、flvedit、textChat)的路径视图。
应用程序的目录名必须为应用程序的名称。
如果你的应用程序名为“vidChat”,你必须建一个叫“vidChat”的目录。
目录可以是空的或者包含其它文件。
如果你为你的应用程序写服务端代码,文件名必须为main.asc或者和你的应用程序名称相同,像vidChat.asc。
在本书中,我使用与应用程序和名称来命名ASC文件,以减少当讨论更多的服务端代码时产生的混淆。
图1-10服务端程序路径
在图1-10中,ideafactory和flvedit应用程序目录下有与目录名相同名称的ASC文件,textChat应用程序的ASC文件名是main.asc,它也可以命名为textChat.asc。
同样地,其它的ASC文件也可以命名为main.asc。
1.4.2.客户端文件
你的客户端文件是一些Flash相关的文件如:
FLA、AS、SWF文件。
如果你的服务器安装在你的电脑上,这些文件可以放在任何地方。
当你测试影片的时候,你的服务器可以找到它们,可以正确的工作,如果你想在局域网内测试你的应用程序,你需要把所有的swf和html文件放置在你的web服务器上,你也可以把源文件:
fla和as文件和它们放在一起,这样方便测试。
图1-11展示了典型的一个在WindowsXP上使用ApacheWeb服务器的结构:
图1-11供远程访问的客户端文件
根据你web服务器的主目录,你的设置可以多样地。
例如,如果你使用一个IIS服务器,它的路径可能是这样:
C:
\Inetpub\wwwroot\FMS3apps
注意:
如果你与两个不同的“目录”工作:
服务端一个目录,客户端一个目录。
为它们做一个捷径,它可以节省你很多时间,让开发更顺利。
你可以在你的WindowsPC上不使用web服务器而,很完美的开发应用程序。
如果你在单机上开发和测试觉得很舒适地话,你可以把你的客户端放在任何地方,桌面是一个不错的地方。
1.4.3.在Macintosh上设置(略。
。
。
)
1.5.测试FMS3连接
连接到FlashMediaServer3的协议是RTMP-Real-TimeMessagingProtocol。
最新的RTMP是RTMPE(E代表加密)。
以下例子同时展示了这两种。
旧的RTMP是比较快点,但是RTMPE有加密而比旧的更安全。
设置一个网络连接,然后把RTMP路径放置在你的NetConnection实例中。
基本如下:
nc=newNetConnection();
nc.connect(”rtmp:
/appName”);
如果你的服务器在你的电脑上,你可以只使用一个”/”,如果你的服务器在局域网或者远程,你必须使用两个”//”
同一台电脑
nc.connect(”rtmp:
/FMSapp”)
不同一台电脑
nc.connect(”rtmp:
//www.myD
因为我在局域网中开发,所以我用了后者。
我喜欢把RTMP字符串放在一个变量中。
然后当我想要改变RTMP地址时,我只需要注释掉旧的字符串,当我需要它时,我只需要所注释去掉就可以了。
在本书中的例子都是使用单斜杠,LAN版本注释掉了。
同样,如果你使用一个LAN,确保你的RTMP使用了FMS3服务器的IP地址,而不是使用你本机客户端的IP地址。
当你的目录设置完,你需要测试一下是否能连得上FMS3。
通常,你需要一个简单的FMS3应用程序来测试一下。
如果你没有安装Flash,可以从A网站下载后安装。
在接下来的例子你需要用到FlashIDE。
下面步骤展示了怎么样建立一个简单的测试FMS3应用程序:
1.新建立一个flash文件,保存为FMS3Connect.fla
2.添加一个logo到舞台的左上角(可选)
3.打开属性检视窗口,在文档类中输入:
FMS3Connect保存文件
4.建立一个AS文件,保存为FMS3Connect.as。
5.添加Example1-1中的代码,保存文件
Example1-1.FMS3Connect.as
package
{
import.NetConnection;
importflash.display.Sprite;
importflash.text.TextField;
importflash.events.NetStatusEvent;
publicclassFMS3ConnectextendsSprite
{
privatevarnc:
NetConnection;
privatevarrtmpNow:
String;
privatevarmsg:
String;
privatevarconnectText:
TextField;
privatevarposX:
Number;
functionFMS3Connect()
{
nc=newNetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,checkConnect);
rtmpNow="rtmpe:
//192.168.0.11/connect";
//rtmpNow="rtmpe:
/connect";
nc.connect(rtmpNow);
}
privatefunctioncheckConnect(event:
NetStatusEvent):
void
{
connectText=newTextField();
msg=event.info.code;
connectText.width=250;
connectText.text=msg;
addChild(connectText);
posX=connectText.stage.stageWidth;
connectText.x=(posX/2)-((msg.length/2)*(6));
connectText.y=175;
}
}
}
6.在服务端,添加一个叫connect的目录。
位置:
C:
\ProgramFiles\Adobe\FlashMediaServer3\applications\connect
记住,所有的服务端文件必须放置在FMS3服务器所在的电脑上,即使你使用LAN。
目录名称就是应用程序的名称。
可能有点不习惯,但是最后会变得极容易。
图1-13展示了你的应用程序应该显示的内容,一开始你可能要多等几秒,尤其是如果你使用LAN的话。
稍后你将会学习这个消息”NetConnection.Connect.Success”是什么。
它的意思是你的应用程序已成功的连接上了FlashMediaServer3。
图1-13.指示成功连接上服务器的消息
1.6.使用FMS3的AdministrationConsole(管理员控制台)
为了看看在你的服务器上是怎么回事,你需要使用到FMS3管理控制台。
它展示了在你服务器后台是怎么一回事。
打开如下图所示
如果你头一次打开管理控制台,会要法度你输入管理员用户名和密码。
管理员的用户名和密码和你在安装的时候所输入的是一样的。
如果你的服务器在一个安全的地方,你可以勾选记住信息,下次你再登录的时候,就不用输入了,它会自动进入。
为了开发方便你可以勾选上。
运行前面刚制作的FMS3Connect应用程序。
在管理员控制台,选择ViewApplications-Clients选项。
当应用程序运行成功,你可以看到当前使用应用程序的客户端数量。
另外有关客户端的信息请看图1-14:
图1-14.FlashMediaAdministrationConsole
当你比较熟悉了FMS3后,你会发现管理员控制台非常地有用。
在随后的章节中,你将会看到它可以提供有价值的反馈信息,关于你的服务正在做的事件。
1.7.使用这本书
学习FlashMediaServer3由你选择,但是每章的核心是一组核心的代码,为不同的程序展示最少的要求。
后面有一些会比较复杂,和优化FMS3。
章节中会包含一些不同操作的抽象代码。
此代码是作为一个程序的唯一目的:
澄清必须放在某个地方,某件事情才会出现发生。
它不会很精密,但是它会工作和帮助你了解怎么样实现不同的目的。
在更多高级的章节中,同样的操作可能会被呈现为一个类或者一个组件。
有时在同一章中,您会看到一个多样化的解决方案,为相同的任务,从一个简单的程序到一个面对对像的类的设计模式。
后面的略过…主要是简单的介绍了一下AS,更详细的参考和学习资料当然是安装包随附的文档
默认路径在:
C:
\ProgramFiles\Adobe\FlashMediaServer3\documentation