/*
*项目功能:视频聊天(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);
相关推荐
在给定的文件信息中,“双人五子棋的Java源代码”是关于开发一个双人五子棋游戏的Java项目,主要关注于游戏界面设计、用户交互处理以及游戏逻辑实现。通过分析提供的代码片段,我们可以深入理解以下核心知识点: 1....
"Block2.frm"可能是双人模式的界面,"Blockopt.frm"可能是游戏设置或选项界面,而"block1.frm"可能是单人模式的主界面。这些窗体文件会定义用户界面的布局、控件(如按钮、文本框)及其交互逻辑。 "GamePhb.frm...
通过分析和研究源代码,我们可以深入理解Delphi编程中的图形界面设计、事件处理、对象交互等核心概念。 【标签】:Delphi 关于Delphi标签,这里主要涉及的是Delphi编程语言和其开发环境的相关知识。Delphi的强项...
坦克大战双人版的核心在于两个玩家可以同时参与游戏,这要求代码处理复杂的交互逻辑。源代码中的关键部分可能包括以下几个模块: 1. **游戏主循环**:这是游戏的骨架,负责接收用户输入、更新游戏状态、绘制游戏...
这个C#双人五子棋小游戏源代码提供了一个学习C#编程、事件处理、图形用户界面设计以及游戏逻辑实现的好例子。通过阅读和理解这段代码,开发者不仅可以加深对C#语言的理解,还能掌握如何构建简单游戏的基本方法。
- **类的作用**:这是程序的主框架类,包含游戏的所有交互逻辑和界面元素。 - **实现的接口**:ActionListener、MouseListener和Runnable,用于处理各种事件和线程操作。 - **成员变量**:定义了各种UI组件,以及...
《双人配合俄罗斯方块beta版(源码).rar》是一个包含了双人合作模式的俄罗斯方块游戏的源代码及可执行文件。这个压缩包主要包括两个文件:双人配合俄罗斯方块beta试玩版.exe和工程源码.rar。通过分析这两个文件,我们...
【标题】"双人对战Java贪吃蛇"是一款基于Java编程语言开发的多人互动游戏。这款游戏是经典的贪吃蛇游戏的升级版,允许两个玩家同时参与,增加了竞技的趣味性和挑战性。开发者通过注释丰富的代码实现了游戏的核心逻辑...
- **UI设计**:使用Qt Designer工具设计游戏界面,包括开始界面、游戏主界面、计分板等元素。 - **颜色和动画效果**:为方块添加不同的颜色以区分类型,并可能加入下落动画提升视觉体验。 6. **编程语言和编译** ...
这些库提供了一套丰富的组件和工具,使得开发者能够创建交互式的图形界面。游戏的核心逻辑将涉及到线程处理,因为蛇的移动和食物的生成需要在主游戏循环中进行,同时还要实时响应用户的输入。 【游戏逻辑】 贪吃蛇...
【VS dos界面双人五子棋】是一款基于DOS环境的两人对弈五子棋游戏,由用户自行编写。这个游戏不包含人工智能(AI)算法,所以它只支持两个玩家通过键盘交互进行对战。尽管如此,游戏在DOS界面的设计上,开发者自认为...
在本案例中,Java的这种特性使得开发双人对战的俄罗斯方块成为可能,开发者可以利用Java的图形用户界面(GUI)库,如JavaFX或Swing,构建游戏界面。 源码中,开发者可能会采用多线程技术来实现双人对战的功能。每个...
4. 用户交互:提供友好的用户界面,包括开始游戏、重玩和退出选项,以及显示当前分数。 5. 错误处理:确保程序能够优雅地处理错误,如非法输入或资源耗尽。 为了实现这个项目,你需要具备基本的C语言编程知识,...
- **游戏循环**:持续运行直到游戏结束,包括游戏初始化、主循环(处理用户输入、更新游戏状态、绘制屏幕)和游戏结束的处理。 - **游戏得分**:为每个玩家记录分数,显示在屏幕上。 8. **错误处理**:良好的错误...
【标题】"VC简单双人对打游戏"是一款基于Visual C++(VC)开发的初级双人交互式游戏。这个游戏的主要目标是为开发者提供一个实践键盘输入响应的平台,通过编写代码来实现两个玩家间的互动对战。 【描述】中的"主要...
3. **GamePhb.frm**:可能代表游戏主界面的表单文件,玩家在此进行游戏的主要操作。 4. **Block2.frm**:可能表示游戏的第二个窗体或特殊功能,如游戏暂停/继续、得分显示等。 5. **MSSCCPRJ.SCC**:这是源代码版本...
"易语言源码易语言双人对战游戏演示源码.rar" 提供的是一个使用易语言编写的双人对战游戏的源代码,对于学习易语言以及游戏开发的初学者来说,这是一个非常有价值的资源。 源码分析: 1. **易语言基础**:易语言的...
项目中通常会有多个源文件和头文件,按照职责划分,如主程序文件、棋盘类、棋子类、事件处理函数等,这样有助于代码的管理和维护。 总的来说,这个“双人博弈五子棋 简单 MFC”项目涵盖了C++编程、图形用户界面...
总的来说,这个项目结合了图形界面编程和游戏设计,是学习OpenGL和交互式程序开发的好例子。通过分析和理解这个项目,开发者可以深入理解如何使用OpenGL进行图形绘制,以及如何利用GLUT简化窗口管理和事件处理。
总的来说,实现一个双人对战的俄罗斯方块游戏涉及了Java编程基础、图形界面设计、游戏逻辑控制、多线程技术等多个方面的知识。通过这个项目,开发者不仅可以提升编程技能,也能体验到游戏开发的乐趣和挑战。如果你对...