欢迎来到天天文库
浏览记录
ID:40535200
大小:389.91 KB
页数:34页
时间:2019-08-04
《FMS3技术文档之五》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.1.面对面通信面对面的沟通的梦想,通过一些像一个电视/电话组合一直围绕在至少过去50年。不过,许诺在远程位置的这种个人之间的沟通,只在最近普遍的实现。开放的Socket技术和高速互联网,如面对面的音频/视频((A/V)的通信,在网络上变得简单而且越来越普遍。这一章着眼于,使用FMS3创造一种双向音频/视频应用的基本要素-无论是FMIS3或DevelopmentFMS3。FMSS不能用于交互式应用程序。应用程序在这一章中所有使用的类和对象在前几章简要的讨论过了,特别是在第3章中,“设置您的摄像机和话筒”=研究了摄像头,麦克
2、风和视频对象,和NetStream类。在开始之前,您可能要回故之前第3章的内容,使您不太可能迷失在本讨论中。5.2.NetStream包有时可以把NetStreamod类作为一个包mule。您与不同的东西把它载入,并将按其方式发送它。一旦流到达它的目的地,它卸载其捆绑将收到的视频和音频。像包mule,每一个目的地,需要不同的流。因此,如果您是发出了一个捆绑到九龙,悉尼,日本横滨,孟买,和利马,您需要5个mule,每个mule为每个目的地。至于开发者所关心的,您将只需要建立只有一个单一的NetStream实例,以传送相同的视频
3、和音频到所有那些地方。即使您建立一个单一的实例,FMS3为每一个生成一个单独的流。这很重要,请注意,因为每一个地方接收流,你要付出带宽的代价。(可以想像购买您的每个包mules是一个在带宽bucks为航线机票支付)在除了发出bundles,您也想要接收bundles。您发送音频和视频和您想要接收音频和视频。因此,对于每一个您想要接收的对像,您将需要一个NetStream实例。带宽-告诉这可以得到昂贵的迅速。图5-1显示了2个连接和4个连接之间的差别。图5-1.Connectionsandstreams两个连接需要两个流,但是
4、四个连接需要12个流。你可以用以下公式来计算需要几个流:S=c2–cS代表所产生的流的数量,c代表有几个连接图5-1显示了2个连接只产生两个流(2x2=4;4–2=2),4个连接产生12个流(4x4=16;16-4=12)你可以看到,作为连接数量的增加数值,有多少流增加指数。例如,如果您双重的连接数从4至8,流数量的增加,从12至56-以上翻4倍的流和对带宽的影响。5.3.NetStream类和LiveStreams第2章和第3章介绍了NetStream类,但是它们没有详细的介绍它。本章中开始研究NetStream类用在现场
5、流中,然后加入到最简单地例子中。使用NetStream类,目的是捕捉从视频和麦克风传来的音频和视频输入,然后发送他们给另一个人看和听。这个程序调用以下NetStream方法:··NetStream.connect(myNetConnection)··NetStream.attachAudio(microphone)··NetStream.attachVideo(camera)··NetStream.publish(“streamName“)··NetStream.play(“streamName“)在看产生一个双向A/V连接
6、顺序中所必需的,流通过NetConnection连接到服务器,用来建立一个在用户和应用程序之间的连接。发布流的时候需要添加要发布在的摄像头和麦克风。流发送到FMS3服务器,然后服务器发送它到连接上的客户端。下面的代码片断展示了这些步骤://StreamOutnsOut=newNetStream(nc);nsOut.attachAudio(mic);nsOut.attachCamera(cam);nsOut.publish("left","live");下面这些代码所做的事情:··建立一个流,联合一个网络连接到一个连接到FMS
7、3··附加麦克风到流··附加摄像头到流··使用唯一的流名称发布流现在在您已经有了发布的模块,设立一个播放的模块来捕获和播放被送往的流。您不想捕捉你刚发布的相同的流,所以您将需要有一个除了”left”的流名称。播放流将被称为”right”,要紧记,它代表了当前的接受者。(其他接受者播放”right”和接收“left”)为了捕捉进来的流,你需要把流附加到Video对像上。流包含音频和视频被处理为一个单一的单元—一个视频。您不必把声音对象附加到一个对像上,当你发送视频时。因此,你把流附加到视频对象上使用attachVideo()方
8、法。一旦流正在发送到正确的位置(嵌入式视频对象),所有你需要做的是就是播放流,如以下代码段所示://StreamInnsIn=newNetStream(nc);nsIn.play("right");vidStream.attachNetStream(nsIn);阅读和显示进来的流的顺序,然
此文档下载收益归作者所有