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 ......
flex 页面跳转
方法一:使用navigateToURL
var url:String = "http://localhost/flex/test.jsp";
var request:URLRequest = new URLRequest(url);
navigateToURL(request,"_self");
方法二:引用flash中的 import flash.external.ExternalInterface 这个接口
他能提供像js中window.location.href方法一样方便
Extern ......
2.2 代码实现
下面给出了FlexBuilder工程的一个文件,设置了Flash的布局。
view plaincopy to clipboardprint?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
......
这是一篇讲解如何使用XML实现Flash与通信的入门级实例教程。通过本例的学习,我们将了解使用XML开发Flash RIAs的基本流程。
从Flash Player 5开始,就可以使用XML对象来实现Flash与后台通信。Flash浏览器与XML数据之间的直接进行数据交换,并且同LoadVars函数一样,都是以字符串形式传递的。后台语言作为XML数据和数据库 ......
之前写了《 flex 事件之理解》和《 flex meta tag 之理解》,本想是为写本文 flex 数据绑定之理解做铺垫的,谁知网上已有 flex 数据绑定之理解很好的文章,如下:
http://www.cnblogs.com/nianshi/archive/2010/05/19/1739407.html , FLEX ......