利用fms 和 flex来做在线视频聊天
发布时间:2020-12-15 04:06:38 所属栏目:百科 来源:网络整理
导读:1.FMS服务器的搭建,一定要选live的,不要选vod的 fms服务器安装好了之后要重启一下,如果是做rtmp播放的,一定不能写 flv文件的扩展名 2.flex的代码如下! ?xml version="1.0" encoding="utf-8"?mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layou
1.FMS服务器的搭建,一定要选live的,不要选vod的 fms服务器安装好了之后要重启一下,如果是做rtmp播放的,一定不能写 flv文件的扩展名 2.flex的代码如下! <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12" 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://ip/live"); 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://ip/live"); 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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |