Re Je précise seulement que je n'ai rien touché côté serveur RED 5 puisque les enregistrements se font dans le répertoire oflademo c'est une application déjà prête dans le red 5
Sézard_damian a écrit : > Hi et merci pour cette réponse très précise > alors pour la version de res 5 c'est > *RED5 0.7.0 j'ai installé la version standaloone donc autonome > * je compile utilisant le FP9 > * oui je travail en local > voici le code complet qui assure l'affichage dans mon système ainsi > l'enregistrment et la connexion avec le RED 5 > //////////////////////////////////////: > <?xml version="1.0" encoding="utf-8"?> > <mx:Canvas backgroundColor="#eeeeee" creationComplete="init()" > xmlns:mx="http://www.adobe.com/2006/mxml" > xmlns:utils="com.dougmccune.utils.*" > xmlns:controls="com.dougmccune.controls.*"> > <mx:RemoteObject id="myservice" fault="faultHandler(event)" > showBusyCursor="true" source="PictureService" destination="amfphp"> > <mx:method name="savePNG" result="resultHandler(event)" > fault="faultHandler(event)" /> > </mx:RemoteObject> > <mx:Script> > <![CDATA[ > import mx.managers.PopUpManager; > import mx.events.CloseEvent; > import flash.utils.clearInterval; > import flash.display.*; > import flash.display.MovieClip; > import flash.media.Video; > import flash.media.Microphone; > import flash.media.Video; > import flash.net.NetConnection; > import flash.net.NetStream; > import flash.events.NetStatusEvent; > import flash.events.AsyncErrorEvent; > import flash.display.SimpleButton; > import flash.text.*; > import flash.system.SecurityDomain; > import flash.system.Security; > import flash.net.Responder; > import flash.net.NetStream; > import flash.utils.setInterval; > import mx.graphics.codec.JPEGEncoder; > import mx.controls.Alert; > import mx.core.UIComponent; > import mx.managers.CursorManager; > import mx.rpc.events.ResultEvent; > import mx.rpc.events.FaultEvent; > import mx.messaging.AbstractConsumer; > import mx.core.UIComponent; > import mx.core.IUIComponent; > import mx.controls.Image; > import GestionNotification.SendMail; > private var smail:SendMail; > private var nc:NetConnection; > private var responder:Responder; > private var ns:NetStream; > private var mic:Microphone = Microphone.getMicrophone(); > private var nTimer:Number; > public var threshold:Number = .2; > public var recordingyes:Boolean; > private var isrecord:Boolean; > public var notif_type:String="(Aucune)"; > public var user_type:String="Aucun"; > public function onBWDone():void { > > } > private function init():void > { > connect(); > } > private function connect():void > { NetConnection.defaultObjectEncoding = ObjectEncoding.AMF0; > SharedObject.defaultObjectEncoding = > ObjectEncoding.AMF0; > nc = new NetConnection(); > nc.client=this; > nc.objectEncoding=0; > nc.connect("rtmp://localhost:1935/oflaDemo",true); > nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); > } > private function netStatusHandler(e:NetStatusEvent):void { > var code:String = e.info.code; > Alert.show("code = " + code); > if(code == "NetConnection.Connect.Success"){ > ns = new NetStream(nc); > ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, > asyncErrorHandler); > recordingyes=true; > isrecord=false; > } > } > private function asyncErrorHandler(event:AsyncErrorEvent):void { > Alert.show(event.toString(),"error"); > } > public function publishCam(str:String):void > { > try > { > ns.attachCamera(videoCamera.camera); > mic.rate = 44; > ns.attachAudio(mic); > ns.publish(str, 'record'); > } > catch(err:Error) > { > Alert.show( err.toString() ); > } > } > > public function stopRecording():void > { > ns.close(); > clearInterval(nTimer); > isrecord=false; > } > > public function Enregistrer():void > { > var snapshotHolder:UIComponent = new UIComponent(); > var snapshot:BitmapData = new > BitmapData(videoCamera.width,videoCamera.height,true); > var snapshotBitmap:Bitmap = new > Bitmap(snapshot); > snapshotHolder.addChild(snapshotBitmap); > snapshot.draw(videoCamera); > savePicture(snapshot); > } > private function savePicture(picture:BitmapData) : void > { > // appél au compresseur JPEG > var jpegEncoder:JPEGEncoder= new JPEGEncoder(); > var > jpegBytes:ByteArray=jpegEncoder.encode(picture); > jpegBytes.compress(); > // envoyé au serveur > > myservice.getOperation("savePNG").send(jpegBytes); > } > private function faultHandler(fault:FaultEvent):void > { > CursorManager.removeBusyCursor(); > Alert.show("code:\n" + fault.fault.faultCode + "\n > \nMessage:\n" + fault.fault.faultString + "\n\nDetail:\n" + > fault.fault.faultDetail); > } > > private function resultHandler(evt:ResultEvent):void > { > Alert.show(evt.result.toString()); > } > > private function motionHandler(event:Event):void { > var dat:Date= new Date(); > if(detector.percentChange > threshold) { > if(til.numChildren>50) > { > til.removeAllChildren(); > } > var image:Image = new Image(); > image.source = new > Bitmap(detector.lastSnapshot.clone()); > image.width = 50; > image.height = 45; > til.addChild(image); > if(recordingyes==true){ > if(isrecord==false){ > var ccA:String=dat.getDay().toString()+ > dat.getMonth().toString() > + dat.getHours().toString()+ dat.getMinutes().toString() > +dat.getSeconds().toString()+dat.getMilliseconds().toString(); > var chA:String="Demo_"+ccA; > publishCam(chA); > isrecord=true; > > nTimer=setInterval(stopRecording,10000);} > } > bar.setStyle("trackColors", > [0xff0000,0xff0000]); > générer_notif(); > } > else { > bar.clearStyle("trackColors"); > } > } > private function générer_notif():void{ > if (user_type=="administrateur"){// le compte > connécté est un > compte chef ou administrateur > smail=new SendMail(); > if(smail.mail_admin!=""){// > l'administrateur a déjà fait de > gestion de notification > // envoir mail > } > else{ > // l'administrateur n'a ps > encore enregistré ses coordonées > // une boite de dialogue > s'affiche si l'administrateur veut > enregistrer ses coordonnées > Alert.yesLabel="Oui"; > Alert.noLabel="Non"; > Alert.show("les coordonnées de > l'administrateur ne sont pas > encore enregistrés voulez vous le faire maintenant?","information", > (Alert.YES|Alert.NO|Alert.NONMODAL),this,CloseHandler); > } > } > } > private function CloseHandler(event:CloseEvent):void{ > if(event.detail==Alert.YES){ > // gerer notif s'affiche > > smail.addEventListener(CloseEvent.CLOSE,remouvsmail); > PopUpManager.addPopUp(smail,this,true); > } > } > private function remouvsmail(event:CloseEvent):void{ > PopUpManager.removePopUp(smail); > } > ]]> > </mx:Script> > <utils:SimpleMotionDetector id="detector" sampleRate="100" > source="{videoCamera}" change="motionHandler(event); > bar.setProgress(detector.percentChange, 1)" /> > <mx:Panel title="Streaming Vidéo" id="streaming" > borderColor="#34A89C" fontFamily="Georgia" height="408" width="494" > layout="vertical" horizontalAlign="left" verticalAlign="top"> > <controls:WebCamDisplay id="videoCamera" width="474" > height="319" > borderThickness="1" > borderColor="#FFFFFF" > borderStyle="solid" > cornerRadius="0"/> > <mx:ProgressBar mode="manual" minimum="0" maximum="1" id="bar" > trackHeight="30" > labelPlacement="center" label="Sensibilité: %3%%" > width="{videoCamera.width}" /> > </mx:Panel> > <mx:Tile id="til" visible="false" x="0" y="0"/> > </mx:Canvas> > ////////////////////////////////////// > > On 6 mar, 20:42, ekameleon <[email protected]> wrote: > > Hello :) > > > > il nous faut beaucoup plus d'infos (comme toujours ;)) > > > > 1 - version de RED5 et quelle est ta configuration (port, etc...).. explique > > comment tu installes celui ci etc. > > > > 2 - tu as cherché sur leur mailing list pour voir si quelqu'un a eu déjà le > > même problème ?http://osflash.org/pipermail/red5_osflash.org/ > > > > 3 - tu compiles en FP10 ? FP9 ? tu as mis un code en AMF0 .. côté serveur tu > > es certaine d'être en AMF0 ? Tu fais pas de l'AMF3 sans le savoir ? > > > > 4 - Tu peux préciser si tu es en local, en ligne, etc ? Là impossible de > > savoir ce que tu fais à ce niveau là ;) > > > > Perso je ne maitrise pas du tout Red5 mais plutôt FMS :) Du coup là je te > > mets des questions bateau... mais franchement si personne ne te réponds > > rapidement ici, tu auras plus de chance de trouver ta réponse sur la mailing > > list de Red5 où la communauté sera surement en forme pour te donner la > > réponse ;) > > > > En général quand on arrive à se connecter à un serveur pas de raison de pas > > pouvoir le faire de "temps en temps"... faut que tu sois précise dans ton > > process d'intégration, etc. pour voir ce qui peut clocher. Le code AS3 ne > > doit pas être la cause du soucis car tu ne fais pas grand chose à ce que je > > vois qui peut causer problème dans ton test ;) > > > > PS : faudrait voir aussi ton code Java server side.. mais là c'est encore > > une autre histoire > > > > EKA+ :) > > > > Le 6 mars 2010 20:29, Sézard_damian <[email protected]> a écrit : > > > > > hi there :D contente de rejoindre ce groupe > > > alors j'ai un petit souci avec mon serveur red 5, je suis en train de > > > développer une application vidéosurveillance où j'enregistre les > > > vidéos en cas de mouvement j'ai utilisé pour cela le serveur REd 5 > > > j'enregistre les vidéos utilisant le protocole "rtmp" dans le > > > répertoire oflademo > > > le problème est lors de la connexion des fois elle se termine avec > > > succé et des fois non > > > voici mon code: > > > ////////////////////////////////////////////// > > > private function connect():void > > > { NetConnection.defaultObjectEncoding = ObjectEncoding.AMF0; > > > SharedObject.defaultObjectEncoding = > > > ObjectEncoding.AMF0; > > > nc = new NetConnection(); > > > nc.client=this; > > > nc.objectEncoding=0; > > > nc.connect("rtmp://localhost:1935/oflaDemo",true); > > > nc.addEventListener(NetStatusEvent.NET_STATUS, > > > netStatusHandler); > > > } > > > private function netStatusHandler(e:NetStatusEvent):void { > > > var code:String = e.info.code; > > > Alert.show("code = " + code); > > > if(code == "NetConnection.Connect.Success"){ > > > ns = new NetStream(nc); > > > ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, > > > asyncErrorHandler); > > > recordingyes=true; > > > isrecord=false; > > > } > > > } > > > //////////////////////////// > > > la fonction netStatusHandler dans le alert.show des fois elle affiche > > > NetConnection.Connect.Success et parfois non :( > > > je ne sais qu'est ce qui cloche !!!!!!!!!!!! > > > est ce un problème de port ?!!!!!!!!!!!!! > > > Merci d'avance > > > Cordialement > > > > > -- > > > Vous recevez ce message, car vous êtes abonné au groupe Google > > > Groupes FCNG. > > > Pour envoyer un message à ce groupe, adressez un e-mail à > > > [email protected]. > > > Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse > > > [email protected] <fcng%[email protected]>. > > > Pour plus d'options, consultez la page de ce groupe : > > >http://groups.google.com/group/fcng?hl=fr > > > > -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes FCNG. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/fcng?hl=fr
