ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:189.71KB ,
资源ID:2171242      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2171242.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FMS3技术文档之二.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FMS3技术文档之二.docx

1、FMS3技术文档之二录制和播放流媒体2.1. Streaming and Broadcasting (流和广播)FMS3可以录制和播放流媒体。流的性质和广播不一样。在广播中,发送者发送出一个 单个信号。谁连接到该频道,发送信号都得到相同的流。这就像丢一个球到水中,在同一个圆心的波浪发出了一个“信号”。无论身在何处的观众或听众,当波到达 他们时,他们得到相同的波浪,像一个电视画面或无线电传输,为其他所有人。当FMS3发送一个音频和视频的流的时候,它为每个接受者建立一个单独的流。其“广播”工作, 更像一货车车轮上的辐条,每个人都连接获得他或她自己的流。因此,这里的“广播”的真正意义是streamc

2、asting一种形式-每个人都得到一个单独 的流的技术。如果一个人正在收听,我的应用程序只发送一个流,如果20个人在收听,它会产生20个流。因为服务器会自动为每个连接的用户建立一个单独的 流。你不需要在你的代码里建立所有的流。不过,在决定如何设立您的应用程序时,对带宽的考虑,您需要考虑它可能会产生的流数量。如果你很少在线观看视频,您大概没有看到它的不同。如果你点击一个视 频,要等很久,真正让你等待的是视频文件先下载,然后您的计算机上,播放保存到硬盘驱动器上的视频。这样的方式,你要等到文件完全下载之后,您才可以观 赏。同样也增加了你的硬盘使用空间。第二种视频处理的类型叫:progressive

3、download(渐进式下载),它就像一种混合下载和流的视频,同样视频文件会被下载,但是它不用等到全部下载完就可以播放了。无论如何,文件最后还是 会下载到用户的硬盘中,这种处理也不是真正的流。第三种视频处理类型,如果在你的服务器上有FMS3,可以让视频流从你的服务器。这章向您展示了怎么样使 用FMS3建立和播放流文件 Flash Video (FLV)。2.2.最简单的项目开始建立你的工程的时候,用AS3.0建立一个FLV文件最少需要以下的包和类(客户端):Packagesfl.controls.Button;fl.controls.TextInput;flash.display.Sprite

4、;.NetConnection;.NetStream;flash.events.NetStatusEvent;flash.events.MouseEvent;flash.events.Event;.ObjectEncoding;flash.media.Camera;flash.media.Microphone;flash.media.Video;Key ClassesNetConnectionNetStreamCameraMicrophoneVideoButton以上列出的包和类都是使用FMS3录制和播放FLV文件所需要的,在这些包中,最重要的是导入ObjectEncoding包。FMS2(如

5、果你使用它替换FMS3)要求NetConnection的属性defaultObjectEncoding的AMF默认值改为0,如下:NetConnection.defaultObjectEncoding = .ObjectEncoding.AMF0;对于FMS2的用户,如果你在客户端使用AS3.0,你将会在本书中看到这个属性,只好不要注释defaultObjectEncoding这行。一个更重要的琐事之事,在你取得实际编码之前。你需要一个叫vid2的服务端目录,这将会是你的FMS应用程序的目录,虽然它不需要一个服务器端(ASC )文件,但是运行你的应用程序是所必须的,当你第一次运行你的应用程序,

6、你会发现在vid2目录下有一些其它的目录。2.2.1.摄像头和麦克风录制视频,你将需要一个摄像头和麦克风连接到了你的电脑上。一些网络摄像头有内置麦克风,许多电脑也有内置麦克风,尤其是笔记本和大多数的Macintosh电脑。在本章中的例子包含一些的摄像头设置,这些会在第3章中解释说明。下面一行代码设置摄像头的捕捉宽和高为240X180,帧率为24:cam.setMode (240,180,24);设置质量为90:cam.setQuality (0,90);对于本章中最简单的应用程序,这些你都需要知道。但是对于精调你的应用程序时,你需要花更多时间在这些设置和优化你的应用程序的效率上。2.2.2.用

7、最少的代码来录制FLV文件对于AS 3.0,你可以用最少的配置来建立你的完整的应用程序。对此,本书中的其它例子了,你将看到如何使用AS 3.0,可以简单地来建立任何你所需要的事情。一开始,你需要建立一个MinRecord.fla文件,添加一个Button和TextInput组件到 库中,这样你就可以用这些组件的类名来添加它们到舞台上。下面的代码片断展示了怎么样建立:var recordBtn:Button=new Button();另外你还需要导入正确的类:fl.controls.Button。最后使用addChild()方法把组件添加到舞台上。使用实例的x和y属性,你可以把它们放置在舞台的任

8、何地方。为了显示你的视频,你需要一个Video实例。Video实例是用来显示你的Camera对像(摄像头可以见到的东西)。同样,你需要一个 Microphone实例来处理你的声音数据,好让它可以被录制。为了连接和串流声音及视频,你需要一个NetConnection 实例和一个NetStream实例。把它们串在一起,你将需要做以下事件: 为捕捉视频和声音建立camera 和 microphone对像 放置一个video实例在舞台 用RTMP地址连接到服务器(NetConnection.connect(”rtmp:/url/app/inst”),建立一个流,传输视频和声音到媒体服务器(它们将被录制

9、成一个FLV文件)下面的伪代码说明了,用来传输声音和视频到媒体服务器的相关顺序:1.建立 camera, microphone, and video 实例var cam:Camera = Camera.getCamera();var mic:Microphone = Microphone.getMicrophone();var vid:Video=new Video(w,h);2.设置网络连接和流var nc:NetConnection=new NetConnection();nc.connect(”rtmp:/www.myFMSvar ns:NetStream=new NetStream(n

10、c);3.添加摄像头到视频中和摄像头和麦克风添加到网络流中vid.attachCamera(cam); /This is so that you can see videons.attachAudio (mic); /Give audio a ride on the streamns.attachCamera (cam); /Give video a ride on the stream4.发布网络流ns.publish (”FLVname”,”record”);注意:当你实例化一个camera 和 microphone 对像时,使用的是get方法,而不是new。实例化一个camera对像的正

11、确语法如下:var myCam:Camera = Camera.getCamera();实例化microphone:var myMic:Microphone = Microphone.getMicrophone();FLV文件最后保存在你的应用程序目录中的streams目录中。在本例中,FMS服务器的目录排列看起来像这样:applications-vid2-streams-recordings-flv files在下面,将把它们集合在一起。大部分实例都声明为私有变量。一个重要的方法:checkConect,使用NetStatusEvent来检测连接是否连接成功。事件侦听器被添加到NetConn

12、ection实例nc上:nc.addEventListener (NetStatusEvent.NET_STATUS,checkConnect);如果连接成功,然后实例NetStream。这是重要的:在整个本书中保持这种做法,使您的应用程序,不会在没有连接到FMS时就尝试创建一个网络流。准备好后,然后执行下面步骤:1 打开一个新的Flash 文件,保存为MinRecord.fla2 打开窗口-属性。在文档类中输入MinRecord,保存文件3 建立一个新的ActionScript文件,保存为MinRecord.as与MinRecord.fla同一目录4 在MinRecord.as文件中,添加E

13、xample 2-1中的代码,保存Example 2-1. MinRecord.asCode View:packageimport fl.controls.Button;import fl.controls.TextInput;import flash.display.Sprite;import .NetConnection;import .NetStream;import flash.events.NetStatusEvent;import flash.events.MouseEvent;import flash.events.Event;/import .ObjectEncoding;im

14、port flash.media.Camera;import flash.media.Microphone;import flash.media.Video;public class MinRecord extends Spriteprivate var nc:NetConnection;private var ns:NetStream;private var rtmpNow:String;private var msg:Boolean;private var cam:Camera;private var mic:Microphone;private var vid1:Video;privat

15、e var recordBtn:Button;private var stopBtn:Button;private var textInput:TextInput;/Constructorfunction MinRecord ()/NetConnection.defaultObjectEncoding = .ObjectEncoding.AMF0;nc=new NetConnection();nc.addEventListener (NetStatusEvent.NET_STATUS,checkConnect);rtmpNow=”rtmp:/192.168.0.11/vid2/recordings”;/rtmpNow=”rtmp:/vid2;nc.connect (rtmpNow);addMedia ();addUI ();recordBtn.addEventListener (MouseEvent.CLICK,startRecord);stopBtn.addEventLi

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1