Fms3和Flex打造在线视频录制和回放
Fms3和Flex打造在线视频录制和回放
本篇是视频聊天,会议开发实例系列文章的第2篇,该系列所有文章链接如下:
http://www.cnblogs.com/aierong/archive/2008/12/30/Flex.html#sp
1.关于Fms3和Flex的简单应用可以看我上篇
http://www.cnblogs.com/aierong/archive/2009/01/09/flex_fms_chat.html
2.准备工作
在fms安装目录下的application中,新建一个文件夹test_video1,然后启动fms服务器
3.打开Fb3,创建一个项目
4.在主mxml中拖动控件,界面如下:
具体代码如下:
<mx:VideoDisplay x="34" y="10" height="200" width="360" id="vd_main"/>
<mx:TextInput x="34" y="224" text="te" width="208" id="txt_filename"/>
<mx:Button x="250" y="224" label="record" id="btn_record"/>
<mx:Button x="327" y="224" label="stop" id="btn_stop"/>
<mx:Button x="250" y="256" label="replay" id="btn_replay"/>
<mx:Label x="34" y="288" text="状态提示:" width="362" id="txt_status"/>
5.导入包和定义变量如下:
import mx.controls.Alert;
private var netConnection:NetConnection;
private var netStream:NetStream;
private var appServer:String="rtmp://192.168.0.249/test_video1";
private var camera:Camera;
private var microphone:Microphone;
音频流或视频流的一般工作流程:以下步骤简要介绍了用于发布实时音频和视频的工作流程:
a.创建一个 NetConnection 对象。
b.使用 NetConnection.connect() 方法连接到服务器上的应用程序实例。
c.创建一个 NetStream 对象,以便在连接中创建数据流。
d.使用 NetStream.attachAudio() 方法捕获音频并通过该流进行发送,然后使用 NetStream.attachCamera() 方法捕获并发送视频。
e.使用 NetStream.publish() 方法为该流指定唯一的名称,然后通过该流将数据发送到服务器,以使其他用户能够收到该数据。 您还可以在发布数据时进行录制,以便用户可以在日后回放该数据。
6.creationComplete="init()",页面初始化代码
private function init():void
{
netConnection = new NetConnection();
netConnection.connect(appServer);
netConnection.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
btn_record.addEventListener(MouseEvent.CLICK,recordFLV);
btn_stop.addEventListener(MouseEvent.CLICK,stopRecord);
btn_replay.addEventListener(MouseEvent.CLICK,replayFLV);
initMedia();
}
代码比较简单,就是做些初始化工作
7.实现initMedia()
private function initMedia():void
{
camera = Camera.getCamera();
camera.setMode(300,180,15);
camera.setQuality(0,100);
vd_main.attachCamera(camera);
microphone = Microphone.getMicrophone();
}
代码说明:
这段代码实际上是在初始化视频设备和音频设备
Camera 类可从连接到运行 Flash Player 的计算机的摄像头中捕获视频。
重要说明:Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问摄像头。 确保应用程序窗口大小至少为 215 x 138 个像素;这是显示该对话框所需的最小大小。
若要创建或引用 Camera 对象,请使用 getCamera() 方法。
camera.setMode()方法是将摄像头的捕获模式设置为最符合指定要求的本机模式
第1个参数:请求的捕获宽度,以像素为单位。 默认值为 160
第2个参数:请求的捕获高度,以像素为单位。 默认值为 120。
第3个参数:摄像头捕获数据应使用的请求速率,以每秒帧数为单位。 默认值为 15。
camera.setQuality()方法设置每秒的最大带宽或当前输出视频输入信号所需的画面质量
第1个参数:指定当前输出视频输入信号可以使用的最大带宽,以每秒字节数为单位。 若要指定 Flash Player 视频可以使用所需数量的带宽来保持 quality 的值,请为 bandwidth 传递 0。 默认值为 16384。
第2个参数:个整数,指定所需的画面质量级别,该级别由应用于每一视频帧的压缩量确定。 可接受的值的范围为 1(最低品质,最大压缩)到 100(最高品质,无压缩)。 若要指定画面质量可以根据需要进行变化以避免超出带宽,请将 0 传递给 quality。
vd_main.attachCamera(camera)是指把来自摄像头的视频流显示到该控件
Microphone 类可从连接到运行 Flash Player 的计算机的麦克风中捕获音频
重要说明:Flash Player 将显示“隐私”对话框,用户可从中选择是允许还是拒绝访问麦克风。 请确保应用程序窗口大小至少为 215 x 138 像素,这是显示对话框所需的最小尺寸。
若要创建或引用 Microphone 对象,请使用 Microphone.getMicrophone() 方法。
8.实现netStatusHandler
private function netStatusHandler(evt:NetStatusEvent):void
{
if ( evt.info.code=="NetConnection.Connect.Success" )
{
txt_status.text="fms连接成功";
netStream = new NetStream(netConnection);
}
else
{
Alert.show("fms连接失败");
}
}
9.实现录制按钮事件
private function recordFLV(evt:MouseEvent):void
{
txt_status.text="开始录制";
netStream.attachCamera(camera);
netStream.attachAudio(microphone);
netStream.publish(txt_filename.text,"record");
}
代码说明:
publish () 方法:将音频流、视频流和文本消息流从客户端发送到 Flash Media Server,并可选择在传输期间录制该流。 此方法仅供指定的流的发布者使用。
第1个参数:标识该流的字符串。
第2个参数:指定如何发布该流的字符串。 有效值为“record”、“append”和“live”。 默认值为“live”。 (这3个参数区别如下:)
如果传递“record”,Flash Player 将发布并录制实时数据,同时将录制的数据保存到名称与传递给 name 参数的值相匹配的新文件中。 该文件保存在服务器上服务器应用程序所在目录的子目录中。 如果该文件存在,则覆盖该文件。
如果传递“append”,Flash Player 将发布并录制实时数据,同时将录制的数据附加到名称与传递给 name 参数的值相匹配的文件中,该文件存储在服务器上包含服务器应用程序的目录的子目录中。如果未找到与 name 参数相匹配的文件,则创建一个文件。
如果省略此参数或传递“live”,则 Flash Player 将发布实时数据而不进行录制。 如果存在名称与传递给 name 参数的值相匹配的文件,则删除它。
10.停止事件
private function stopRecord(evt:MouseEvent):void
{
txt_status.text="停止录制";
netStream.close();
}
11.回放事件
private function replayFLV(evt:MouseEvent):void
{
txt_status.text="开始回放";
vd_main.source=appServer+"/"+txt_filename.text;
vd_main.play();
}
12.运行程序
13.代码下载
http://files.cnblogs.com/aierong/Video1.rar
您收到代码后,请回到文章下面留言告之一下!要是没收到,我可以再发!
提供代码是为了互相学习,一起探讨!请大家多交流!
1.要是对代码有什么疑问,可以在文章的评论区留言,我会尽我所能答复您!
2.要是您在运行代码的过程中发现bug,或者是您有什么好的建议和意见,也可以在文章的评论区留言给我,我会及时更正!
评论区使用提示:
评论区留言(使用高级评论)是可以贴图片的,要是有难以描述的问题,可以贴图片和文字一起说明
谢谢!
A.Sql Server2005 Transact-SQL 新兵器学习
B.MCAD学习
C.代码阅读总结
D.ASP.NET状态管理
E.DB(数据库)
F.WAP
G.WinForm
H.Flex
FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8>
Sql Server2005 Transact-SQL 新兵器学习总结之-总结
MS SQL数据库备份和恢复存储过程(加强版本)
sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结)
ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现)
WAP开发资料站(最新更新)
自定义格式字符串随笔 (IFormattable,IFormatProvider,ICustomFormatter三接口的实现)
Mcad学习笔记之异步编程(AsyncCallback 委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)
Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法)
Mcad学习笔记之序列化(2进制和Soap序列 化)
Mcad学习笔记之委托再理解(delegate的构造器,BeginInvoke,EndInvoke,Invoke4个方法的探讨)
ASP.NET状态管理之一(概括篇)
Flex,Fms学习笔记

作者:aierong
出处:http://www.cnblogs.com/aierong
贴子以"现状"提供且没有任何担保,同时也没有授予任何权利!
本文版权归作者所有,欢迎转载!
原创技术文章和心得,转载注明出处!这也是对原创者的尊重!
公告
搜索
最新随笔
- 1. Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
- 2. 创建Windows服务(Windows Services)N种方式总结
- 3. .NET中对串口(COM)读写操作方式汇总
- 4. Sql Server2008 Transact-SQL 新兵器学习总结之-用户定义表类型和日期,时间数据类型
- 5. Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)
- 6. Flex Air开发SQLite小结,SQLite开发工具及SQLite与Sql Server的语法差异汇总
- 7. 开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))<视频聊天,会议开发实例6>
- 8. 免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发)<视频聊天,会议开发实例5>
- 9. Flex组件的项目渲染器(ItemRenderer)使用总结
- 10. 推荐几个Adobe Flex Builder 3的插件(代码格式化和fms服务器通讯文件(main.asc)编写)
我的标签
随笔分类(156)
随笔档案(122)
- 2012年10月 (1)
- 2012年5月 (1)
- 2009年8月 (1)
- 2009年3月 (1)
- 2009年2月 (7)
- 2009年1月 (12)
- 2008年12月 (13)
- 2008年11月 (7)
- 2008年9月 (3)
- 2008年8月 (4)
- 2008年7月 (1)
- 2007年12月 (3)
- 2005年11月 (1)
- 2005年10月 (5)
- 2005年5月 (4)
- 2005年4月 (5)
- 2005年3月 (9)
- 2005年2月 (3)
- 2005年1月 (9)
- 2004年12月 (3)
- 2004年10月 (3)
- 2004年8月 (1)
- 2004年7月 (18)
- 2004年6月 (3)
- 2004年5月 (2)
- 2004年4月 (2)
相册
.net(中文)
AJAX JQuery
BLOG个人站点
WEB开发
其他站(技术)
积分与排名
- 积分 - 646888
- 排名 - 90
最新评论
- 1. Re:Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象)
- 楼主你好 我在做实时聊天的时候接受的rtmp视频播放的flashplayer只要是debug版本无论是是桌面还是网页就会直接崩溃 你有没有遇到类似的问题啊?这是我的一个rtmp链接
rtmp://rtmp.aiwaya.cn/yunva/781 - --叶落风凌
- 2. Re:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
- 跨域的问题是怎么处理的
- --寻道问天
- 3. Re:Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
- 很好!
- --czyX陈默
- 4. Re:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
- 总结的老好了,致敬
- --想做大哥很多年
- 5. Re:ASP.NET状态管理之三(隐藏域HiddenField)
- 学习了,Thanks.
- --xiaoliang10000
- 6. Re:免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))
- 楼主,为什么我下载你的代码后视频正常但是文字聊天不能。A用户发送消息后只有A的屏幕有显示,其他用户都没有,但是如果B用户发送,那么A用户发送过的消息A屏幕一刷新就变空白。
- --fengma
- 7. Re:免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发)
- 斑竹,最近我在研究这个,一直想做一对一的视频,最好能发起视频邀请,对方能选择接听和挂断的,望指教!!
- --sanhuaihuai
- 8. Re:Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象)
- fms都启动了, 点recodr报51行null
- --CrazyPastor
- 9. Re:Fms3和Flex打造在线视频录制和回放
- 楼主,我在点击回放视频完成后画面就是视频最后一帧.如何才能让它放完视频后自动回到实时的自己的视频画面啊?
- --fengma
- 10. Re:自定义格式字符串随笔(IFormattable,IFormatProvider,ICustomFormatter三接口的实现)
- 我就是想问下 实现的ICustomFormatter接口的Format是在什么情况下会执行?
- --薄樱
阅读排行榜
- 1. Flex,Fms3相关文章索引(2009-3-25更新)(34867)
- 2. 开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))<视频聊天,会议开发实例6>(29149)
- 3. MSN在线状态代码(24237)
- 4. 免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发)<视频聊天,会议开发实例5>(23940)
- 5. Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象)<视频聊天,会议开发实例1>(21367)
- 6. sqlserver字符串拆分(split)方法汇总(20316)
- 7. Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)<视频聊天,会议开发实例3>(17584)
- 8. WAP开发资料站(最新更新)(15928)
- 9. Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1(15574)
- 10. Flex组件的项目渲染器(ItemRenderer)使用总结(15396)
评论排行榜
- 1. 免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发)<视频聊天,会议开发实例5>(765)
- 2. 开源Flex Air版免费激情美女视频聊天室,免费网络远程视频会议系统((Flex,Fms3联合打造))<视频聊天,会议开发实例6>(693)
- 3. Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)<视频聊天,会议开发实例3>(350)
- 4. 免费美女视频聊天,多人视频会议功能加强版本(Fms3和Flex开发(附源码))<视频聊天,会议开发实例4>(344)
- 5. Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象)<视频聊天,会议开发实例1>(289)
- 6. Fms3和Flex打造在线视频录制和回放<视频聊天,会议开发实例2>(107)
- 7. 推荐几个Adobe Flex Builder 3的插件(代码格式化和fms服务器通讯文件(main.asc)编写)(87)
- 8. Flex,Fms3相关文章索引(2009-3-25更新)(71)
- 9. WAP开发资料站(最新更新)(46)
- 10. ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现) (43)
推荐排行榜
- 1. 创建Windows服务(Windows Services)N种方式总结(10)
- 2. Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)(7)
- 3. .NET中对串口(COM)读写操作方式汇总(6)
- 4. Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)(3)
- 5. 免费网络远程视频会议系统,免费美女多人视频聊天(附源码下载)(Flex和Fms3开发)<视频聊天,会议开发实例5>(3)
- 6. sqlserver字符串拆分(split)方法汇总(3)
- 7. asp.net的3个经典范例(ASP.NET Starter Kit ,Duwamish,NET Pet Shop)学习资料(2)
- 8. Flex和Fms3打造在线聊天室(利用NetConnection对象和SharedObject对象)<视频聊天,会议开发实例1>(2)
- 9. flex,fms名称解释和学习资源(2)
- 10. Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)<视频聊天,会议开发实例3>(2)
Fms3和Flex打造在线视频录制和回放的更多相关文章
- Fms3和Flex打造在线多人视频会议和视频聊天(附原代码)
Flex,Fms3系列文章导航 Flex,Fms3相关文章索引 本篇是视频聊天,会议开发实例系列文章的第3篇,该系列所有文章链接如下: http://www.cnblogs.com/aierong/a ...
- IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序
前言:还是看了一下国外的入门IOS文章:<Create a Simple App for Video Recording and Playback>,主要涉及视频录制和回放的功能的基本实现 ...
- win10怎么录制电脑屏幕 电脑播放视频录制
随着社会的发展,网络信息化时代已经来临,作为一个上班族,每天都离不开电脑,电脑仿佛就是我们的合作伙伴,也是陪伴我们的朋友,如今win10系统已经出来了,关于win10系统的问题相信大家有很多的问题,今 ...
- Linux 桌面玩家指南:05. 发博客必备的图片处理和视频录制神器
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...
- Flash+fms视频录制在项目中的实际应用
Flash+fms视频录制在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而flash+fms视频录制有多种实现方式,具体可根据实际情况而定! 1:古人云:工欲善其事,必先利其器,首先安装f ...
- iOS开发----音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- 音频播放、录音、视频播放、拍照、视频录制-b
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
- iOS音频播放、录音、视频播放、拍照、视频录制
随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像头的操 ...
随机推荐
- VMware克隆虚拟机后网络不能正常使用的解决方法
1.问题情况 在vmware中克隆一个虚拟机后,新的虚拟机网络无法使用,并用原操作系统中的网卡eth0在克隆出来的新系统中,网卡号变成了eth1,并且IP地址也丢失了,网络不可正常使用. 2.环境情况 ...
- IOS strong和weak的区别
strong和weak的区别 strong表示保留它指向的堆上的内存区域不再指向这块区域了. 也就是说我强力指向了一个区域,我们不再指向它的条件只有我们指向nil或者我自己也不在内存上,没有人stro ...
- HTTP/2笔记之连接建立
前言 HTTP/2协议在TCP连接之初进行协商通信,只有协商成功,才会涉及到后续的请求-响应等具体的业务型数据交换. HTTP版本标识符 h2,基于TLS之上构建的HTTP/2,作为ALPN的标识符, ...
- 布局的诡异bug合集+解决方法(更新中)
1.元素内部子元素的margin的边界线基准点的问题 论如何生硬起名字!!我反正已经被自己总结的题目绕晕了... “演员”介绍: 外层父元素:蓝色边框: 内部子元素:绿色区域: 粉红色区域是元素内部绿 ...
- webpack中,css中打包背景图,路径报错
css-loader: //打包样式中背景图 { test: /\.(png|jpg)$/, loader: "url-loader?limit=8192&name=images/[ ...
- iconfont阿里爸爸做的开源图库
iconfont 三种使用姿势 1.unicode格式 优点 兼容性最好,支持ie6+ 支持按字体的方式去动态调整图标大小,颜色等等 缺点 不支持多色图标 在不同的设备浏览器字体的渲染会略有差别,在不 ...
- 如何查找元素对应事件的js代码
以chrome的firebug为例 1.找到其dom元素,然后右键"break on"-->"subtree modification"等,设置后元素旁边 ...
- 【BZOJ2901】矩阵求和
Description 给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. Input 第一行两个正整数n,m. 接下来n行,每行n个非负整数,表示第一个矩阵. 接下来n行,每行n个非负整数 ...
- DG快照备库
1.使用快照先决条件:主备库开启闪回功能 2.把备库转为快照库 DGMGRL> convert database satest to SNAPSHOT STANDBY; Converting d ...
- scikit_learn 中文说明入门
原文:http://www.cnblogs.com/taceywong/p/4568806.html 原文地址:http://scikit-learn.org/stable/tutorial/basi ...