Flash、Flex、RIA、web、Linux和我的生活
FMS
使用Flex、Flash Media Server和Flash Media Encoding Server创建视频共享程序
Aug 17th
Adobe devnet的文章,详细介绍了如何利用Flex从客户端上传视频,用Flash Media Encoding Server在服务器端转换视频,然后利用FMS流发布视频的流程。浅显易懂,值得一看。

Creating a video sharing web application using Flex, Flash Media Server, and Flash Media Encoding Server
Flash Media Encoding Server好是好,就是太贵了,6K美刀啊
(看完文章我才发现,早知不看这鸟文)……还是ffmpeg比较靠谱
FMS中变量的作用域-之二
Aug 27th
在FMS中变量的作用域一文中,我曾经研究过这个问题,得到的结论是:
保存在Client中的变量对于每个客户机都是不同的,application中的变量则可以在instance中共享,instance之间不能共享变量。(使用一些变通的方法是可以的)
这里要讨论的,是FMS中到底有哪几种变量作用域(注:这里不讨论函数内部的变量),对于FMS代码中的自定义类,变量的作用域又是什么呢?在FMS的自定义类中,如何调用其他作用域的变量?
更多 >
NOD32造成FMS出现“…參數錯誤。 87”错误
Nov 19th
配置好的一台FMS,转移到了另一台主机上,只是目录发生了变化。我更新了配置文件中的路径,但仍然不能使用。在core Log中找到这样的错误提示:
Asynchronous I/O operation failed (Failed to attach to completion port: 參數錯誤。 87)
查了配置都没有什么错,于是就在google上搜了一下,找到这条信息。和文中提到的一样,碰巧新的主机上也安装了NOD32杀毒软件。于是卸载之,重启服务器,测试成功。
在Eclipse或Flex Builder中开发FMS程序
Aug 7th
在编写FMS程序的时候,相信很多朋友后和我一样郁闷。没有一款好的编辑器来支持,不便于查错,没有语法自动完成,对于多个文件管理不方便…
我一直是使用SE|PY ActionScript Editor写FMS程序的,虽然它比用Flash IDE来写ASC文件要方便许多,但是还是有很多细节没有考虑到。不过,现在我不必再郁闷下去了。
fczone.com为我们带来了这样一个优秀的插件,让我们能够在Eclipse或者Flex Builder中开发FMS程序。
首先看看它的功能特点把(图片来自于fczone.com):
大纲视图
代码自动完成
输出控制台(可监视trace的内容)
NetStream information objects
Jun 1st
在NetStream信息对象提供的大量信息中,我常用到的有这么几个:
| 信息 | 类型 | 范围 | 说明 |
| NetStream.Play.PublishNotify | 发布流 | 所有订阅者 | 当发布者的流开始发布的时候,所有的订阅者都会收到这个消息。但发布者不会收到这个消息。 |
| NetStream.Play.UnpublishNotify | 发布流 | 所有订阅者 | 当发布者的流停止发布的时候,所有的订阅者都会收到这个消息。但发布者不会收到这个消息。 |
| NetStream.Publish.BadName | 发布流 | 发布者 | 当发布者试图发布一个已经存在的流时会收到这个消息。只有发布者可以收到这个消息。 |
| NetStream.Publish.Start | 发布流 | 发布者 | 当发布者开始发布流的时候收到这个消息。只有发布者可以收到这个消息。 |
| NetStream.Unpublish.Success | 发布流 | 发布者 | 当发布者结束发布流的时候收到这个消息。只有发布者可以收到这个消息。 |
| NetStream.Play.Reset | 播放流 | 播放者 | 当播放者开始播放流之前会收到这个消息。只有播放者可以收到这个消息 。 |
| NetStream.Play.Start | 播放流 | 播放者 | 当播放者开始播放流的时候会收到这个消息。只有播放者可以收到这个消息 。 |
| NetStream.Play.Stop | 播放流 | 播放者 | 当播放者停止播放流的时候会收到这个消息。只有播放者可以收到这个消息 。 |
假设我们有2个流,一个叫做PU,用于发布,一个叫做PL,用于播放PU发布的流。那么当PU开始发布的时候(如果发布成功),消息的发布情况是这样的:
PU会收到 NetStream.Publish.Start消息,PL会收到 NetStream.Play.PublishNotify消息。
当PU停止发布的时候,情况是这样的:
PU会收到 NetStream.Unpublish.Success,PL会收到 NetStream.Play.UnpublishNotify。
当PL开始播放的时候,情况是这样的:
PL会收到 NetStream.Play.Reset、 NetStream.Play.Start,PU不会收到任何消息。
当PL停止播放的时候,情况是这样的:
PL会收到 NetStream.Play.Stop消息,PU不会收到任何消息。
由此可见,发布者的发布和停止发布操作,所有的订阅者都可以收到,而订阅者对流的播放操作则并不会通知流的发布者。因此,对于流的控制上,还是要盯紧发布者。
在Flex2中使用NetConnection的一些注意事项
Mar 26th
在使用ActionScript3的NetConnection类连接Flash Media Server或者Remoting的时候,需要注意以下几点:
1.注意设定AMF版本
ActionScript3默认使用的是AMF3,而ActionScript2和ActionScript1使用的是AMF0,如果不指定NetConnection的AMF版本,就会出现连接失败。指定的方法如下:
NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0; |
上面的代码会修改所有的NetConnection实例的默认AMF版本。
如果只需要修改一个NetConnection实例的AMF版本,代码如下:
public var NC:flash.net.NetConnection; NC = new NetConnection(); NC.objectEncoding = flash.net.ObjectEncoding.AMF0; |
2.获取onStatus状态值
在ActionScript2中的方法已经不能使用,要获取NetConnection实例的连接状态,必须使用NetStatusEvent事件类,代码如下: 更多 >
trace2 in FMS
Aug 10th
基于fczone改写的framework.asc(详见让FMS中的trace支持Object),我稍作修改,加入了对Array和Object的判断,做成了这个trace2()函数,使用前只需先load(“trace2.acs”)即可,不需要载入framework.asc了:
8月13日更新:解决了不处理Object的问题
让FMS中的trace支持Object
Aug 6th
FMS中变量的作用域
Aug 2nd
我一直认为,在FMS中,没有定义在Client对象中的变量都是全局的(不包括函数中定义的局部变量)。但是我发现我的理解大错特错了。
为了测试”全局”变量的作用域,我写了下面这段代码(服务器端):





Use OpenOffice.org
最新评论