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

flex+FMS3在线视频

    博客分类:
  • flex
阅读更多
注意:
1、webchat工程的名称,此处连接的是工程webchat下的publish.mxml
pnc.connect("rtmp://localhost/webchat/publish/");


<?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="388">
	<mx:Panel x="10" y="10" width="340" height="282" layout="absolute" title="视频发布端">
		<mx:VideoDisplay x="0" y="0" width="320" height="240" id="PublishVideo"/>
	</mx:Panel>
	<mx:Panel x="366" y="10" 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="106" y="316" label="发布视频" fontWeight="normal" click="onPublishClick()"/>
	<mx:Button x="488" y="317" 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://localhost/webchat");
				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("publishName","live");
				}
			}
			
			private function onRecordClik():void
			{
				rnc = new NetConnection();
				rnc.connect("rtmp://localhost/webchat");
				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("publishName","live");  //这里的publishName必须与发布流的流名一致
				}
			}
		]]>
	</mx:Script>
	<mx:Label x="35" y="348" width="304" id="lbPublish"/>
	<mx:Label x="391" y="348" width="296" id="lbRecord"/>
</mx:Application>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics