Hi Hironmay,Any chance to reproduce our problem?We still couldn't get it
to work. It's even getting worse: the first guy entering only gets
sound, no video.Here is the code:
import com.adobe.rtc.events.UserEvent; import
com.adobe.rtc.events.StreamEvent; import
com.adobe.rtc.sharedManagers.UserManager; import
com.adobe.rtc.sharedManagers.StreamManager; import
mx.collections.ArrayCollection; import
com.adobe.rtc.collaboration.WebcamSubscriber; import mx.controls.Alert;
private var currentSubscriber:WebcamSubscriber ; private var
_userManager:UserManager; private var _streamManager:StreamManager;
[Bindable] private var roomURL:String; [Bindable] private var
authToken:String; private function init():void { if
(ExternalInterface.available) ExternalInterface.addCallback("close",
close) authToken = Application.application.parameters["authToken"];
cSession.login(); }
/********************************************************** * This
example shows how the camera component can be used with a publisher and
a * number of subscribers. The publisher has a big view while
subscribers have a small view. * A shared property is used to pass the
stream to the publisher's user interface. * Every user is provided with
play and pause handlers. * *********************************/ private
function onSyncChange():void{ if (cSession.isSynchronized){
cSession.roomManager.autoPromote = true ;
cSession.roomManager.guestsHaveToKnock = false ; _userManager =
cSession.userManager; _streamManager = cSession.streamManager;
_streamManager.addEventListener(StreamEvent.STREAM_DELETE,
onStreamLeft);
_streamManager.addEventListener(StreamEvent.STREAM_RECEIVE,
onStreamReceive); if (!webCamPub.isPublishing) { trace("video was not
published so we publish"); webCamPub.publish(_userManager.myUserID); }
if (!audioPub.isPublishing){ trace("audio was not published so we
publish"); audioPub.publish(_userManager.myUserID); }
trace("onSyncChange"); displayExistingStreams() } else {
message.text="Déconnecté..."; vs.selectedIndex=0; } } private function
onStreamReceive(p_evt:StreamEvent):void { trace("on Stream receive :
"+p_evt.streamDescriptor.streamPublisherID); if
(p_evt.streamDescriptor.streamPublisherID!=_userManager.myUserID) {
setUpSubscriber( p_evt.streamDescriptor.streamPublisherID); } } private
function onStreamLeft(evt:StreamEvent):void{ if
(evt.streamDescriptor.streamPublisherID != _userManager.myUserID){
message.text="Déconnecté..."; vs.selectedIndex=0;
videoContainer.removeChild(currentSubscriber);
currentSubscriber.close(); currentSubscriber = null; } } private
function onResize(evt:Event):void{ if (currentSubscriber){
currentSubscriber.height = this.height; currentSubscriber.width =
this.width; } } private function
setUpSubscriber(p_publisherID:String):void { trace("subscribing to :
"+p_publisherID); currentSubscriber = new WebcamSubscriber();
currentSubscriber.height = this.height; currentSubscriber.width =
this.width; currentSubscriber.displayUserBars=false;
currentSubscriber.connectSession = cSession ;
currentSubscriber.subscribe(); //currentSubscriber.webcamPublisher =
webCamPub ; currentSubscriber.publisherIDs = [p_publisherID];
videoContainer.addChild(currentSubscriber); vs.selectedIndex=1; } // run
this function once, on connectSession.synchronizationChange (once the
room is ready) // sets up all streams that were in the room before you
showed up private function displayExistingStreams():void { // loop over
the whole set of camera streams var publishers:Object =
_streamManager.getStreamsOfType(StreamManager.CAMERA_STREAM); trace("all
the "+publishers.length+" publishers : "+publishers); var found:Boolean
= false; for (var publisherID:String in publishers) { trace("found a
camera : "+publisherID); if (publisherID!=_userManager.myUserID) {
trace("it's not me"); setUpSubscriber(publisherID); found=true; } } if
(!found) message.text="En attente..."; } public function close():void{
Alert.show("Close!"); message.text="Good bye"; vs.selectedIndex=0;
webCamPub.close(); currentSubscriber.close(); audioPub.close();
audioSub.close(); cSession.close(); if (ExternalInterface.available) {
ExternalInterface.call("visioClosed"); //message.text = "Data Sent!"; }
else { message.text = "Error sending data!" } }
Here are the traces:[SWF]
Users:axel:Documents:Flex Builder 3:Visio:bin-debug:Visio.swf -
1,074,146 bytes after decompressionAFCS Beta Build # : 0.93requestInfo
http://connectnow.acrobat.com/cateland/visio?mode=xml&glt=g:&x=0.7908245138823986authentication
status: 200authentication request completerequestInfo
htt...