经过一段时间的研究,视频聊天在今天终于告一段落了,特此发码 <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="800" height="600" creationComplete="init()"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <!--[CDATA[ import mx.collections.ArrayCollection; import mx.collections.IList; import mx.collections.XMLListCollection; import mx.controls.Alert; private var IP:String; private var redPath:String; private var nc:NetConnection; private var ns:NetStream; private var ns2:NetStream; private var cam:Camera private var mic:Microphone; private var listSO:SharedObject; private var msgSO:SharedObject; [Bindable] private var userArr:ArrayCollection; private var sendMsg:String; private var now:Date; private var userIDObj:Object; private var video:Video; private function init():void{ IP="192.168.1.100"; redPath="rtmp://"+IP+"/makeFriend"; nc=new NetConnection(); now=new Date(); main.visible=false; login.visible=true; userList.visible=true; chatVideo.visible=false; } private function startConnect():void{ nc.addEventListener(NetStatusEvent.NET_STATUS,statusHandler); nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityHandler); nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncHandler); nc.connect(redPath,username.text,userpwd.text); nc.client=this; } private function statusHandler(e:NetStatusEvent):void{ if(e.info.code=="NetConnection.Connect.Success"){ Alert.show("登录成功"); login.visible=false; main.visible=true; publishVideo(); setListSO(); setMsgSO(); btnSend.addEventListener(MouseEvent.CLICK,sendBtnByClick); main.addEventListener(KeyboardEvent.KEY_DOWN,sendBtnByKey); } if(e.info.code=="NetConnection.Connect.Failed") { Alert.show("连接失败"); } if(e.info.code=="NetConnection.Connect.Closed") { Alert.show("账号密码不正确,请重新输入!!!"); } } private function securityHandler(e:SecurityError):void{ Alert.show("低调的安全沙箱错误"); } private function asyncHandler(e:AsyncErrorEvent):void{ Alert.show("低调的异步错误"); } private function publishVideo():void{ ns=new NetStream(nc); cam=Camera.getCamera(); mic=Microphone.getMicrophone(); myVideo.attachCamera(cam); ns.client=this; ns.addEventListener(NetStatusEvent.NET_STATUS,statusHandler); ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncHandler); ns.attachCamera(cam); ns.attachAudio(mic); ns.publish(username.text,"live"); } private function setListSO():void{ listSO=SharedObject.getRemote("listSO",nc.uri,false); listSO.connect(nc); listSO.addEventListener(SyncEvent.SYNC,listSOSyncHandler); } private function setMsgSO():void{ msgSO = SharedObject.getRemote("msgSO", nc.uri, false); msgSO.addEventListener(SyncEvent.SYNC, msgSOSyncHandler); msgSO.connect(nc); } private function msgSOSyncHandler():void{ for (var i in msgSO.data) { txtmessage.text =txtmessage.text+ msgSO.data[i]; } } private function listSOSyncHandler(e:SyncEvent):void{ showUserList(); userList.addEventListener(MouseEvent.CLICK,updateChatTo); userList.addEventListener(MouseEvent.DOUBLE_CLICK,updateVideoShow); } private function showUserList():void{ userArr=new ArrayCollection(); for(var tmp in listSO.data){ userArr.addItem(listSO.data[tmp]); } userArr.addItemAt("所有人",0); this.userList.dataProvider=userArr; } private function updateChatTo(e:MouseEvent):void{ main.title="您正与"+userList.selectedItem+"聊天中"; } private function updateVideoShow(e:MouseEvent):void{ if(userList.selectedItem=="所有人"||userList.selectedItem=="") { Alert.show("不能和所有人进行视频聊天。"); return ; } userList.visible=false; chatVideo.visible=true; video=new Video(); ns2=new NetStream(nc); ns2.addEventListener(NetStatusEvent.NET_STATUS,statusHandler); ns2.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncHandler); ns2.play(userList.selectedItem); ns2.client=this; video.attachNetStream(ns2); video.width=288; video.height=218; chatVideo.addChild(video); chatVideo.play(); } private function sendBtnByClick(e:MouseEvent):void{ sendMsge(); } private function sendBtnByKey(e:KeyboardEvent):void{ if(e.keyCode==Keyboard.ENTER&&e.ctrlKey==true) { sendMsge(); } } private function sendMsge():void{ var mess:String=username.text+"说:"+sendmessage.text+"\r\n"; if(username.text==userList.selectedItem){ Alert.show("您不能与自己聊天,请重新更换聊天对象"); return; } if(sendmessage.text==""){ Alert.show("发送信息不能为空"); return ; } if(userList.selectedItem=="所有人"){ nc.call("broadcastUserMsg",null,mess); sendmessage.text=""; return; } if(userList.selectedItem!=null){ nc.call("msgFromPrivate",null,mess,username.text,userList.selectedItem); sendmessage.text=""; } } public function showMsgByPrivate (msg:String):void{ txtmessage.text=txtmessage.text+msg; } ]]--> </fx:Script> <s:Panel id="login" title="欢迎您的访问" width="100%" height="100%"> <s:Label x="381" y="109" text="登 录" width="192" height="35" fontSize="25" verticalAlign="middle" textAlign="center" fontWeight="normal" fontStyle="normal"/> <s:Label x="353" y="167" text="用户名:" width="73" height="24" verticalAlign="middle" fontSize="16"/> <s:Label x="353" y="212" text="密 码:" width="73" height="24" verticalAlign="middle" fontSize="16"/> <s:TextInput id="username" x="446" y="168" width="154" textAlign="left" maxChars="18"/> <s:TextInput id="userpwd" x="445" y="214" width="154" textAlign="left" displayAsPassword="true" maxChars="18"/> <s:Button x="373" y="257" label="登录" id="btnsub" click="startConnect()"/> <s:Button x="501" y="257" label="取消" id="cancel" click="navigateToURL(new URLRequest('javascript:window.close()'),'_self')"/> </s:Panel> <s:Panel id="main" width="100%" height="100%"> <mx:VideoDisplay id="myVideo" x="468" y="276" width="288" height="217" /> <s:Group x="468" y="24" width="288" height="218"> <mx:VideoDisplay id="chatVideo" width="100%" height="100%"/> <s:List id="userList" width="100%" height="100%" doubleClickEnabled="true" doubleClick="updateVideoShow(event)" /> </s:Group> <s:Button id="btnSend" x="279" y="519" label="发送"/> <s:TextArea enabled="false" id="txtmessage" x="46" y="26" width="402" height="292"/> <s:TextArea id="sendmessage" x="47" y="348" width="397" height="145"/> <s:Button id="btnexit" x="374" y="519" label="退出"/> </s:Panel> </s:Application>
您还没有登录,请您登录后再发表评论
VB.NET网络视频聊天室源码是一个基于Visual Basic .NET(VB.NET)开发的项目,它实现了在线视频和音频通信的功能,适用于创建实时互动的聊天环境。这个源码提供了一个研究和学习网络通信、多媒体处理以及多用户交互...
网站+手机+电脑+H5可打包APP、视频语音聊天、注册、添加好友、群聊创建、群管理、文件在线预览、群公告、后台管理 功能说明: 支持单聊和群聊,支持发送表情、图片、语音、视频和文件消息 单聊支持消息已读未读的...
支持简易后台管理,包括用户管理、群组管理、系统设置等 服务器要求: 所需环境 版本 备注 推荐版本 linux >= 7.0 以下的版本未做测试 7.9 nginx >= 1.17 最新的 php >= 7.1 不兼容8和7.4 7.3 mysql >= 5.7 必须...
在本项目“C# QQ聊天源码”中,我们看到一个使用C#实现的简易版QQ聊天程序,它具备了发送文本消息、文件、图片以及视频(此处视为特殊的图片格式)的基本功能。值得注意的是,由于源码设计的原因,该程序不支持语音...
一款国外的聊天软件,聊天比较简洁,易安装,可以与网站 或是社区快速衔接,更好的与网友互动,增加网站活跃度,提升网站的浏览量。 简介 ChatNet 是一个成熟的PHP 群聊室和私人聊天脚本,适用于...在聊天中播放视频和
【简易版qq源代码】项目是一个基于Java编程语言实现的简单即时通讯软件,它采用了客户端-服务器(Client-Server)架构,旨在模仿QQ的基本功能,包括自动回复、表情发送和聊天等。在这个项目中,我们可以深入学习到...
XiaYiYeChat是一个简易聊天室设计的源码项目,它主要由Java语言实现。项目包含88个文件,其中涵盖了应用程序开发中常见的多种类型。具体来说,项目中包含了32个图形界面素材PNG图片文件,这些图片主要用于美化用户...
在本压缩包“简易微信客户端和服务器源码_聊天通讯.zip”中,包含的是一个简单的微信客户端和服务器的源代码实现。这个项目旨在提供基础的聊天通讯功能,帮助开发者理解和学习如何构建类似即时通讯应用的基本架构。...
"原创C#局域网聊天源码P2pUDP"这个标题指出,这是一个基于C#编程语言的、原创设计的局域网聊天应用,它采用了P2P(对等网络)架构,并利用UDP(用户数据报协议)进行数据传输。P2P意味着每个参与者既是客户端也是...
QQ是中国腾讯公司推出的一款主要针对中国用户的即时通讯软件,具有即时消息发送、视频聊天、文件传输等功能。在Java编程语言领域,实现类似QQ功能的聊天程序需要利用Java的网络编程技术、多线程处理以及GUI(图形...
该资源是一个基于MFC(Microsoft Foundation Classes)框架实现的简易QQ聊天程序的源代码,主要目的是供学习者了解和研究TCP与UDP通信在聊天应用中的实现。MFC是微软提供的一种C++类库,用于构建Windows应用程序,它...
102套python源码实例含Py源代码,提供python语言学习者。目录简述: 根据出生日期判断你的星座 根据出生日期判断生肖 使用Python制作简易数字累加器 商品竞猜价格 根据计算机硬盘、主板、CPU生成注册信息 语音版东北...
.NET 4.5简化了WebSocket的处理,不用再单独用socket去解析RFC6455的协议。...Windows .NET平台上要使用WebSocket,.NET版本不低于4.5、IIS至少8、IIS要启用WebSocket。 本资源为练习代码,比较简单,适合初学者。
5. **powertalkbox.zip**:可能是具有更多高级特性的聊天工具,如文件传输、语音/视频聊天等。它可能使用了.NET Framework的多媒体支持,如Windows Forms或WPF(Windows Presentation Foundation)用于桌面应用,...
java简易版开心农场源码 智慧北京 项目角色 产品经理(产品狗,产品汪) 决定开发什么东西, 需求文档(原型图) 程序员(码农, 程序猿, 攻城狮) 负责开发 Android开发工程师 IOS开发工程师 服务器开发工程师JavaEE/...
学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国学校实现网上办公,提高效率,了解民众呼声提供全站程序. ...
学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国学校实现网上 办公,提高效率,了解民众呼声提供全站程序. ...
学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国政府机构实现网上 办公,提高效率,了解民众呼声提供全站程序...
16、Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 17、Silverlight(19) - 2.0通信之调用REST服务,处理JSON格式, XML格式, RSS/ATOM格式的数据 18、Silverlight(20) - 2.0通信之...
交友网站正式版栏目频道有,征婚,圈子,诊所,活动,约会,聊天,视频,博客,相册,搜索,故事。是建立大型征婚婚恋门户网站的优惠网站系统,交友网站智能建站系统,征婚网站自助建站整站程序. 完美的asp编程的网络交友征婚...
相关推荐
VB.NET网络视频聊天室源码是一个基于Visual Basic .NET(VB.NET)开发的项目,它实现了在线视频和音频通信的功能,适用于创建实时互动的聊天环境。这个源码提供了一个研究和学习网络通信、多媒体处理以及多用户交互...
网站+手机+电脑+H5可打包APP、视频语音聊天、注册、添加好友、群聊创建、群管理、文件在线预览、群公告、后台管理 功能说明: 支持单聊和群聊,支持发送表情、图片、语音、视频和文件消息 单聊支持消息已读未读的...
支持简易后台管理,包括用户管理、群组管理、系统设置等 服务器要求: 所需环境 版本 备注 推荐版本 linux >= 7.0 以下的版本未做测试 7.9 nginx >= 1.17 最新的 php >= 7.1 不兼容8和7.4 7.3 mysql >= 5.7 必须...
在本项目“C# QQ聊天源码”中,我们看到一个使用C#实现的简易版QQ聊天程序,它具备了发送文本消息、文件、图片以及视频(此处视为特殊的图片格式)的基本功能。值得注意的是,由于源码设计的原因,该程序不支持语音...
一款国外的聊天软件,聊天比较简洁,易安装,可以与网站 或是社区快速衔接,更好的与网友互动,增加网站活跃度,提升网站的浏览量。 简介 ChatNet 是一个成熟的PHP 群聊室和私人聊天脚本,适用于...在聊天中播放视频和
【简易版qq源代码】项目是一个基于Java编程语言实现的简单即时通讯软件,它采用了客户端-服务器(Client-Server)架构,旨在模仿QQ的基本功能,包括自动回复、表情发送和聊天等。在这个项目中,我们可以深入学习到...
XiaYiYeChat是一个简易聊天室设计的源码项目,它主要由Java语言实现。项目包含88个文件,其中涵盖了应用程序开发中常见的多种类型。具体来说,项目中包含了32个图形界面素材PNG图片文件,这些图片主要用于美化用户...
在本压缩包“简易微信客户端和服务器源码_聊天通讯.zip”中,包含的是一个简单的微信客户端和服务器的源代码实现。这个项目旨在提供基础的聊天通讯功能,帮助开发者理解和学习如何构建类似即时通讯应用的基本架构。...
"原创C#局域网聊天源码P2pUDP"这个标题指出,这是一个基于C#编程语言的、原创设计的局域网聊天应用,它采用了P2P(对等网络)架构,并利用UDP(用户数据报协议)进行数据传输。P2P意味着每个参与者既是客户端也是...
QQ是中国腾讯公司推出的一款主要针对中国用户的即时通讯软件,具有即时消息发送、视频聊天、文件传输等功能。在Java编程语言领域,实现类似QQ功能的聊天程序需要利用Java的网络编程技术、多线程处理以及GUI(图形...
该资源是一个基于MFC(Microsoft Foundation Classes)框架实现的简易QQ聊天程序的源代码,主要目的是供学习者了解和研究TCP与UDP通信在聊天应用中的实现。MFC是微软提供的一种C++类库,用于构建Windows应用程序,它...
102套python源码实例含Py源代码,提供python语言学习者。目录简述: 根据出生日期判断你的星座 根据出生日期判断生肖 使用Python制作简易数字累加器 商品竞猜价格 根据计算机硬盘、主板、CPU生成注册信息 语音版东北...
.NET 4.5简化了WebSocket的处理,不用再单独用socket去解析RFC6455的协议。...Windows .NET平台上要使用WebSocket,.NET版本不低于4.5、IIS至少8、IIS要启用WebSocket。 本资源为练习代码,比较简单,适合初学者。
5. **powertalkbox.zip**:可能是具有更多高级特性的聊天工具,如文件传输、语音/视频聊天等。它可能使用了.NET Framework的多媒体支持,如Windows Forms或WPF(Windows Presentation Foundation)用于桌面应用,...
java简易版开心农场源码 智慧北京 项目角色 产品经理(产品狗,产品汪) 决定开发什么东西, 需求文档(原型图) 程序员(码农, 程序猿, 攻城狮) 负责开发 Android开发工程师 IOS开发工程师 服务器开发工程师JavaEE/...
学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国学校实现网上办公,提高效率,了解民众呼声提供全站程序. ...
学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国学校实现网上 办公,提高效率,了解民众呼声提供全站程序. ...
学校网站管理系统正式版助中国各级学校行政单位走上信息化道路,学校单位网站管理系统正式版助中国学校走上网络,为公众服务,学校网站管理系统正式版为中国政府机构实现网上 办公,提高效率,了解民众呼声提供全站程序...
16、Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 17、Silverlight(19) - 2.0通信之调用REST服务,处理JSON格式, XML格式, RSS/ATOM格式的数据 18、Silverlight(20) - 2.0通信之...
交友网站正式版栏目频道有,征婚,圈子,诊所,活动,约会,聊天,视频,博客,相册,搜索,故事。是建立大型征婚婚恋门户网站的优惠网站系统,交友网站智能建站系统,征婚网站自助建站整站程序. 完美的asp编程的网络交友征婚...