自己查资料刚做的
有些地方还需要改进。。
先说下代码吧,希望高手能指出需要改动的地方。。。。
看代码之前有几个类先说下:NetConnection和FMS建立连接的类,用到的方法是connect(),事件onStatus()。。。还有一个类是和它一起使用的NetStream,订阅视频流。。。。。
不知道的看下帮助文件
首先建立一个视频,方法是在点库面板的右上的按钮,选择“新建视频”,库里就会多个元件,拖2个到场景中分别命名为mybox,mybox2,在场景中放两个按钮,命名为submit_btn,norm_btn。
在第一帧写如下代码
//BY 烟头
stop();
client_nc = new NetConnection();
client_nc.onStatus = function(info) {
// 利用trace功能将server返回的信息可视化
trace("Level: "+info.level+newline+"Code: "+info.code);
};
client_nc.connect("rtmp://127.0.0.1/chat");//本机IP,chat在FMS下的Application下
rec_so = SharedObject.getRemote("myvideo", client_nc.uri, true);
rec_so.connect(client_nc);
this.cam = Camera.get();//获取摄像头设备
mybox.attachVideo(this.cam);//在mybox中显示
out_ns = new NetStream(client_nc);//建立流
out_ns.attachVideo(this.cam);
//按下submit_btn开始发送视频流
submit_btn.onRelease=function()
{
submit_btn.enabled = false;//设置按钮禁用
norm_btn.enabled=true;//设置按钮可用
setInterval(sendFlv,2000);
}
//接收视频流
setInterval(acceptFlv,2000);
mybox.attachVideo(this.cam);
function sendFlv() {
out_ns.publish("2222", "record");
_root.rec_so.data[ListItem.text] = "2222";
}
function acceptFlv() {
//标签label的名称就是录像文件的名称
var playFileName = "2222";
//创建新的NetStream流对象,将会用来播放留言信息
in_ns = new NetStream(client_nc);
//通过NetStream.play方法播放server上的flv文件
in_ns.play(playFileName);
//Video对象mybox作为视频流的播放载体,使媒体流可视化
mybox2.attachVideo(in_ns);
}
//按norm_btn按钮择中断发送视频流
norm_btn.onRelease = function(){
this.cam = Camera.get();
out_ns.close();
in_ns.close();
in_ns=null;
submit_btn.enabled = true;
norm_btn.enabled = false;
}
然后在FMS下的Application文件夹下建立chat文件夹,再将flash文件夹的Samples and Tutorials\Samples\Components\FLVPlayback中的main.asc文件拷到chat文件夹中
然后启动FMS
测试
OK 不懂的问吧
有个问题是视频流不连贯,现在是2秒一次,我试过0.5秒和5秒,都不连贯,有什么解决方法么。。。??
源文件就不发了
想要的再跟贴吧 很简单的
源文件:
视频alpha.rar参与讨论