如果你的第一个Flash Media Server 的 HelloWorld程序失败了……

我的第一篇日志讲的就是我在helloworld上遇到的问题,当时倒腾了好久也没好,后来看到这篇文章,就把所有画蛇添足的东西都删掉了,结果真的就成功搞定了第一次实验。

但我觉得事情不会这么简单,所以还是决定留下第一篇日志以供日后查看,同时转一下这篇文章作为参考:

环境FMS3.5
如果你的第一个Flash Media Server的HelloWorld的例子就失败了……
而且还是跟着http://help.adobe.com/en_US/FlashMediaServer/3.5_Deving/flashmediaserver_3.5_dev_guide.pdf
这样官方的指导教材后面的情况下失败。检查过程序代码几十遍后还是失败了……那我想你估计以后再也不会愿意用FMS来跟世界打招呼了!
跟着官方的示例来做会出现类似如下错误:
Error #2044: 未处理的 AsyncErrorEvent:。 text=Error #2095: flash.net.NetConnection 无法调用回调 onBWDone。 error=ReferenceError: Error #1069: 在 flash.net.NetConnection 上找不到属性 onBWDone,且没有默认值。
at HelloWorld/connectHandler()[C:\Users\Administrator\Desktop\dtjoy\proj\HelloWorld.as:51]
Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetConnection.Call.Failed
at HelloWorld/connectHandler()[C:\Users\Administrator\Desktop\dtjoy\proj\HelloWorld.as:51]
然后你百度了一下错误,加了些乱七八糟的代码后变成了如下错误:
Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetConnection.Call
错误虽然有所变化,但是问题一样没有解决。
那么正确的做法应该是怎么样的呢?首先官方的代码是没有任何问题的,这点不用怀疑了。
但是代码中的一行要非常注意,那就是“nc.connect("rtmp://localhost/HelloWorld");
如果你的开发环境和FMS服务器不在一台机上那么这里面的“localhost”要换成对应的域名,比如我的完整地址是:rtmpt://yuyin.dtjoy.com:1935/HelloWorld 同样“HelloWorld”是要你在“\Adobe\Flash Media Server 3.5\applications”下自己建立的一个文件夹。这里同样要注意的是,千万不要听信网上其他人话,自作聪明地把liv或者vod下的4个文件拷贝到文件夹里面去,如果你做了,那么毫无疑问会报错。
另外要注意的是:HelloWorld以及里面的任何变动都必须重启FMS服务器后才生效。
最后一句话:这个程序跑不成功的就是HelloWorld的application没有配置正确,虽然这个配置就是建个文件夹放个HelloWorld.asc文件,即使这么简单的操作仍有人画蛇添足地搞出好多莫名其妙的问题来,其次就是connect时候的rtmp地址写错了。
如果官方代码没有的可以点这里下载

你可能感兴趣的:(FMS)