`
anson_xu
  • 浏览: 514970 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

FMS NetStream对象

    博客分类:
  • flex
阅读更多
FMS NetStream对象2008-04-02 17:47NetStream对象是在所有联机对象之间传递影音串流。如果你仅仅是为了传递文字聊天内容,使用共享对象就可以解决,不必要使用这个对象。
该对象的基本属性有
time 到目前为止,串流资料播放的秒数
bufferTime 缓冲区的最大秒数
currentFps 当前播放影像的速率(每秒帧数)
bufferLength 当前缓冲区的资料秒数
liveDelay 实时播放视频流的间隔
但是当你想知道当前播放的影像的总长度的时候,必须调用服务器端的方法才可以,因为客户端的FlashPlayer是无法获知数据流的总长的。你需要在客户端写如下方法:
01 : function getInfo()
02 : {
03 : nc.call( 'sendInfo', new MyResultSetName(), myStream);
04 : }
05 : function MyResultSetName()
06 : {
07 : this.onResult = function ( retVal )
08 : {
09 : _root.streamlength = retVal;
10 : };
11 : this.onStatus = function(info)
12 : {
13 : trace ( 'Level:' + info.level + 'Code:' + info.code);
14 : // process error object
15 : };
16 : }

然后在服务器端的main.asc文件中的相关事件中写入:
01 : application.onAppStart = function ()
02 : {
03 : trace('::: Application has started :::');
04 : }
05 : application.onConnect = function (client)
06 : {
07 : application.acceptConnection (client);
08 : // Add methods
09 : client.prototype.sendInfo = function (name) {
10 : var slen = Stream.length (name);
11 : trace ( 'slen:' + slen);
12 : return slen;
13 : };
14 : }

相关方法参考:
setBufferTime ( 秒数)
可以设置缓冲区的大小以提高低品质的网络情况
注意:bufferLength大小总是不大于bufferTime

attachVideo ( 影像来源,[ 拍摄模式 ] )
将摄像机对象的影像追加给串流对象,如果影像来源为null,将停止捕捉影像
拍摄模式省略表示捕捉连续的影像;若为0则只拍摄单元格画面;大于0,将以此数值为秒数间隔,连续拍摄单元格影像。

attactAudio ( 声音来源 )
将麦克风的音源设定给串流对象

publish ( 串流资料名,[ 播出方式 ])
如果串流资料名没有指定则停止播出
播出方式有live(默认值)实时播出但不存储;record 播出同时以串流资料名.flv文件存储,路径为应用程序路径下面的streams文件夹;append 播出的同时追加到指定名称的flv文件中,如果不存在,则自动创建。

pause()
暂停、开始播放

close ()
停止发布或播放当前所有数据流,把 NetStream.time 属性设置为 0, 使得其它客户端可以使用该数据流,该方法当你使用 NetStream.play() 或NetStream.publish() 的时候被隐含调用

play( 串流名称,起始时间,长度,是否清除前一个串流 )
起始时间默认值为-2 表示flash会先尝试播放实时影音,否则就播放指定识别名称的文件
若为-1 将只播放实时影音 若为0 将只播放指定名称的录像内容
长度参数指定影音播放的秒数 默认为-1 表示一直播放到结束 为其它值为播放到指定秒数的内容

receiveVideo(fps)
指定播放串流的速率fps设定为0时,flash将停止播放影像

seek(秒数)
快倒倒录像文件倒指定秒数的画面,如果设为0,则跳转到开头
可以使用相对时间来跳转,如
client_ns.seek(client_ns.time-3)

如果要在传输音频或视频流的同时,包含文本数据等,也就是说进行数据交换,则可以使用send方法。
可以在客户端包含下面的actionscript:
1 : var my_nc:NetConnection = new NetConnection();
2 : my_nc.connect('rtmp://myServer.myDomain.com/appName/appInstance');
3 : var my_ns:NetStream = new NetStream(my_nc);
4 : my_ns.publish('slav', 'live');
5 : my_ns.send('Fun', 'this is a test');
在接收端可以使用下面代码:
1 : var my_nc:NetConnection = new NetConnection();
2 : my_nc.connect('rtmp://myServer.myDomain.com/appName');
3 : my_ns = new NetStream(my_nc);
4 : my_ns.play('slav', -1, -1);
5 :
6 : my_ns.Fun = function(str) { //Fun is the handler name
7 : trace (str);
8 : }

关闭视频流的几种方法:
1 : myStream_ns.publish(false);// 停止整个串流
2 : myStream_ns.close();//关闭串流,当然也就停止了串流播放
3 : mystream_ns.attachVideo(null);//仅仅停止视频播放,仍然保持音频播放
分享到:
评论

相关推荐

    FMS实现视频时时聊天其实很简单

    `NetStream` 对象允许用户将音频、视频和数据流发送到 FMS 服务器。在示例代码中,可以看到 `NetStream` 对象的创建过程,以及如何将其与摄像头和麦克风关联起来。 ```as3 ns = new NetStream(nc); ns.attachCamera...

    PHP for Flash FMS源码

    1. **Flash与PHP通信**:通过Flash的NetConnection和NetStream对象,可以建立与FMS的连接,然后通过AMF(Action Message Format)协议发送和接收数据到PHP服务器。 2. **RTMP协议**:了解如何使用Flash Player与FMS...

    fms.rar_flex_fms_流媒体

    4. **发布流**:一旦连接成功,你可以创建一个NetStream对象,使用`NetStream.attachCamera()`和`NetStream.attachAudio()`方法将用户的摄像头和麦克风连接到该流。然后,通过`NetStream.publish()`方法发布这个流到...

    flash网游基础通讯(FMS,JAVA)

    2. 数据传输:通过NetStream对象进行数据流的发送和接收,例如播放视频或音频,或者传递游戏状态数据。 3. 事件监听:客户端可以通过监听NetConnection和NetStream的事件来处理连接状态变化、数据到达等事件。 4. ...

    Fms 视频录制屏幕共享 附源码.doc

    文档"《Fms 视频录制屏幕共享 附源码.doc》"主要涉及使用Adobe Flash Media Server (FMS) 实现屏幕共享和视频录制的功能。FMS 是一款强大的实时流媒体服务器,它允许开发者创建实时交互式的多媒体应用程序,包括视频...

    FLEX视频摄像头录制上传到服务器及FMS服务器的安装与配置

    在FLEX中,我们可以使用NetConnection和NetStream对象来实现这个功能。首先,我们需要创建一个NetConnection对象,然后通过connect()方法连接到服务器。接着,创建一个NetStream对象,设置其bind()方法绑定到本地的...

    fms3视频教程.PDF

    - 使用`NetConnection`对象的`connect`方法连接至指定的FMS服务器地址,例如`rtmp://localhost/firstFMS`。 - 添加事件监听器以便接收连接状态的更新。 5. **事件处理**: - 实现`onNetStatusHandler`函数处理...

    利用fms服务器和flex来做在线视频聊天.docx

    2. 定义变量,包括NetConnection对象(pnc、rnc)、NetStream对象(pns、rns)、Camera对象(cam)、Microphone对象(mic)以及Video对象(video): ```actionscript private var pnc:NetConnection; private var ...

    FMS3.5.rar_as3

    开发者可以通过监听NetStream对象上的事件来控制流的播放、暂停、停止等操作,从而实现视频聊天功能。 **视频录制** FMS 3.5还允许用户在客户端进行视频录制并存储在服务器上。这个功能依赖于RecordControl接口,...

    fms3中文教程(汇总)

    2. 实例化NetConnection和NetStream:在客户端,通过Flash Player或者AIR应用,需要实例化NetConnection对象来连接到FMS服务器,然后创建NetStream对象进行音频、视频的播放或录制。 3. 数据交互:FMS3支持AMF...

    Flex FMS 发送和接收视频

    在发送视频的场景中,Flex客户端会通过NetConnection对象连接到FMS,然后使用NetStream对象发布视频。接收视频时,同样通过NetConnection和NetStream,但这次是从FMS订阅视频流。源码可能还包括用户界面组件,如...

    FMS经典资料(包含环境配置)

    视频流的实现通常涉及到对`NetStream`对象的使用,通过调用`play`和`publish`等方法来控制流媒体的播放和发布。 #### 五、构建聊天室实例 利用FMS的功能,开发者可以轻松创建简单的聊天室应用。聊天室的基本架构...

    FMS与客户端通信 编程

    客户端和服务器之间的交互基于事件驱动模型,通过`NetConnection`和`NetStream`对象进行。 在实际开发中,开发者还需要关注网络连接状态、错误处理、数据安全和性能优化等问题。例如,使用`NetStatusEvent`监控网络...

    adobe FMS入门学习系列教程

    在`onClickHandler`函数中,当用户点击按钮时,我们创建一个新的`NetConnection`对象来建立到FMS服务器的连接。实际的连接过程还需要配置连接URL和响应处理器,以及处理可能的网络状态变化和错误事件。 类似地,...

    FMS2本地运行设置

    4. **编写ActionScript代码**:NCTest.swf的AS代码需要实现与FMS的连接,例如使用NetConnection对象来建立连接,NetStream对象来处理流媒体数据,并使用trace函数输出日志信息。 5. **测试连接**:运行NCTest.swf,...

    fms 中文文档 9

    4. **播放流媒体**:在`connectStream()`方法中,创建`NetStream`对象,附加视频组件,并设置初始缓冲时间。 #### 四、FMS更新带来的新特性 文档特别提到,在Flash Player 9更新3版本后,当流停止时,系统不会立即...

    fms开发参考资料

    - **定义**:MovieClip类使得开发者能够指定声音的来源,既可以是本地捕获的声音(通过Microphone对象),也可以是从运行Flash Media Server的应用程序中流出的声音(通过NetStream对象)。 - **用途**:适用于处理...

    flex+fms实现视频直播源码

    - `NetConnection`:在Flex中,这是建立与FMS服务器连接的主要对象,负责管理实时数据传输。 - `NetStream`:用于发送和接收流媒体数据,包括创建、播放、暂停和停止流。 - `Camera` 和 `Microphone`:分别代表...

    flash as3录音压缩为MP3并上传(不用借助fms)

    当录音开始后,Microphone类会产生一个NetStream对象,我们可以用它来处理音频数据。NetStream对象可以用来播放、记录或发送音频和视频流。使用`record()`方法启动录音,并通过`attachAudio()`将Microphone对象连接...

Global site tag (gtag.js) - Google Analytics