双人视频交互主界面代码

/*
*项目功能:视频聊天(FMS)
*开发人:roy(ilikedesign2003@yahoo.com.cn)
*时间:2007/12/18
*其它:完全图快,没想过以后的扩展,我的想法是以后要写提示框/表情/用户列表三个类,这样模块之间耦合性低,并方便扩展.希望有砖多多扔我
*/

var server_uri:String = "rtmp://192.168.1.26/chat";
//FMS地址;

//var videoName:String = "Roy";

var my_nc:NetConnection = new NetConnection();
//新建一个连接对象,用来连接FMS;

my_nc.connect(server_uri,id);
//连接FMS;

var my_ns:NetStream = new NetStream(my_nc);
//新建流,用来捕获和播放视频;
var my_ns2:NetStream = new NetStream(my_nc);
var my_cam:Camera = Camera.get();
video_r.attachVideo(my_cam);
//获得慑像头,并将摄像头获取的视频载入到video_r里.

my_cam.setQuality (0, 50);
//设置带宽和质量;

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("空闲中");
   my_nc.call("getUserList", null);
} else {
   trace("错误:服务器未启动或URI输入错误.");
}
};
my_nc.say_UserList = function(result:Array) {
//trace(result[0]);
//append(result[0]+" 1 : "+result[1]+" 2 : "+result[2]);
//pushMoney(result[0],result[1]);
userlist_txt.text = result;
myList.dataProvider = result;
trace(result);
};


video_r._visible = true;
video_p._visible = false;
my_ns.publish(id,"record");
//btn_pr.btn_text.text = "停止";
//RecordInterval = setInterval (RecordTime, 1000);
txt_videoname.text = "视 频 名:"+id;

video_p._visible = true;
video_p.attachVideo(my_ns2);
my_ns2.play(otherId);
//btn_pr.btn_text.text = "重录";
my_ns2.onStatus = function(PlayInfo) {
if (PlayInfo.code == "NetStream.Play.Stop") {
   my_ns2.seek(0);
   my_ns2.pause();
}
};


var chat_so:SharedObject = SharedObject.getRemote("coo", my_nc.uri, false);
chat_so.onSync = function() {
if (chat_so.data.text != undefined) {
   append(chat_so.data.text);
}
};
chat_so.connect(my_nc);

chatPush_btn.onPress = addchat;

function addchat() {
var addstr:String = chatIn_txt.text;
chat_so.data.text = "<font color='#ff6600'><b>"+id+"</b></font><font color='#000000'> 说 :"+addstr+"</font>";
//trace(chat_so.data.text);
chatIn_txt.text = "";
}


function append(msg):Void {
usershow_txt.htmlText += msg;
//trace(usershow_txt.htmlText);
usershow_txt.scroll++;
}

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
   addchat();
}
};

服务端:

MAXCONNECTIONS = 100;

application.onAppStart = function() {
    //在线用户列表 )
//application.onLineNum = 0;
    application.onLineUserList = [];    //在线用户列表
}
application.onConnect = function (client,name){

client.name = name;
this.onLineUserList.push(client.name);
//trace("上来一个!!!");
//trace(client.ip)
client.getUserList = function(){
   application.broadcastMsg("say_UserList", application.onLineUserList);
}
trace("Connet name : " + client.name + client.ip );
if(this.onLineUserList.length>=MAXCONNECTIONS){
   //application.rejectConnection
   application.rejectConnection(client);
}
return true;

}

application.onDisconnect = function (client){

//this.onLineNum--;
  
    //this.freePeople.shift(client.name);
trace("Disnet name : "+client.name+" IP : "+client.ip+ ' 在线人数:' + this.onLineUserList.length);
trace("onLineUserList :" + this.onLineUserList);
this.onLineUserList.shift(client.name);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值