flex4+fms3.5+flash cs4开发实时音视频直播及点播详解
最近公司要做个拍卖行的项目,我被分配了“实时音视频直播及点播”的部分。我一直从事JAVA重来没研究过adobe的东西,虽然sun(现在是ORACLE了)也有JMF,但是这个东西早就暂停更新了,感觉已经与时代脱节。最后经过我们开发人员都有的刻苦专研,埋地苦干的精神终于在一个礼拜搞定了。
闲话少说,我们切入正题
开发工具及环境:
1)flash builder4
2)flash cs4
3)flash media server3.5
fms部分
fms是adobe的流媒体服务器,不过是收费的,价格大概是oracle的一半,不过还是觉得挺贵的。adobe提供控制连接数的开发人员版,除了这点具体和完全版一样。服务器的配置网上很多,大家一搜就一大把。
其中关键的是:
由于需求是不仅要提供直播,而且还能点播历史音视频。而as的NetStream的publish方法提供的录制功能是将录制的视频放在直播的同一个文件夹下,所以要需要改一下fms配置。
1)fms的dvr默认是关闭的,需要修改C:\Program Files\Adobe\Flash Media Server 3.5\applications\live\main.far里的Application.xml,将文件中的
<StreamManager>
<StreamRecord override="no">false</StreamRecord>
</StreamManager>
改为
<StreamManager>
<StreamRecord override="yes">true</StreamRecord>
</StreamManager>
修改后重新加入main.far中
2)fms默认是将直播与点播文件目录分开的(live和vod),但是视频录制是在live文件加下,所以我们要修改点播目录
C:\Program Files\Adobe\Flash Media Server 3.5\conf\fms.ini文件中将
VOD_DIR 设置为 C:\Program Files\Adobe\Flash Media Server 3.5\applications\live
这样就可以实现直播点播同文件夹共存了
3)配置虚拟目录
打开C:\Program Files\Adobe\Flash Media Server 3.5\applications\live\Application.xml在<VirtualDirectory>中加入
<Streams>/;${VOD_COMMON_DIR}</Streams>
<Streams>/;${VOD_DIR}</Streams>
补充:如果在flex中直播视频时抛出noAccess错误,请在服务器上给录制机分配写入的权限。
通过以上配置fms就完成了
flex部分
&l
相关文档:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal">
<mx:Script>
<![CDATA[
import mx.core.BitmapAsset;
import mx.core.DragSource;
import mx.events.DragEvent;
import mx.managers.DragManager;
private var xoffset:Number;
private var yoffset:Number;
priv ......
第一,添加控件。
工具箱 添加—COM组件—选择Shockwave Flash Object,点击确定。之后根据需要对该dll文件进行注册。
注册方式为regsvr32 C:\Windows\System32\Macromed\Flash\Flash10a.ocx [查看这个目录,版本不同可能此文件名不同]
第二,拖放控件至窗体。
......
flex 控件属性
2009-11-12 16:06
使用<mx:Style>标签在MXML文件中创建本地的样式定义。这个标签包含了符合CSS2.0语法的样式表定
义。这些定义会应用到当前文档以及当前文档的子文档。
<mx:style>
.solidBorder{//类选择样式
borderStyle:solid;
}
button{//组件定义样式
borderStyle:solid;
}
.. ......
首先,申明本文是转载
http://blog.csdn.net/ivanmarkliu/archive/2009/07/08/4327570.aspx
,大家可以访问该链接,也可以直接阅读本文后续部分以了解
flex
事件。接下来简单谈下为何要转载此文及本人对此文的一些补充。
可以这样说 ......
应为设计要求, 我需要计算String的宽度,
搜索了下网上的文章, 看到有用measureText(string)的,
可是用了下发现, 这个function得到的string大小, 不会根据字体的大小, 粗黑的变化,
始终返回同一个值, 也许是我的用法不对, 最后我没有这个方法,
改用了另外一个方法:
private function getTextWidth():int
{
&nbs ......