Actually, I thought about that but found that the VideoDisplay didn't have that as a method so I found an example that used:
import mx.core.mx_internal; In the program I wrote... pubVideo.mx_internal::videoPlayer.clear(); pubVideo.attachCamera(cam); But that didn't have any effect on the VideoDisplay display. Don't know if I did that right but nothing yelled at me. ;-) sr --- In [email protected], Simon Bailey <[EMAIL PROTECTED]> wrote: > > At a very quick glance, have you tried: > > videoObj.clear(); > > before assigning and attaching you NetStream to the video Object? > > Cheers, > > Simon > > newtriks.com > > On 2 Sep 2008, at 21:43, stephendricketts wrote: > > I have a FB3 application that streams live video to a number of users > and periodically needs to change whose sending video. The > application pretty much has to work this way. > > Let's call the person that's sending the video the "host". > Periodically they will switch hosts and let another user become the > host and send their video. This works except when the video > is "taken" the users see the new video source, but the video that's > displayed on the new host's videoDisplay is a still picture of the > first host. > > Can anyone point me to how this switching should be done?... or be > willing to plow through my code and see where I've screwed up? It's > been simplified as much as I can so it makes (some) sense. > > Any direction greatly appreciated! > > Steve > > Here's a condensed version of the code. I should also add, this is > the same program for all users. The host is only a host because they > were on first: > > 1. Initial Host connection: > > if(nc.connected){ > nsPublish = new NetStream(nc); > nsPublish.attachAudio(Microphone.getMicrophone()); > nsPublish.publish("LS","live"); > cam = Camera.getCamera(); > if (cam != null) { > nsPublish.attachCamera(cam); > pubVideo.attachCamera(cam); > addChild(pubVideo); > } > } > > 2. Initial User Connection: > > if (nc.connected){ > pubVideo.source = rtmpPath + "/" + rtmpSession + "/LS"; > } > > // At this point everyone is seeing what they should. > --------------------------------------- > 3. User Takes Control: > <!-- > Now at this point the user will write their request to a remote > shared object. Everyone is subscribed to that object and the host > will read it and know someone wants to take control. > --!> > > var o:Object = new Object; > o.person_int = person_int; // Id for new host > so_primary.setProperty(so_primary_name,o); // Changes remote shared > object > pubVideo.source = null; // stop looking at the host's feed > > 4. Host is Told Change is Requested: > <!-- The eventHandler notifies host of change. When the host > determines someone is taking control, they stop publishing video. > --!> > > private function gotParticipantSO(e:SyncEvent):void { > pubVideo.attachCamera(null); > pubVideo.source=null; > nsPublish.attachCamera(null); > nsPublish.attachAudio(null); > nsPublish.close(); > } > <!-- Now we wait until nsPublish's status event handler tells us when > we've unpublished. Then the user is notified they can take over > through the remote shared object > --!> > > private function networkStatus(event:NetStatusEvent):void { > var o:Object = new Object; > switch (event.info.code.toString() ) { > case "NetStream.Unpublish.Success": > so_primary.setProperty(so_primary_name,o); //tell user I've quit so > they can publish > pubVideo.source = rtmpPath + "/" + rtmpSession + "/LS"; > // start looking at the new host (user) > } > > 5. User Gets Notified They Have Control: > (and not the right picture in their video display!) > <!-- > This is the same routine as was used when the host initially connected > --!> > > if(nc.connected){ > nsPublish = new NetStream(nc); //Initializing NetStream > nsPublish.attachAudio(Microphone.getMicrophone()); > nsPublish.publish("LS","live"); > cam = Camera.getCamera(); > if (cam != null) { > nsPublish.attachCamera(cam); // THIS SEEN ON ALL OTHER CONNECTIONS > pubVideo.attachCamera(cam); // THIS NOT WORKING, STILL PICTURE!? > addChild(pubVideo); > } > } > > <mx:VideoDisplay width="192" height="142" id="pubVideo" live="true"/> > > So, the stream is really being published as everyone can see and hear > the new host. It's just on the new host's display they are seeing a > still picture of the first host. Seems simple, but... >

