Expand my Community achievements bar.

Adding 2nd WebcamSubscriber Results in Application Hang at Runtime

Avatar

Level 2

I can't say that I really know what is causing this, but I added a second subscriber for webcams in my interface (one displays other conference participants in a larger format and the second one is limited to only display the local user's webcam) and now after running the application for a random period of time the ui just hangs. Here are some more details:

(1) The two subscribers on my page use the same callback functions for camera booted, paused, etc.

(2) hang isn't associated with new users entering or leaving the room

(3) hang seems to be the result of some combination of camera pauses and stop/starts once participants are in the room

I am relatively new to Flex, and can't find anyway to break into the hung application with the debugger so that I can see what is going on (the pause control in the debugger doesn't seem to do anything and would love to have a stack trace to know where things are stuck). The only difference in the code is the second subscriber (with a unique id) and a little bit of code that replaces the publisherIDs on the first subscriber when users enter or leave the conference room. There are no open loops within my app code and after littering it with trace statements I am still no closer to being able to figure out where things have gone off the deep end...

I am using fp10 and have flex builder with a debug player. I need fp10 for the audio and video codecs...

Couple of questions for the gurus....

(1) are there any known issues with FP10 that would limit me to using only one WebcamSubsriber in my app?

(2) is there any insider trick to be able to suspend a running (and hung) flashplayer application that is previously connected (or not) to the flex builder debugger?

Thanks in advance - Chris

3 Replies

Avatar

Level 2

OK- today I was able to capture the following error - any clues?

Error: Error #1502: A script has executed for longer than the default timeout period of 15 seconds.
at mx.core::UIComponent/dispatchEvent()
at com.adobe.rtc.collaboration::AudioSubscriber/onStreamDelete()[C:\work\main\connect\cocomoPlayer10\src\com\adobe\rtc\collaboration\AudioSubscriber.as:707]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.adobe.rtc.sharedManagers::StreamManager/onItemRetract()[C:\work\main\connect\cocomoPlayer10\src\com\adobe\rtc\sharedManagers\StreamManager.as:1611]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.adobe.rtc.sharedModel::CollectionNode/http://www.adobe.com/2006/connect/cocomo/messaging/internal::receiveItemRetraction()[C:\work\main\connect\cocomoPlayer10\src\com\adobe\rtc\sharedModel\CollectionNode.as:755]
at com.adobe.rtc.messaging.manager::MessageManager/http://www.adobe.com/2006/connect/cocomo/messaging/internal::receiveItemRetraction()[C:\work\main\connect\cocomoPlayer10\src\com\adobe\rtc\messaging\manager\MessageManager.as:680]
at com.adobe.rtc.session.managers::SessionManagerBase/receiveItemRetraction()[C:\work\main\connect\cocomoPlayer10\src\com\adobe\rtc\session\managers\SessionManagerBase.as:342]

Avatar

Former Community Member

Hi Chris,

Hmmm - this one's kinda fishy - I'll admit that I suspect something might

be wrong in your code.. Usually, the dreaded "15 second warning" means that

there's some code that is in a near-infinite loop. From your stack trace,

I'm guessing it's in some code that you've got listening to an

AudioSubscriber's STREAM_DELETE event (the AudioSubscriber dispatches this

event at the very end of a function, so there's no more code running in the

SDK itself). Doesn't seem to be related to a WebCamSubscriber at all.

Does this help at all? Maybe sharing some code might make it easier for us

to hunt down.

thanks!

nigel

Avatar

Level 2

Hey Nigel - Thanks for the response. I figured it out this morning... While I don't have any callbacks set on the audio subscriber (or publisher), when adding the second webcam subscriber I blindly copied over all of the callbacks for userBooted, streamChance and streamDelete which I didn't really need on the second subscriber. The callback for userBooted on the camera also deletes the user's audio stream via the following:

     cSession.streamManager.deleteStream(StreamManager.AUDIO_STREAM,streamDescriptor.streamPublisherID);

I am assuming that the second registration of the callback in the second webcam subscriber somehow caused the problem. Since the callback wasn't necessary on the second subscriber anyway, I removed it and can no longer reproduce the problem.

Thanks