Oh sorry didnt realise you were using VideoDisplay, sorry never use or used that component..

:S

On 2 Sep 2008, at 22:21, stephendricketts wrote:

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...
>




Reply via email to