一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

基于red5的在线视频录制实例

时间:2011-12-06 编辑:简简单单 来源:一聚教程网

顶着压力,昨天晚上研究了一个晚上red5和as3发现还是蛮有意思的
red5和fms都是个不错的东西,发现在压力下学东西学起来特别快哈

 

 代码如下 复制代码

//预定义声明

import mx.utils.Delegate;

//创建一个基本的网络连接对象

var nc:NetConnection = new NetConnection();

//连接到本地的Red5服务器

nc.connect("rtmp://localhost/online");

//将已和red5服务器建立连接的nc传递给NetStream

var ns:NetStream = new NetStream(nc);

//从摄像头和麦克风取得信息

var cam:Camera = Camera.get();

var mic:Microphone = Microphone.get();

//初始化摄像头和麦克风,调用函数

setupCameraMic();

//保存上次录制的内容,并进行清空

var lastVideoName:String = "";

//监听开始录制和停止录制两个按键的点击动作并进行相应的处理

playButton.addEventListener("click", Delegate.create(this, playClick));

stopButton.addEventListener("click", Delegate.create(this, stopClick));

//定义开始录制的playclick函数

function playClick():Void

{

//此flv文件是保存在 webapps/oflaDemo/streams/文件夹

//将摄像头和麦克风赋给ns

ns.attachVideo(cam);

ns.attachAudio(mic);

//将摄像头信息赋给视频显示窗口,这样我们可以即时看到信息

videoContainer.attachVideo(cam);

// 此处是定义存储名字的,用随机数目获得一个唯一的文件名

lastVideoName = "red5RecordDemo_" + random(getTimer());

ns.publish(lastVideoName, "record");

//锁定开始按键使其失效

playButton.enabled = false;

//锁定停止按键使其生效

stopButton.enabled = true;

}

function stopClick():Void

{

//关闭ns与red5的连接

ns.close();

//并清空视频显示窗口

videoContainer.attachVideo(null);

videoContainer.clear();

//锁定开始按键使其生效

playButton.enabled = true;

//锁定停止按键使其失效

stopButton.enabled = false;

//播放已经录制的视频

playLastVideo();

}

 

function playLastVideo():Void

{

// 传递录制的视频信息给视屏显示窗口

videoContainer.attachVideo(ns);

//回访已经上次录制的视频片段

ns.play(lastVideoName);

}

function setupCameraMic():Void

{

//启动摄像头

cam = Camera.get();

//设置尺寸

cam.setMode(320, 240, 30);

//设置录制质量

cam.setQuality(0,70);

//启动麦克风

mic = Microphone.get();

mic.setRate(44);

}

热门栏目