Hi,
I have a project that creates a SWC library, which I reference from several flash projects. This all works great when I used the 1.4 lccsFlash library - compile in Flash Builder 4.5. If I simply replace the 1.4 library with the 1.5 lccsFlash library. It seems to build OK, but when I use the resulting library it generates the following error:
[Player: WIN 10.2.153.2]
VerifyError: Error #1053: Illegal override of recordMessages in com.adobe.rtc.session.managers.SessionManagerFMS.
I am not using the recordMessages - the LCCS related code simply creates an P2P audio.
That's issue #1. Issue 2 relates to my reasons for switching to the LCCS 1.5 API. I have a couple applications - different code bases that worked a couple weeks ago when that used the UserEvent.USER_CREATE and UserEvent.USER_REMOVE events to detect user's entering and leaving P2P audio conversations handled in rooms. This all worked fine. Today, in testing the same applications, I am not receiving these events consistently. Sometimes I do, sometimes I don't. There have been no changes to the LCCS code in the past two weeks - so I'm stumped.
My thought is that maybe some server-side changes occurred to suport version 1.5 of the API, so that's what led me down the upgrade path. Unfortunately, that's when I ran into the VerifyError.
Any help would be greatly appreciated - I don't need to upgrade as much as I need to get the UserEvents working properly.
Thanks!
Views
Replies
Total Likes
Thanks for reporting the issue. I would update you soon about the issues you mentioned.
Sincerely
Arun
Views
Replies
Total Likes
Thanks... In the 1.4 version, here's the code that used to work, but no longer seems to work.
_audioPublisher.addEventListener(StreamEvent.STREAM_DELETE, publishStoppedHandler);
_audioPublisher.stop()
function publishStoppedHandler(e:StreamEvent):
void
{
_audioPublisher.removeEventListener(StreamEvent.STREAM_DELETE, publishStoppedHandler);
_audioPublisher.close();
_session.logout();
}
Specifically, AudioPublisher.stop() does not appear to be dispatching the STREAM_DELETE event. The latest documentation indicates that it still should. It looks like I can run the close and logout without waiting for the stop to throw the STREAM_DELETE event, but I seem to remember having some issues with this if I didn't wait.
Views
Replies
Total Likes
Hi ,
I built a custom app and verified issue 1, with 1.5 SDK , and issue 2 & the last issue you mentioned with 1.4 SDK, and I couldnt reproduce the issue.
Can you please share your code, or try again with a fresh SDK. Also can you provide more details such as the SDK player version etc.
Thanks
Arun
I've tested the following code in Flash CS5 and Flash CS5.5 with both the Flash 10 and Flash 10.1 swcs from version 1.4 with publish settings for Flash 10 and 10.2. In this case, the code resides right in the FLA timeline frame 1. I see similar results from my swc library. In this case, I connect to an LCCS room, subscribe and publish. Then I start a timer for 15 seconds - at the end of 15 seconds, I disconnect (stop the subscriber, publisher, etc.). I've highlighted the trouble area in red, i.e. I stop the publisher, but the STREAM DELETE event is never received and the user is still publishing to the room after the stop call. In the original post, I mentioned the USER_CREATE and USER_REMOVE not working, but I believe the real issue is that the publisher is not stopping properly and issues compound when trying to log into a different LCCS room.
I've also included the debug output from code execution in Flash below the code. This shows Flash Player version 10.1.52.14, but I've tried it with FP 10.1, 10.2 and 10.3 - still the same results.
import com.adobe.rtc.archive.*;
import com.adobe.rtc.authentication.*;
import com.adobe.rtc.clientManagers.*;
import com.adobe.rtc.collaboration.*;
import com.adobe.rtc.events.*;
import com.adobe.rtc.messaging.*;
import com.adobe.rtc.session.*;
import com.adobe.rtc.session.managers.*;
import com.adobe.rtc.session.sessionClasses.*;
import com.adobe.rtc.sharedManagers.*;
import com.adobe.rtc.sharedManagers.descriptors.*;
import com.adobe.rtc.util.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
var _session:ConnectSession;
var _audioSubscriber:AudioSubscriber;
var _audioPublisher:AudioPublisher;
var _microphoneManager:MicrophoneManager;
var _callTimer:Timer = new Timer(15000, 1);
connect("testuser");
function connect(user:String):void
{
var auth:AdobeHSAuthenticator = new AdobeHSAuthenticator();
auth.requireRTMFP = true;
auth.userName= user;
try
{
if ( _session == null )
_session = new ConnectSession();
_session.roomURL="https://collaboration.adobelivecycle.com/********/room01";
_session.authenticator=auth;
_session.addEventListener(SessionEvent.SYNCHRONIZATION_CHANGE, connectHandler);
_session.addEventListener(SessionEvent.ERROR, connectHandler);
_session.login();
}
catch(e:Error)
{
trace("Login Failed");
}
}
function disconnectCall():void
{
if ( _audioSubscriber != null )
_audioSubscriber.close();
if ( _audioPublisher != null )
{
if ( _audioPublisher.isPublishing )
{
trace("Stop the publisher >>>>> THIS TRACE STATEMENT DISPLAYS")
_audioPublisher.addEventListener(StreamEvent.STREAM_DELETE, stoppedHandler);
_audioPublisher.stop();
}
}
}
function connectHandler(e:Event):void
{
if ( e.type == SessionEvent.SYNCHRONIZATION_CHANGE)
{
if ( _session.isSynchronized )
{
// _session.userManager.addEventListener(UserEvent.USER_CREATE, userHandler);
// _session.userManager.addEventListener(UserEvent.USER_REMOVE, userHandler);
_microphoneManager = MicrophoneManager.getInstance();
_audioSubscriber = new AudioSubscriber();
_audioSubscriber.subscribe();
_audioPublisher = new AudioPublisher();
_audioPublisher.subscribe();
_audioPublisher.publish();
_audioSubscriber.setLocalVolume(.8);
_callTimer.addEventListener(TimerEvent.TIMER, endCall);
_callTimer.start();
}
}
else
{
trace("Not Synchronized");
}
}
function userHandler(e:UserEvent):void
{
switch(e.type)
{
case UserEvent.USER_CREATE:
trace("User Joined Room");
break;
case UserEvent.USER_REMOVE:
trace("User Left Room");
break;
}
}
function endCall(e:TimerEvent)
{
disconnectCall();
}
function stoppedHandler(e:StreamEvent):void
{
trace("Publisher Stopped >>>>> THIS TRACE STATEMENT NEVER FIRES");
_audioPublisher.removeEventListener(StreamEvent.STREAM_DELETE, stoppedHandler);
_audioPublisher.close();
_session.logout();
}
Wed Jun 8 21:44:33 GMT-0400 2011 LCCS SDK Version : 1.4.0 Player Version : WIN 10,1,52,14
21:44:33 GMT-0400 requestInfo https://collaboration.adobelivecycle.com/*******/room01?uk=Zzp0ZXN0dXNlcjo=&mode=xml&x=0.70394337689...
21:44:33 GMT-0400 #TicketService# ticket received: yv02i0c04c6o
21:44:33 GMT-0400 Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=yv02i0c04c6o&proto=rtmfp, attempt #1/3
21:44:34 GMT-0400 result: <fms>
<origin>fms1.acrobat.com</origin>
<proto_ports>rtmfp:1935,rtmps:443</proto_ports>
<retry_attempts>2</retry_attempts>
</fms>
21:44:34 GMT-0400 protocols: [object ProtocolPortPair]
21:44:34 GMT-0400 [attempt 1 of 2] Connecting to 0/0: rtmfp://fms1.acrobat.com/cocomo/na2-sdk-d2039e98-9464-49e6-a616-ccd8befa7917/room01 #startProtosConnect#
21:44:34 GMT-0400 tempNetStatusHandler 0/1,NetConnection.Connect.Success
21:44:34 GMT-0400 isTunneling? false
21:44:34 GMT-0400 is using RTMPS? false
21:44:34 GMT-0400 RECEIVED LOGIN AT SESSION
21:44:34 GMT-0400 .user descriptor from server [object]
21:44:34 GMT-0400 \\
21:44:34 GMT-0400 .displayName [string]= testuser
21:44:34 GMT-0400 .role [number]= 50
21:44:34 GMT-0400 .userID [string]= GUEST-E953F98B-CFF0-4377-B455-481F770AE5D2
21:44:34 GMT-0400 .affiliation [number]= 5
21:44:34 GMT-0400 RECEIVENODES UserManager
21:44:34 GMT-0400 receiveAllSynchData UserManager
21:44:34 GMT-0400 RECEIVENODES FileManager
21:44:34 GMT-0400 receiveAllSynchData FileManager
21:44:34 GMT-0400 checkManagerSync:[object FileManager]
21:44:34 GMT-0400 RECEIVENODES AVManager
21:44:34 GMT-0400 receiveAllSynchData AVManager
21:44:34 GMT-0400 checkManagerSync:[object StreamManager]
21:44:34 GMT-0400 RECEIVENODES RoomManager
21:44:34 GMT-0400 receiveAllSynchData RoomManager
21:44:34 GMT-0400 checkManagerSync:[object RoomManager]
21:44:34 GMT-0400 checkManagerSync:[object UserManager]
21:44:34 GMT-0400 mainNetStatusHandler: NetStream.Connect.Success
Stop the publisher >>>>> THIS TRACE STATEMENT DISPLAYS
NOTHING TRACES BEYOND THIS POINT AND LCCS ROOM CONSOLE SHOWS USER IS STILL PUBLISHING
Views
Replies
Total Likes
Hi,
I am novice to Flash CS5, so couldnt test your code on it. But I did slight modiifications to your code, and tested it and everything seems to work. (I tested it using 1.4). Can you check your timeline and project settings. I am pasting the code and the traces I got.
package
{
import com.adobe.rtc.archive.*;
import com.adobe.rtc.authentication.*;
import com.adobe.rtc.clientManagers.*;
import com.adobe.rtc.collaboration.*;
import com.adobe.rtc.events.*;
import com.adobe.rtc.messaging.*;
import com.adobe.rtc.session.*;
import com.adobe.rtc.session.managers.*;
import com.adobe.rtc.session.sessionClasses.*;
import com.adobe.rtc.sharedManagers.*;
import com.adobe.rtc.sharedManagers.descriptors.*;
import com.adobe.rtc.util.*;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class JGrotto extends Sprite
{
protected var _session:ConnectSession;
protected var _audioSubscriber:AudioSubscriber;
protected var _audioPublisher:AudioPublisher;
protected var _microphoneManager:MicrophoneManager;
protected var _callTimer:Timer = new Timer(15000, 1);
public function JGrotto()
{
var auth:AdobeHSAuthenticator = new AdobeHSAuthenticator();
//auth.requireRTMFP = true;
auth.userName= "testuser";
try
{
if ( _session == null )
_session = new ConnectSession();
_session.roomURL="http://connectnow.acrobat.com/userName/roomName";
_session.authenticator=auth;
_session.addEventListener(SessionEvent.SYNCHRONIZATION_CHANGE, connectHandler);
_session.addEventListener(SessionEvent.ERROR, connectHandler);
_session.login();
}
catch(e:Error)
{
trace("Login Failed");
}
}
protected function disconnectCall():void
{
if ( _audioSubscriber != null )
_audioSubscriber.close();
if ( _audioPublisher != null )
{
if ( _audioPublisher.isPublishing )
{
trace("Stop the publisher >>>>> THIS TRACE STATEMENT DISPLAYS")
_audioPublisher.addEventListener(StreamEvent.STREAM_DELETE, stoppedHandler);
_audioPublisher.stop();
}
}
}
protected function connectHandler(e:Event):void
{
if ( e.type == SessionEvent.SYNCHRONIZATION_CHANGE)
{
if ( _session.isSynchronized )
{
// _session.userManager.addEventListener(UserEvent.USER_CREATE, userHandler);
// _session.userManager.addEventListener(UserEvent.USER_REMOVE, userHandler);
_microphoneManager = MicrophoneManager.getInstance();
_audioSubscriber = new AudioSubscriber();
_audioSubscriber.subscribe();
_audioPublisher = new AudioPublisher();
_audioPublisher.subscribe();
_audioPublisher.publish();
_audioSubscriber.setLocalVolume(.8);
_callTimer.addEventListener(TimerEvent.TIMER, endCall);
_callTimer.start();
}
}
else
{
trace("Not Synchronized");
}
}
protected function userHandler(e:UserEvent):void
{
switch(e.type)
{
case UserEvent.USER_CREATE:
trace("User Joined Room");
break;
case UserEvent.USER_REMOVE:
trace("User Left Room");
break;
}
}
protected function endCall(e:TimerEvent)
{
disconnectCall();
}
protected function stoppedHandler(e:StreamEvent):void
{
trace("Publisher Stopped >>>>> THIS TRACE STATEMENT NEVER FIRES");
_audioPublisher.removeEventListener(StreamEvent.STREAM_DELETE, stoppedHandler);
_audioPublisher.close();
_session.logout();
}
}
}
Traces I got ,
Thu Jun 9 11:05:46 GMT-0700 2011 LCCS SDK Version : 1.4.0 Player Version : MAC 10,3,181,14
11:05:46 GMT-0700 requestInfo http://connectnow.acrobat.com/userName/rooName
[SWF] Users:arun:Work:aponnusa_theoden.corp.adobe.com_1666:main:connect:SDKApp:payload:sampleApps:FlashWebCamExample:bin-debug:JGrotto.swf - 354,497 bytes after decompression
11:05:47 GMT-0700 #TicketService# ticket received: tngfyul4eji0
11:05:47 GMT-0700 Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=tngfyul4eji0&proto=rtmfp, attempt #1/3
11:05:47 GMT-0700 result: <fms>
<origin>fms5.acrobat.com</origin>
<proto_ports>rtmfp:1935,rtmps:443</proto_ports>
<retry_attempts>2</retry_attempts>
</fms>
11:05:47 GMT-0700 protocols: [object ProtocolPortPair],[object ProtocolPortPair]
11:05:47 GMT-0700 [attempt 1 of 2] Connecting to 0/1: rtmfp://fms5.acrobat.com/cocomo//deleteafcs #startProtosConnect#
11:05:52 GMT-0700 [attempt 1 of 2] Connecting to 1/1: rtmps://fms5.acrobat.com/cocomo//deleteafcs #onNextConnectTimer#
11:05:53 GMT-0700 tempNetStatusHandler 1/2,NetConnection.Connect.Success
11:05:53 GMT-0700 isTunneling? false
11:05:53 GMT-0700 is using RTMPS? true
11:05:54 GMT-0700 RECEIVED LOGIN AT SESSION
11:05:54 GMT-0700 .user descriptor from server [object]
11:05:54 GMT-0700 \\
11:05:54 GMT-0700 .displayName [string]= testuser
11:05:54 GMT-0700 .affiliation [number]= 5
11:05:54 GMT-0700 .userID [string]= GUEST-99B7A5E6-58A6-4AF2-81C3-0093C1167458
11:05:54 GMT-0700 .role [number]= 50
11:05:54 GMT-0700 RECEIVENODES UserManager
11:05:54 GMT-0700 receiveAllSynchData UserManager
11:05:54 GMT-0700 Setting isPeer to false as connection is not RTMFP for Usertestuser
11:05:54 GMT-0700 RECEIVENODES FileManager
11:05:55 GMT-0700 receiveAllSynchData FileManager
11:05:55 GMT-0700 checkManagerSync:[object FileManager]
11:05:55 GMT-0700 RECEIVENODES AVManager
11:05:55 GMT-0700 receiveAllSynchData AVManager
11:05:55 GMT-0700 checkManagerSync:[object StreamManager]
11:05:55 GMT-0700 RECEIVENODES RoomManager
11:05:55 GMT-0700 receiveAllSynchData RoomManager
11:05:55 GMT-0700 checkManagerSync:[object RoomManager]
11:05:55 GMT-0700 checkManagerSync:[object UserManager]
Stop the publisher >>>>> THIS TRACE STATEMENT DISPLAYS
Publisher Stopped >>>>> THIS TRACE STATEMENT NEVER FIRES
11:06:10 GMT-0700 CONNECTSESSION:LOGOUT
Views
Replies
Total Likes
Hi,
I just double verified it using both 1.4 & 1.5, and the bad news is - it works. Can you please verify it again at your end.
Thanks
Arun
Views
Replies
Total Likes
I will cut an copy your code to test it and verify my results... Is there anything in the Room Template that I need to be aware of? The settings I have on the room that may be non-default are Auto-Promote Users and Private Audio/Video Streaming is off.
Thanks
Views
Replies
Total Likes
One more question - did you use the Flex or Flash SDK? Thanks
Views
Replies
Total Likes
The Flash one :).
The rooms auto-promote is set to true, or you wouldn’t be able to publish. The private Audio/Video streaming flag doesn’t matter.
Thanks
Arun
Views
Replies
Total Likes
Hi... I just tested your code - cut-n-paste into a Actionscript Class and assigned as a document class to an FLA. I got the same results (trace below).
There is one line in your trace statements that doesn't appear in mine - "Setting isPeer to false". So I guess that means your test was RTMP, not RTMFP.
When I originally wrote this code several weeks ago, I'm sure it worked - but I can't confirm that I was connecting RTMFP/P2P. However, I did post at the time about seeing high bandwidth and push message usage for what was being reported as a P2P connection (via the UserDescriptor) - 320K bandwitdh and 600-800 push messages for a 15-20 minute conversation.
Could this be an issue with RTMFP? P2P is pretty important to how we want to use the service.
Thu Jun 9 15:50:18 GMT-0400 2011 LCCS SDK Version : 1.4.0 Player Version : WIN 10,2,153,2
15:50:18 GMT-0400 requestInfo https://collaboration.adobelivecycle.com/******/room01?guk=Zzp0ZXN0dXNlcjo=&mode=xml&x=0.42875286517...
15:50:18 GMT-0400 #TicketService# ticket received: ri7tb9r8sa0e
15:50:18 GMT-0400 Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=ri7tb9r8sa0e&proto=rtmfp, attempt #1/3
15:50:18 GMT-0400 result: <fms>
<origin>fms1.acrobat.com</origin>
<proto_ports>rtmfp:1935,rtmps:443</proto_ports>
<retry_attempts>2</retry_attempts>
</fms>
15:50:18 GMT-0400 protocols: [object ProtocolPortPair],[object ProtocolPortPair]
15:50:18 GMT-0400 [attempt 1 of 2] Connecting to 0/1: rtmfp://fms1.acrobat.com/cocomo/na2-sdk-d2039e98-9464-49e6-a616-ccd8befa7917/room01 #startProtosConnect#
15:50:18 GMT-0400 tempNetStatusHandler 0/2,NetConnection.Connect.Success
15:50:18 GMT-0400 isTunneling? false
15:50:18 GMT-0400 is using RTMPS? false
15:50:19 GMT-0400 RECEIVED LOGIN AT SESSION
15:50:19 GMT-0400 .user descriptor from server [object]
15:50:19 GMT-0400 \\
15:50:19 GMT-0400 .affiliation [number]= 5
15:50:19 GMT-0400 .displayName [string]= testuser
15:50:19 GMT-0400 .role [number]= 50
15:50:19 GMT-0400 .userID [string]= GUEST-6543A52F-91F9-43C4-B5A0-5310F6583D63
15:50:19 GMT-0400 RECEIVENODES UserManager
15:50:19 GMT-0400 receiveAllSynchData UserManager
15:50:19 GMT-0400 RECEIVENODES FileManager
15:50:19 GMT-0400 receiveAllSynchData FileManager
15:50:19 GMT-0400 checkManagerSync:[object FileManager]
15:50:19 GMT-0400 RECEIVENODES AVManager
15:50:19 GMT-0400 receiveAllSynchData AVManager
15:50:19 GMT-0400 checkManagerSync:[object StreamManager]
15:50:19 GMT-0400 RECEIVENODES RoomManager
15:50:19 GMT-0400 receiveAllSynchData RoomManager
15:50:19 GMT-0400 checkManagerSync:[object RoomManager]
15:50:19 GMT-0400 checkManagerSync:[object UserManager]
Stop the publisher >>>>> THIS TRACE STATEMENT DISPLAYS
Views
Replies
Total Likes
Hi,
I did observe that I am using RTMPS (thanks to Corporate Firewalls ). But then ignored it as I felt it wouldn’t matter. But just to be sure I did verify it with RTMFP too, and things look ok again.
Thu Jun 9 13:51:04 GMT-0700 2011 LCCS SDK Version : 1.5.0 Player Version : MAC 10,3,181,14
13:51:04 GMT-0700 requestInfo http://connectnow.acrobat.com/userName/roomName?guk==&mode=xml&x=0.
Users:arun:Work:aponnusa_theoden.corp.adobe.com_1666:main:connect:SDKApp:payload:sampleApps:FlashWebCamExample:bin-debug:JGrotto.swf - 346,938 bytes after decompression
13:51:05 GMT-0700 #TicketService# ticket received: 193kokgh6fmdj
13:51:05 GMT-0700 Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=&proto=rtmfp, attempt #1/3
13:51:06 GMT-0700 result:
13:51:06 GMT-0700 Connecting to 0/0: rtmfp://fms4.acrobat.com/cocomo/na2-sdk-a8c2d0e7-df1f-4d51-b5b8-/ #startProtosConnect#
13:51:08 GMT-0700 tempNetStatusHandler 0/1,NetConnection.Connect.Success
13:51:08 GMT-0700 isTunneling? false
13:51:08 GMT-0700 is using RTMPS? false
13:51:09 GMT-0700 RECEIVED LOGIN AT SESSION
13:51:09 GMT-0700 .user descriptor from server
13:51:09 GMT-0700
13:51:09 GMT-0700 .displayName = testuser
13:51:09 GMT-0700 .affiliation = 5
13:51:09 GMT-0700 .userID = GUEST-FF065409-6F58-43A7-987C-
13:51:10 GMT-0700 RECEIVENODES UserManager
13:51:10 GMT-0700 receiveAllSynchData UserManager
13:51:10 GMT-0700 RECEIVENODES FileManager
13:51:10 GMT-0700 receiveAllSynchData FileManager
13:51:10 GMT-0700 checkManagerSync:[object FileManager]
13:51:10 GMT-0700 RECEIVENODES AVManager
13:51:10 GMT-0700 receiveAllSynchData AVManager
13:51:10 GMT-0700 checkManagerSync:[object StreamManager]
13:51:10 GMT-0700 RECEIVENODES RoomManager
13:51:10 GMT-0700 receiveAllSynchData RoomManager
13:51:10 GMT-0700 checkManagerSync:[object RoomManager]
13:51:10 GMT-0700 checkManagerSync:[object UserManager]
Stop the publisher >>>>> THIS TRACE STATEMENT DISPLAYS
Publisher Stopped >>>>> THIS TRACE STATEMENT NEVER FIRES
13:51:25 GMT-0700 CONNECTSESSION:LOGOUT
Views
Replies
Total Likes
Thanks - I'll give the code to another programmer and have them test it to ensure it isn't a machine/software config issue. I'll continue to post if I can't figure it out
Views
Replies
Total Likes
Hi there,
Which specific 1.4 SWC are you using? Flash-only, but Player 10, or 10.1?
nigel
Views
Replies
Total Likes
I've tried both the 10.1 and 10.0 Flash-only SWCs. I have both CS5 and CS5.5 installed on my PC. In CS5, I was publishing with the Flash Player 10 setting. In CS 5.5, I have tried both the 10.0/10.1 setting and the 10.2 setting. The results don't seem to change.
Views
Replies
Total Likes
ok - I gave the program to another developer. He had the Flash 10 SWC version 1.3.7.1 under Flash CS5. He tested the FLA and saw the same results. As a second test, I asked him to change the room URL to one under his developer account and the code worked.
In my full code, I am actually creating rooms on the fly to hold group conversations. These rooms are created with Java based on a specific Room Template. For testing I simple created a test room using the same room template. The problems I am seeing are exhibited by any room with this template. I'll try making a connecting with a different room template. Maybe the issue is with my account or the room template.
Views
Replies
Total Likes
Next bit of information - I changed to using a room in my default application template and the FLA works! So there is something about the Application/Room template that I created that is malfunctioning. There is nothing in the setting of these rooms that differs greatly from the default template, but it seems to not be working properly. I can try to delete the application and build it again.
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies