准备工具:
Flash Media Server..
Flash 8 && Flash 8 Player (-______-)
一个摄像头,一个麦克.
打开FLASH,新建一个FLASH文档.
CTRL + L调出库..在库的右上角有个三角,点一下.然后选择"新建视频元件";
命名为:video
在主场景里新建2个图层,一个名字叫 video_record,另一个叫video_play;
将库里的视频元件分别拖到这2个图层中.起名字叫video_r和video_p.video_r是用来录视频的.video_p是用来放视频的.
(下面起新建MC啊,或命名一类的我就不写了.只做程序介绍.如果连MC命名都不知道的话相信也看不懂这教程.大家见谅!)
程序部分:
var server_uri:String = "rtmp://localhost/tensharp";
//FMS地址;
var videoName:String = "KeeRula";
//视频名.
var my_nc:NetConnection = new NetConnection ();
//新建一个连接对象,用来连接FMS;
my_nc.connect (server_uri);
//连接FMS;
var my_ns:NetStream = new NetStream (my_nc);
//新建流,用来捕获和播放视频;
var my_cam:Camera = Camera.get ();
video_r.attachVideo (my_cam);
//获得慑像头,并将摄像头获取的视频载入到video_r里.
my_cam.setQuality (1024, 90);
//设置带宽和质量;
var my_mic:Microphone = Microphone.get ();
//获得MIC;
my_ns.attachVideo (my_cam);
my_ns.attachAudio (my_mic);
//将摄像头图象和MIC声音装载到流.
video_p._visible = false;
//将播放窗口设置为不可见.
my_nc.onStatus = function (thisObj:Object)
{
//trace (thisObj.code);
if (thisObj.code == "NetConnection.Connect.Success")
{
RecordStop ("空闲中");
//执行录制停止方法.并将状态设置为空闲
}
else
{
trace ("错误:服务器未启动或URI输入错误.");
}
}
//onStatus这里是指服务器的连接状态.
function Record ()
{
video_r._visible = true;
//将录制窗口设为可见.
video_p._visible = false;
//播放窗口设置为不可见.
my_ns.publish (videoName, "record");
//关键就在这句了.写了这么多全围绕它来的.record为录制.
StreamInfo ("NowRecord");
//执行StreamInfo方法,并将参数设置为NowRecord;
btn_pr.btn_text.text = "停止";
//按钮文字:停止.
RecordInterval = setInterval (RecordTime, 1000);
//统计录制时间.
}
//方法:录制.
var timeNum:Number = 0;
//录制时间.
function RecordTime ()
{
timeNum ++;
txt_status.text = "正在录制" + " " + "时间:" + Math.floor (timeNum / 60) + "分" + (timeNum % 60) + "秒";
}
//方法:录制时间统计.
function RecordStop (__status:String)
{
//__status是当前状态文字.
txt_status.text = "当前状态:" + __status;
btn_pr.btn_text.text = "录制";
StreamInfo ("NowStop");
//执行StreamInfo方法..并将参数设置为NowStop;
clearInterval (RecordInterval);
timeNum = 0;
//不录了..要把统计时间清空.
if (__status == "录制完成")
{
Finished ();
}
//这个应该不用偶说了..
}
//方法:空闲或录制完成.
function Finished ()
{
my_ns.close();
//完成了..就要关闭录制.
var thisObj = this;
var FinishAlert:MovieClip = _root.attachMovie ("Alert", "FinishAlert", 100);
//这个是一个弹出框.具体看库里的MC:Alert.
with (FinishAlert)
{
alertTitle.html = true;
alertTitle.htmlText = "" + "录制完成!" + "";
info.text = "录制完成..请选择下一步操作."
_x = video_r._x + (video_r._width - _width) / 2;
_y = video_r._y + (video_r._height - _height) / 2;
btn_sub.btn_txt.text = "播放";
btn_cln.btn_txt.text = "重录";
btn_sub.onRelease = function ()
{
thisObj.PlayVideo ();
thisObj.closeAlert (FinishAlert);
}
btn_cln.onRelease = function ()
{
thisObj.Record ();
thisObj.closeAlert (FinishAlert);
}
closed.onRelease = function ()
{
thisObj.closeAlert (FinishAlert);
}
}
btn_pr.enabled = false;
//把按钮设为不可点.
}
//方法:录制完成.
function closeAlert (__alert:MovieClip)
{
btn_pr.enabled = true;
unloadMovie (__alert);
}
//关闭那个Alert用的.
function StreamInfo (__status:String)
{
btn_pr.onRelease = function ()
{
if (__status == "NowRecord")
{
RecordStop ("录制完成");
}
else if (__status == "NowStop")
{
Record ();
}
else if (__status == "NowPlay")
{
Record ();
}
}
}
//嘿嘿..如果把上面的仔细看了的话这个就不用我说了吧.
function PlayVideo ()
{
txt_status.text = "当前状态:" + "正在播放...";
StreamInfo ("NowPlay")
video_r._visible = false;
video_p._visible = true;
video_p.attachVideo (my_ns);
//将视频载到播放窗口中.
my_ns.play (videoName);
//开始播放.
btn_pr.btn_text.text = "重录";
my_ns.onStatus = function (PlayInfo)
{
if (PlayInfo.code == "NetStream.Play.Stop")
{
my_ns.seek (0);
my_ns.pause();
txt_status.text = "当前状态:" + "播放完成...";
}
}
//流状态信息...详细的请自己 trace (PlayInfo.code);
}
//方法:播放视频.
//需要注意的是用FMS播放的时候不用写路径.因为FMS录的视频直接存在FMS默认的流文件目录里了.
//录的视频的存放路径:FMS安装目录:/application/站点/streams/_definst_
如果上面看个差不多了可以自己动手做一下了.祝大家好运 (By:KeeRula)(:
分享到:
相关推荐
"FMS视频录制监控"的标题表明我们正在讨论如何利用FMS来实现视频录制和监控功能。下面将详细阐述FMS在视频录制和监控中的应用以及其核心特性。 FMS视频录制功能: 1. **实时录制**:FMS支持RTMP(Real-Time ...
【描述】:虽然描述中没有提供具体的信息,但我们可以推测博主"tonyliu8731"可能分享了一篇关于如何利用FMS进行屏幕共享录制的原创博文。在ITeye博客平台上,这类技术分享通常会包含源代码示例、步骤指导和可能遇到...
它利用FMS的强大功能,为用户提供高质量、低延迟的视频会议体验,适应现代远程协作的需求。通过不断的优化和创新,这样的系统将在未来的企业通信、在线教育、远程医疗等领域发挥越来越重要的作用。
本文将详细介绍如何利用FMS服务器(Flash Media Server)和Flex技术实现在线视频聊天功能。FMS服务器是一种强大的实时流媒体服务器,它支持多种实时通信协议,包括RTMP(Real-Time Messaging Protocol),使得视频和...
### FMS视频实时聊天的核心技术 #### 1. **NetConnection对象** NetConnection 对象是 Adobe Flash Player 和 FMS 之间通信的基础。它负责建立和维护网络连接,通过该对象可以发送数据或接收来自服务器的消息。在...
【FMS多人视频会议系统】是一个利用Flash Media Server (FMS) 技术构建的高效、稳定的多人在线视频交流平台。这个系统的核心是FMS,它是由Adobe开发的一款服务器软件,专门用于实时流媒体处理,支持音频、视频的直播...
总之,"FMS视频聊天程序"是基于Adobe Flash Media Server和Flash技术构建的实时视频通讯解决方案,适用于在线教育、社交网络、企业协作等多个场景。虽然随着HTML5等新技术的发展,Flash的使用逐渐减少,但FMS的原理...
通过FLEX,我们可以方便地实现视频录制功能,并将录制的视频上传到FMS服务器。FMS服务器作为后台,负责接收、存储和分发视频流。整个过程涉及了客户端的摄像头访问、视频录制、网络传输,以及服务器端的安装和配置等...
开发者可以利用FMS2来构建各种多媒体应用,如在线视频平台、互动视频聊天、视频点播服务等。 开发FMS应用通常涉及到以下几个关键知识点: 1. **RTMP协议**:理解RTMP协议的工作原理是至关重要的,包括如何建立连接...
【FMS.zip_fms】是一个压缩包,包含了与FMS(Flash Media ...通过深入学习这个FMS教程,你可以掌握搭建和管理流媒体服务器的基本技能,以及如何利用FMS实现视音频的录制和传输,为你的项目提供强大的媒体服务支持。
通过深入研究提供的FMS视频会议源代码,开发者不仅可以学习到如何利用FMS构建视频会议系统,还可以理解实时流媒体处理、网络通信优化以及多用户同步等关键技术。不过要注意,实际项目中可能需要根据业务需求对源代码...
在这个“Flex FMS 发送和接收视频”的实例中,我们将深入探讨如何利用Flex技术和FMS进行视频的发送与接收。 1. **Flex框架介绍** Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。...
这个项目提供了一个简单示例,演示了如何利用Flex进行摄像头和音频的捕获与录制,以及如何将这些内容实时推送到FMS服务器进行广播。下面将详细介绍这个系统的工作原理和关键知识点。 1. **Flex**:Flex是Adobe推出...
本教程将深入探讨如何管理和利用FMS进行高效的内容发布,以及如何开发基于Flash的媒体应用程序。 一、FMS基础概念 1.1 FMS架构:FMS采用分布式架构,由核心服务器、边缘服务器等组成,能处理大规模的并发流媒体...
FMS2.0,全称Flex Media Server 2.0,是一款强大的流媒体服务器软件,能够处理、分发和优化实时音频、视频流,广泛应用于在线教育、直播服务、企业内部通讯等多个领域。 教程首先会引导读者了解FMS2.0的基础概念,...
- **产品定位**:Adobe Flash Media Server (FMS) 是一款专为实时音视频流传输设计的服务器软件,能够支持高质量的流媒体发布及接收。它适用于构建富媒体应用、在线教育平台、直播系统等场景。 - **主要功能**:FMS...
部署应用程序包括在服务器上注册应用程序、复制服务器端脚本文件到服务器,并可能需要打包服务器端文件,利用FMS提供的far.exe工具进行部署。 总结起来,《FMS3.5开发指南》为开发者提供了一个清晰的路径,从基础...
在开发实践部分,刘亚飞会分享如何利用.NET和FMS构建实际的项目,如在线视频点播系统、实时互动直播平台等。这将帮助读者将理论知识转化为实际技能,提高解决实际问题的能力。 总之,《.NET for Flash FMS 动态网站...
Flex Media Server (FMS) 是Adobe公司开发的一款流媒体服务器软件,主要负责处理和分发实时音频、视频内容。FMS中文帮助文档是为开发者提供的一份详细指南,旨在帮助他们理解和利用Flex与FMS之间的交互,从而实现...
此外,案例开发还包括了如何创建可交互的FMS连接、基于FMS的流媒体播放程序、在线视频录制与回放以及如何利用远程共享对象实现多人实时在线聊天的详细步骤。这些系列文章深入浅出地讲解了从零开始构建这样一个系统的...