`
anson_xu
  • 浏览: 505888 次
  • 性别: 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);//仅仅停止视频播放,仍然保持音频播放
分享到:
评论

相关推荐

    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()方法绑定到本地的...

    利用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订阅视频流。源码可能还包括用户界面组件,如...

    adobe FMS入门学习系列教程

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

    FMS2本地运行设置

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

    flex+fms实现视频直播源码

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

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

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

    [原创] Fms 视频录制屏幕共享 附

    2. **获取权限**:在用户同意共享屏幕后,FMS会返回一个包含屏幕信息的对象,客户端可以通过这个对象启动屏幕捕获。 3. **编码与发送**:客户端使用屏幕共享API将捕获到的屏幕帧进行编码(如使用H.264编码),然后...

    fms多人聊天

    AS3代码可能使用了NetConnection和NetStream类来处理与FMS服务器的连接和数据流,以及使用Event监听器来响应服务器事件,如用户加入或离开聊天室、发送消息等。 `PublishLive.as` 文件可能涉及到媒体发布功能,允许...

    flex 多摄像头 发布 接收

    在Flex中,可以通过`NetStream`对象与FMS进行交互,实现复杂的视频处理功能,如多路视频混音、视频会议等。 8. **示例代码** 一个简单的示例可能会包括以下步骤: - 初始化`NetConnection`并连接到服务器。 - ...

    Fms3和Flex打造在线多人视频会议和视频聊天附原代码

    通过ActionScript 3与FMS3服务器进行通信,建立NetConnection,然后创建NetStream实例,用于接收和发送音视频流。 3. **服务器端编程**:使用FMS3的API实现服务器逻辑,比如用户登录验证、房间创建和管理、音视频流...

    Flash ActionScript3.0 发布 H.264视频流.docx

    总结来说,Flash ActionScript3.0发布H.264视频流涉及建立网络连接,创建NetStream对象,捕获和编码摄像头输入,以及监听流的状态。这个过程对于开发实时的在线视频应用,如视频聊天、直播或视频会议系统至关重要。

    简单的flash视频聊天(学习用)

    `send.swf`会调用这些类,捕获用户的视频和音频,然后使用`NetConnection`和`NetStream`对象将数据传输到FMS。`show.swf`则通过同样的`NetStream`对象接收数据,播放视频和音频。 四、RTMP协议 RTMP是Flash用于实时...

    Flash_Media_Server-config.rar_flash media server

    1. **NetConnection**:是FMS客户端与服务器建立连接的基础对象,用于创建点对点的连接。 2. **NetStream**:处理音频和视频流,用于播放、记录和发送流媒体内容。 3. **ActionScript 3.0 API**:FMS提供了全面的AS3...

Global site tag (gtag.js) - Google Analytics