Flash教程:教你用FMS在线录制视频

教程|在线

准备工具:

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_

如果上面看个差不多了可以自己动手做一下了.祝大家好运

时间: 2024-11-03 20:58:50

Flash教程:教你用FMS在线录制视频的相关文章

我乐网关站16天内幕揭秘:祸起在线录制

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 "违规视频是通过我乐网的在线录制这个产品发布的" "我乐网正在对所有视频数据进行维护,并对系统进行大规模升级.由于数据量庞大,需要一定时间,请广大用户原谅." 这是视频分享网站我乐网的首页公告.从6月4日关站,到6月9日发布"迟到"的公告,用户和访客已经连续12天看到这则未标注恢复开放日期的公告.根据目前掌握的信息来看,用户可能还要继续等待. 截止6月20日上午7:50分,我乐网的首页依然显

XML动态菜单flash教程

大家都喜欢XML,因为它省事,我平时做东西也尽可能的用XML,因为实在是日后更新修改太方便了,都不用动fla源文件. 本XML系列教程将分三部分发布,到最后一期我们将拥有一个功能全面,更加友好的XML菜单.本教程这个第一期涉及到了一些XML的基础知识. 这里我们要做的效果是一个纵向排列的动态XML的菜单,并且当鼠标滑动到菜单上显示相应的缩略图,这个我们在很多摄影作品展示flash网站经常见到的.在线展示:http://www.keyframe1.com/tute/xmlMenu/ 第一步, 分析

微信公开课发布微信官方教程:教你用好微信JS-SDK接口

微信公众平台开放JS-SDK(微信内网页开发工具包),说明文档已经有相关使用方法和示例了,很多同学觉得不是很直观,为此微信公开课发布微信官方教程:教你用好微信JS-SDK接口. 1.分享类接口:支持获取"分享到朋友圈"."发送给朋友"."分享到QQ"和"分享到微博"按钮的用户点击状态,同时支持自定义分享内容.     小编解读:说起分享接口应用,最常见的莫过于公众号文章分享.通过分享按钮,用户可以将自己喜欢的文章分享给微信好友

Flash教程实例:如何制作别样的绿

  设置影片属性;使用"文字工具"写入文字;使用帧动作设置动作;使用帧属性设置帧的属性;创建新元件.本文对Flash教程实例 :如何制作别样的绿进行了具体阐述供阅读. [步骤] (1) 启动Flash MX 2004,如果"属性"面板没有打开,可选择菜单栏中的"窗口"|"属性"命令打开它.在"属性"面板中,设置动画尺寸大小为600×300px.确认 "帧频"文本框中的数值为12.&quo

PS请帖制作教程 教你用photoshop制作电子请帖

  很多人会选用photoshop制作新婚请帖,虽然制作电子请帖的软件非常多,但如果你的PS技巧很赞的话,那么便能制作出绝对独家的电子请帖,本文小编就来教大家如何用photoshop制作电子请帖. 先来看看效果图: PS请帖制作教程 教你用photoshop制作电子请帖 1. 新建1024*768文档,白色背景,新建图层,创建辅助线,使用矩形选框工具M创建选区,填充R:222,G:0.B:0红色背景.2. 复制图层,选择钢笔工具P创建路径添加矢量蒙版,添加图层样式:斜面浮雕. 2.打开素材图,C

ppt插入flash教程

  我们通常都是在PPT中插入视频超链接或者其他视频格式,也许想要插入FLASH的朋友不太懂操作,其实也挺简单的,只要用对控件就好了,下面是PPT插入FLASH教程步骤. PowerPoint如何加入FLASH ppt插入flash教程 1,通过插入-对象-来自文件插入FLASH文件,如图 2,选中插入的对象,再一次-插入-动作设置-激活内容(动作设置选项可以选择单击鼠标或鼠标经过) 3,放映PPT时单击插入的文件对象(或鼠标经过)时即可播放SWF文件. 这种PPT插入FLASH方法的原理: 通

别急不是乱码图!图文教程教你制作“幸福密码”

  是否经常在手机上见到微博或朋友圈疯传一些"乱码图"?当你闭上一只眼睛,用一只眼睛从手机充电口忘屏幕就恍然大悟.原来乱码中隐藏着"幸福密码",也许在情人节是某人的表白喔! 下面先来一起看一张图,如上面所说--闭上一只眼睛从充电口手机/平板的充电口看屏幕(如果您此时在用PC浏览,可以拿起手机扫一下文章最后的二维码看图),再把手机转90度从音量键(或音量键的另外一侧)看,有没有发现"乱码图"中隐藏的内容呢?看完后大家的第一印象肯定是--太糊弄人了!

Office教程 教你在word2007中画长横线

  你可能会在word中用一种方法画横线,也许是两种,也许是三种,那么如果一下子让你用四种方法画出长横线你会吗?如果不会的朋友们就来看看这篇教程吧. Office教程 教你在word2007中画长横线 方法一:切换到[开始]选项卡,单击[下划线]按钮的下拉列表,有多种线供你选择,这里选择直线.这样当你开始打字时,打出的字自然带上横线.如果只想要线条,一直按[空格键]即可. 方法二:切换到[插入]选项卡,在[插图]功能选项卡中,单击[形状]按钮,在弹出的下拉列表中选择[直线],这时鼠标光标变为十字

flash教程:Dragging and Dropping Drop Targets实例教程

flash教程:Dragging and Dropping  Drop Targets实例教程 拖放使用下拉目标 拖放对象涉及....拖放对象.该物体的电影剪辑,并延伸本教程时只需拖动的影片剪辑.与拖动一个对象,你是放弃对象的位置将触发一个事件.的位置,你下降的对象是一个影片剪辑,以及,您将学习本教程如何触发的事件根据位置的对象是下降了. 为了帮助您看看我讲的,将一个彩色画笔,并将其放置在电脑上在以下动画: 当你拖彩色画笔,把它丢在电脑上,你应该已经注意到,电脑的颜色改变,以反映颜色的刷子.您将