准备工具:
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+FLASH+在线视频录制+ASP+Access. <br>编者的话 <br>自己骗写的,下载本文件的朋友请自己研究,该注释的,我已经打好了详细注释,修改不困难,这样还不懂的话我也没有办法,另外还附了播放器。 <br>不...
EdhRecPost是一个WEB插件服务项目,提供swf文件形式的插件,能让网页设计者十分容易地在网页中实现在线录制,并保存音频和视频文件到服务器上。比如:可以学校网站上增加学生在线表演模块,在各种BBS、BLOG中增加...
FMS视频录制监控,播放,完美实现Demo。
最近跟人公司的一个项目 但是由于做完他们都说不要 外包给别人!然后就分享上来!~
Fms 视频录制屏幕共享 附源码.doc
利用fms实现视频聊天程序,希望对和我一样的菜鸟们能有些帮助
这是一个压缩包,包含以下内容: 1.FMS3中文翻译 2.FMS教程 3.教程:教你用FMS在线录制视频 4.评估FMS视频录制的带宽需求来采用合适的尺寸和速率 5.视频录制系统的注意事项 6.FMS4开发指导官方白皮书
利用fms服务器和flex来做在线视频聊天.docx
一个flash与fms结合录制视频的例子
以下为引用的内容: private function onPublishClick(evt:MouseEvent):void { nc = new NetConnection();...以live的形式发布的流不会在FMS里生成.fla文件,不同于“record”录制视频流生成.flv的视频文件。
基于FMS的网络视频会议系统设计 基于FMS的网络视频会议系统设计[1].pdf
实现网页在线视频聊天,环境fms2,flash cs4
fms,flash,视频聊天fms,flash,视频聊天fms,flash,视频聊天
fms视频会议源代码,Flash + FMS
网博Fms在线直播系统网博Fms在线直播系统网博Fms在线直播系统网博Fms在线直播系统网博Fms在线直播系统网博Fms在线直播系统网博Fms在线直播系统网博Fms在线直播系统网博Fms在线直播系统
利用FLEX编写的摄像头录制视频文件,并上传到FMS服务器,同时就如何安装FMS服务器及配置进行说明.
多人视频会议系统,基于FMS的,包含全部源码。
首先下载fms服务器安装好,并在fms安装目录的applications目录下新建一个test_video文件夹目录,一定要与flext程序中rtmp://127.0.0.1/test_video的test_video要一致,fms服务器启动后,执行flex程序,即可实现
实现点对点视频聊天,利用UPD协议可穿透多层NAT,支持高清摄像头,可扩展为更多应用
FMS开发Flash Media Server 入门教程 我把我以前的那些FMS学习笔记整理了一下,做了下修改,成了一页的FMS教程,方便想学FMS的...视频录制啊,flash聊天室啊,在线视频会议啊啊, 网络游戏? 不管怎样先安个试试吧