`
忧里修斯
  • 浏览: 436936 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

简易视频聊天

    博客分类:
  • flex
阅读更多
文件1、

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FF7999, #FE7F9D]" height="576">
	<mx:Panel x="102" y="86" width="340" height="282" layout="absolute" title="视频发布端">
		<mx:VideoDisplay x="0" y="0" width="320" height="240" id="PublishVideo"/>
	</mx:Panel>
	<mx:Panel x="497" y="86" width="340" height="282" layout="absolute" title="视频接收端" id="playPan">
		<mx:VideoDisplay x="0" y="0" width="320" height="240" id="RecordVideo" />
	</mx:Panel>
	<mx:Button x="243" y="387" label="发布视频" fontWeight="normal" click="onPublishClick()"/>
	<mx:Button x="627" y="387" label="接收视频" fontWeight="normal" click="onRecordClik()"/>
	<mx:Script>
		<![CDATA[
			import flash.events.*;
			
			private var pnc:NetConnection;
			private var rnc:NetConnection;
			private var pns:NetStream; //发布流
			private var rns:NetStream;
			private var cam:Camera;
			private var mic:Microphone;
			private var video:Video;
			
			private function onPublishClick():void
			{
				pnc = new NetConnection();
				pnc.connect("rtmp://192.168.10.135/p2p/mem88/");
				pnc.addEventListener(NetStatusEvent.NET_STATUS,onPublishNetStatusHandler);
				cam = Camera.getCamera();
				mic = Microphone.getMicrophone();
				this.PublishVideo.attachCamera(cam);
			}

			private function onPublishNetStatusHandler(evt:NetStatusEvent):void
			{
				this.lbPublish.text=evt.info.code;
				if(evt.info.code=="NetConnection.Connect.Success")
				{
					pns = new NetStream(pnc);
					pns.attachAudio(mic);
					pns.attachCamera(cam);
					pns.client=this;
					pns.publish("88stream","live");
				}
			}
			
			private function onRecordClik():void
			{
				rnc = new NetConnection();
				rnc.connect("rtmp://192.168.10.135/p2p/mem135/");
				rnc.addEventListener(NetStatusEvent.NET_STATUS,onReordNetStatusHandler);
			}
			
			private function onReordNetStatusHandler(evt:NetStatusEvent):void
			{
				this.lbRecord.text=evt.info.code;
				if(evt.info.code=="NetConnection.Connect.Success")
				{
					rns = new NetStream(rnc);
					rns.client=this;
					video = new Video();
					video.width=320;
					video.height=240;
					video.attachNetStream(rns);
					this.RecordVideo.addChild(video);
					rns.play("135stream","live");  //这里的publishName必须与发布流的流名一致
				}
			}
		]]>
	</mx:Script>
	<mx:Label x="125" y="443" width="304" id="lbPublish"/>
	<mx:Label x="528" y="443" width="296" id="lbRecord"/>
</mx:Application>


2、文件2

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FF7999, #FE7F9D]" height="576">
	<mx:Panel x="102" y="86" width="340" height="282" layout="absolute" title="视频发布端">
		<mx:VideoDisplay x="0" y="0" width="320" height="240" id="PublishVideo"/>
	</mx:Panel>
	<mx:Panel x="497" y="86" width="340" height="282" layout="absolute" title="视频接收端" id="playPan">
		<mx:VideoDisplay x="0" y="0" width="320" height="240" id="RecordVideo" />
	</mx:Panel>
	<mx:Button x="243" y="387" label="发布视频" fontWeight="normal" click="onPublishClick()"/>
	<mx:Button x="627" y="387" label="接收视频" fontWeight="normal" click="onRecordClik()"/>
	<mx:Script>
		<![CDATA[
			import flash.events.*;
			
			private var pnc:NetConnection;
			private var rnc:NetConnection;
			private var pns:NetStream; //发布流
			private var rns:NetStream;
			private var cam:Camera;
			private var mic:Microphone;
			private var video:Video;
			
			private function onPublishClick():void
			{
				pnc = new NetConnection();
				pnc.connect("rtmp://192.168.10.135/p2p/mem135/");
				pnc.addEventListener(NetStatusEvent.NET_STATUS,onPublishNetStatusHandler);
				cam = Camera.getCamera();
				mic = Microphone.getMicrophone();
				this.PublishVideo.attachCamera(cam);
			}

			private function onPublishNetStatusHandler(evt:NetStatusEvent):void
			{
				this.lbPublish.text=evt.info.code;
				if(evt.info.code=="NetConnection.Connect.Success")
				{
					pns = new NetStream(pnc);
					pns.attachAudio(mic);
					pns.attachCamera(cam);
					pns.client=this;
					pns.publish("135stream","live");
				}
			}
			
			private function onRecordClik():void
			{
				rnc = new NetConnection();
				rnc.connect("rtmp://192.168.10.135/p2p/mem88/");
				rnc.addEventListener(NetStatusEvent.NET_STATUS,onReordNetStatusHandler);
			}
			
			private function onReordNetStatusHandler(evt:NetStatusEvent):void
			{
				this.lbRecord.text=evt.info.code;
				if(evt.info.code=="NetConnection.Connect.Success")
				{
					rns = new NetStream(rnc);
					rns.client=this;
					video = new Video();
					video.width=320;
					video.height=240;
					video.attachNetStream(rns);
					this.RecordVideo.addChild(video);
					rns.play("88stream","live");  //这里的publishName必须与发布流的流名一致
				}
			}
		]]>
	</mx:Script>
	<mx:Label x="125" y="443" width="304" id="lbPublish"/>
	<mx:Label x="528" y="443" width="296" id="lbRecord"/>
</mx:Application>
分享到:
评论
1 楼 奔跑的蓝猫 2012-05-10  
楼主你好!请问这两个文件怎么使用啊?
楼主能把源代码发给我下吗?我最近在座的系统中想加入视频对话功能,一直不知如何下手。谢谢!h2pei@163.com

相关推荐

    视频聊天有bug

    c++开发一个简易视频聊天软件,但是遇到了一些问题,很难解决的。希望有同道中人可以指点迷津啊

    课程设计基于Qt制作一个简易聊天软件c++源码(含操作视频+设计报告).zip

    课程设计基于Qt制作一个简易聊天软件c++源码(含操作视频+设计报告).zip课程设计基于Qt制作一个简易聊天软件c++源码(含操作视频+设计报告).zip课程设计基于Qt制作一个简易聊天软件c++源码(含操作视频+设计报告).zip...

    安卓Android基于Socket简易聊天项目开发(源码+运行截图+视频).zip

    安卓Android基于Socket简易聊天项目开发(源码+运行截图+视频).zip 内容概要:安卓Android基于Socket简易聊天项目开发(源码+运行截图+视频).zip 适合人群:具备一定编程基础,准备毕业设计的同学 能学到什么:①如何...

    新手学习简易聊天室

    在IT行业中,聊天室是一种常见的实时通讯应用,它允许用户之间进行实时的文字、语音或者视频交流。通过这个项目,你将有机会实践使用Java语言开发聊天室的相关技术。 【描述】:“一款简单的聊天室代码,可以用来...

    简易聊天程序(而且可以画图)

    【简易聊天程序(而且可以画图)】 这个项目是一个简易的聊天程序,它不仅支持基本的文字交流,还具有画图功能,使得用户可以在聊天过程中进行简单的图像创作和分享。这样的设计使得通信更具趣味性和互动性,类似于...

    HTML5基于websocket的仿微信聊天,即时聊天IM前后端实现,简易聊天室源代码分享

    HTML5基于websocket的仿微信聊天,即时聊天IM前后端实现,简易聊天室源代码分享HTML5基于websocket的仿微信聊天,即时聊天IM前后端实现,简易聊天室源代码分享HTML5基于websocket的仿微信聊天,即时聊天IM前后端实现...

    简易基于socket的聊天室系统

    而对于功能的需求,针对所要开发的软件,主要是文本聊天、文件传输、视频聊天和电脑桌面实时发送的功能。用户首先根据需要连接的对象确定对方的IP地址和需要进行连接的端口号。服务器在开启侦听并接收到连接请求之后...

    vb.net 网络 视频 聊天室 源码

    VB.NET网络视频聊天室源码是一个基于Visual Basic .NET(VB.NET)开发的项目,它实现了在线视频和音频通信的功能,适用于创建实时互动的聊天环境。这个源码提供了一个研究和学习网络通信、多媒体处理以及多用户交互...

    实用简易聊天工具资源

    【实用简易聊天工具资源】是本文将要探讨的重点,它是一款受到用户好评并值得推荐的聊天工具。在当今数字化时代,沟通与协作的重要性不言而喻,因此一款易用、功能丰富的聊天工具对于个人和团队来说都至关重要。下面...

    使用JS+socket.io+WebRTC+nodejs+express搭建一个简易版远程视频聊天

    在本文中,我们将深入探讨如何使用JavaScript、socket.io、WebRTC、Node.js和Express搭建一个简易版的远程视频聊天应用。这些技术都是现代Web开发中的关键组件,它们各自扮演着不同的角色,共同构建出实时、低延迟的...

    简易JAVA聊天小工具

    【简易JAVA聊天小工具】是一个非常适合初学者学习和探索的项目,它展示了如何利用Java语言构建一个基础的聊天应用程序。这个小工具的核心是基于UDP(用户数据报协议)实现的,因此我们可以从中学习到关于网络编程和...

    简易聊天室flash多人聊天 FMS实现

    【标题】"简易聊天室flash多人聊天 FMS实现"揭示了这个项目的核心是构建一个基于Flash的多人在线聊天系统,采用FMS(Flash Media Server)作为后台技术来实现实时的通信功能。Flash是一种广泛应用于网页上的多媒体...

    一个简易的聊天系统

    【标题】:“一个简易的聊天系统” 这个标题表明我们讨论的是一个基于Java编程语言实现的...同时,它也可以作为一个起点,为开发者提供进一步扩展和定制聊天系统的可能性,例如添加语音和视频聊天、文件传输等功能。

    简易网络聊天管理系统

    《简易网络聊天管理系统详解》 网络聊天管理系统是一种基于网络通信技术实现的互动平台,它使得用户可以跨越地域限制,实现实时的文本、语音甚至视频交流。本系统以简易为设计核心,旨在提供一个基本的网络聊天环境...

    BS架构下的简易网络聊天室

    2. **网络聊天室**:网络聊天室是互联网上提供实时交流的平台,用户可以通过文字、语音、视频等多种方式沟通。它需要解决并发处理、实时性、稳定性等问题,以确保多用户同时在线时的良好体验。 3. **实时通信**:...

    基于java GUI界面的简易netty聊天室(实现群聊和私聊)

    【标题】基于Java GUI界面的简易Netty聊天室实现了群聊和私聊功能,通过集成FastJSON库处理JSON格式的数据编码与解码。这个项目旨在为用户提供一个简单易用的聊天平台,用户可以通过图形化界面进行实时通信。下面将...

    简易聊天室源代码下载

    自己照着视频做的简易聊天室,比较简单,供大家参考

    简易的 web 聊天系统

    在本项目中,我们关注的是一个简易的Web聊天系统,它提供了一系列基本的在线交流功能。这个系统的设计和实现旨在创建一个用户友好的界面,使用户能够方便地进行实时沟通。下面将详细介绍这个Web聊天系统的主要特点和...

    基于web的简易聊天室

    【基于Web的简易聊天室】是一种在线交流平台,利用Web技术实现用户间的实时通信,包括文字、语音和视频等多种交互方式。在这个系统中,用户无需安装任何客户端软件,只需要通过浏览器即可进入聊天室进行沟通,大大...

    Java简易聊天系统

    【Java简易聊天系统】是一个基于Java的网络编程项目,主要用于教授和实践Socket编程以及图形用户界面(GUI)设计。...同时,这个系统也为进一步扩展功能,如添加语音/视频聊天、文件传输等提供了基础。

Global site tag (gtag.js) - Google Analytics