Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session

Record published items and playing them

Avatar

Level 2

Hello all,

I am having some problems with the playback application. I created a CollectionNode, Node for a room and during recording my application publishes some items to this CollectionNode -> Node. My undertanding is that the record functionality should also record changes to published items (CollectionNode -> Node -> Item). I have not found any internet examples on how to implement playback using a custom CollectionNode. My initial thoughts were that to be able to playback a custom collection node I should subscribe to that collection node in the playback application like this:

                                        testCollectionNode = new CollectionNode();

                                        testCollectionNode.sharedID = "MyCustomCollectionName";

                                        testCollectionNode.connectSession = connectSession;

                                        testCollectionNode.addEventListener(CollectionNod eEvent.ITEM_RECEIVE, onUpdate);

                                        testCollectionNode.subscribe();

But when I do this  during playback I receive following error in the log:

14:01:04 GMT+0400    #SessionManagerPlayback 8781 ======= onConnected: play __PacingStream

14:01:04 GMT+0400    #SessionManagerPlayback 9035 ======= onMetadata: play __StreamOffsets

14:01:04 GMT+0400    #SessionManagerPlayback 9308 ======= receiveStreamOffset rec20111203144546/FileManager, 63

14:01:04 GMT+0400    #SessionManagerPlayback 9309 ======= receiveStreamOffset rec20111203144546/AVManager, 96

14:01:04 GMT+0400    #SessionManagerPlayback 9309 ======= receiveStreamOffset rec20111203144546/MyCustomCollectionName, 127

14:01:04 GMT+0400    #SessionManagerPlayback 9310 ======= receiveStreamOffset rec20111203144546/UserManager, 160

14:01:04 GMT+0400    #SessionManagerPlayback 9311 ======= receiveStreamOffset rec20111203144546/RoomManager, 189

14:01:04 GMT+0400    #SessionManagerPlayback 9311 ======= receiveStreamOffset rec20111203144546/70646337-32E3-7188-4DFB-03887EB2B1C7, 63472

14:01:04 GMT+0400    #SessionManagerPlayback 9312 ======= receiveStreamOffset rec20111203144546/4CF9C166-42FD-FFDE-1503-0388B0CFB430, 69840

14:01:04 GMT+0400    #SessionManagerPlayback 9312 ======= receiveStreamOffset rec20111203144546/BED05DB7-47E5-8ADF-B2D8-038915B3DEE7, 100990

14:01:04 GMT+0400    #SessionManagerPlayback 9313 ======= receiveStreamOffset rec20111203144546/5B3EA931-3F80-AE40-FC93-03899050838A, 127091

14:01:04 GMT+0400    #SessionManagerPlayback 9313 ======= onOffsetStreamPlayStatus

14:01:04 GMT+0400      . [object]

14:01:04 GMT+0400        \\

14:01:04 GMT+0400        .code [string]= NetStream.Play.Complete

14:01:04 GMT+0400        .duration [number]= 0

14:01:04 GMT+0400        .level [string]= status

14:01:04 GMT+0400        .bytes [number]= 1343

14:01:04 GMT+0400    #SessionManagerPlayback 9444 realReceiveLogin:

14:01:04 GMT+0400      . [object]

14:01:04 GMT+0400        \\

14:01:04 GMT+0400        .descriptor [object]= [object Object]

14:01:04 GMT+0400    RECEIVED LOGIN AT SESSION

14:01:04 GMT+0400      .user descriptor from server [object]

14:01:04 GMT+0400        \\

14:01:04 GMT+0400        .userID [number]= 0

14:01:04 GMT+0400        .affiliation [number]= 10

14:01:04 GMT+0400    #SessionManagerPlayback 9452 ======= subscribeCollection root

14:01:04 GMT+0400    #SessionManagerPlayback 9453 ======= subscribeCollection __RootCollection - play

14:01:05 GMT+0400    #SessionManagerPlayback 9738 ======= subscribeCollection UserManager - play

14:01:05 GMT+0400    #SessionManagerPlayback 9740 ======= subscribeCollection FileManager - play

14:01:05 GMT+0400    #SessionManagerPlayback 9742 ======= subscribeCollection AVManager - play

14:01:05 GMT+0400    #SessionManagerPlayback 9743 ======= subscribeCollection RoomManager - play

14:01:05 GMT+0400    RECEIVENODES FileManager

14:01:05 GMT+0400    receiveAllSynchData FileManager

14:01:05 GMT+0400    checkManagerSync:[object FileManager]

14:01:05 GMT+0400    RECEIVENODES UserManager

14:01:05 GMT+0400    receiveAllSynchData UserManager

14:01:05 GMT+0400    Setting isPeer to false as connection is not RTMFP for Usernull

14:01:05 GMT+0400    RECEIVENODES RoomManager

14:01:05 GMT+0400    receiveAllSynchData RoomManager

14:01:05 GMT+0400    checkManagerSync:[object RoomManager]

14:01:05 GMT+0400    RECEIVENODES AVManager

14:01:05 GMT+0400    receiveAllSynchData AVManager

14:01:05 GMT+0400    checkManagerSync:[object StreamManager]

14:01:05 GMT+0400    checkManagerSync:[object UserManager]

14:01:05 GMT+0400    #SessionManagerPlayback 10221 ======= subscribeCollection MyCustomCollectionName - play

14:01:05 GMT+0400    RECEIVENODES MyCustomCollectionName

ERROR --->[Fault] exception, information=ReferenceError: Error #1056: Cannot create property MyCustomItemName on com.adobe.rtc.messaging.MessageItem.

What is wrong here? Please help me!

Thank you in advance!

Cheers,

Nikita

4 Replies

Avatar

Level 2

Flash player which is displayed for that:

Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.NetStream was unable to invoke callback receiveItems. error=ReferenceError: Error #1056: Cannot create property SlideURL on com.adobe.rtc.messaging.MessageItem.

          at com.adobe.rtc.session.managers::SessionManagerPlayback/http://www.adobe.com/2006/connect/cocomo/session/internal::subscribeCollection()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\session\managers\SessionManagerPlayback.as:163]

          at com.adobe.rtc.messaging.manager::MessageManager/http://www.adobe.com/2006/connect/cocomo/messaging/internal::subscribeCollection()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\messaging\manager\MessageManager.as:223]

          at com.adobe.rtc.messaging.manager::MessageManager/flushPendingSubscriptions()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\messaging\manager\MessageManager.as:880]

          at flash.events::EventDispatcher/dispatchEventFunction()

          at flash.events::EventDispatcher/dispatchEvent()

          at com.adobe.rtc.session::ConnectSession/checkManagerSync()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\session\ConnectSession.as:580]

          at flash.events::EventDispatcher/dispatchEventFunction()

          at flash.events::EventDispatcher/dispatchEvent()

          at com.adobe.rtc.sharedManagers::UserManager/userReceivedOrEdited()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\sharedManagers\UserManager.as:1397]

          at com.adobe.rtc.sharedManagers::UserManager/onItemReceive()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\sharedManagers\UserManager.as:1216]

          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::receiveItem()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\sharedModel\CollectionNode.as:777]

          at com.adobe.rtc.messaging.manager::MessageManager/http://www.adobe.com/2006/connect/cocomo/messaging/internal::receiveItem()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\messaging\manager\MessageManager.as:738]

          at com.adobe.rtc.session.managers::SessionManagerBase/receiveItem()[E:\flashfarm\branches\connect\1108\SDKApp\payload\libs\player10.1\src\com\adobe\rtc\session\managers\SessionManagerBase.as:390]

          at Function/http://adobe.com/AS3/2006/builtin::apply()

          at SetIntervalTimer/onTimer()

          at flash.utils::Timer/_timerDispatch()

          at flash.utils::Timer/tick()

Avatar

Employee

Sorry for the delayed response. I think you are trying to view the playback with the wrong "permissions" and that's why you are getting an eror "cannot create property".

You should make sure the playback "viewer" has the appropriate permissions (for what I see from your logs you have a userID=0 and affiliation=10 that makes me think you are logging in as a "guest" for your playback app.

Avatar

Level 2

Hello Raff,

According with Adobe's specifications I have created this record with flag guestsAllowed=true, so as I understand guest should be available to view this record, and guest really is available to:

  • View webcam record
  • Listen audio record
  • View screenshare record

But when I try to subscribe to collection nodes modifications - I get this error. I have tried to access as administrator, but stiil get the same error:

Mon Dec 12 09:18:13 GMT+0400 2011    LCCS SDK Version : 2.2.0    Player Version : WIN 10,1,53,64

09:18:13 GMT+0400    requestInfo [CUT DUE TO SECURITY]

09:18:15 GMT+0400    requestInfo [CUT DUE TO SECURITY]

09:18:15 GMT+0400    #TicketService# ticket received: axspkvkg6gz0

09:18:15 GMT+0400    Getting FMS at [CUT DUE TO SECURITY], attempt #1/3

09:18:15 GMT+0400    result: <fms>

  <origin>fms1.acrobat.com</origin>

  <proto_ports>rtmfp:1935,rtmps:443</proto_ports>

  <retry_attempts>2</retry_attempts>

</fms>

09:18:15 GMT+0400    protocols: [object ProtocolPortPair],[object ProtocolPortPair]

09:18:15 GMT+0400    [attempt 1 of 2] Connecting to 0/1: [CUT DUE TO SECURITY]/rec20111203144546 #startProtosConnect#

09:18:20 GMT+0400    [attempt 1 of 2] Connecting to 1/1: [CUT DUE TO SECURITY]/rec20111203144546 #onNextConnectTimer#

09:18:21 GMT+0400    tempNetStatusHandler 1/2,NetConnection.Connect.Success

09:18:21 GMT+0400    isTunneling? false

09:18:21 GMT+0400    is using RTMPS? true

09:18:21 GMT+0400    #SessionManagerPlayback 8240 fms connected: [Event type="connected" bubbles=false cancelable=false eventPhase=2]

09:18:22 GMT+0400    #SessionManagerPlayback 8402 receiveLogin:

09:18:22 GMT+0400      . [object]

09:18:22 GMT+0400        \\

09:18:22 GMT+0400        .options [object]=

09:18:22 GMT+0400        .descriptor [object]= [object Object]

09:18:22 GMT+0400        .ticket [string]= 1w7pm33g98nhh

09:18:22 GMT+0400    #SessionManagerPlayback 8408 ======= onConnected: play __PacingStream

09:18:22 GMT+0400    #SessionManagerPlayback 8665 ======= onMetadata: play __StreamOffsets

09:18:22 GMT+0400    #SessionManagerPlayback 8936 ======= receiveStreamOffset rec20111203144546/FileManager, 63

09:18:22 GMT+0400    #SessionManagerPlayback 8937 ======= receiveStreamOffset rec20111203144546/AVManager, 96

09:18:22 GMT+0400    #SessionManagerPlayback 8937 ======= receiveStreamOffset rec20111203144546/GoPresentManager, 127

09:18:22 GMT+0400    #SessionManagerPlayback 8938 ======= receiveStreamOffset rec20111203144546/UserManager, 160

09:18:22 GMT+0400    #SessionManagerPlayback 8939 ======= receiveStreamOffset rec20111203144546/RoomManager, 189

09:18:22 GMT+0400    #SessionManagerPlayback 8939 ======= receiveStreamOffset rec20111203144546/70646337-32E3-7188-4DFB-03887EB2B1C7, 63472

09:18:22 GMT+0400    #SessionManagerPlayback 8940 ======= receiveStreamOffset rec20111203144546/4CF9C166-42FD-FFDE-1503-0388B0CFB430, 69840

09:18:22 GMT+0400    #SessionManagerPlayback 8940 ======= receiveStreamOffset rec20111203144546/BED05DB7-47E5-8ADF-B2D8-038915B3DEE7, 100990

09:18:22 GMT+0400    #SessionManagerPlayback 8941 ======= receiveStreamOffset rec20111203144546/5B3EA931-3F80-AE40-FC93-03899050838A, 127091

09:18:22 GMT+0400    #SessionManagerPlayback 8942 ======= onOffsetStreamPlayStatus

09:18:22 GMT+0400      . [object]

09:18:22 GMT+0400        \\

09:18:22 GMT+0400        .code [string]= NetStream.Play.Complete

09:18:22 GMT+0400        .level [string]= status

09:18:22 GMT+0400        .bytes [number]= 1343

09:18:22 GMT+0400        .duration [number]= 0

09:18:22 GMT+0400    #SessionManagerPlayback 9069 realReceiveLogin:

09:18:22 GMT+0400      . [object]

09:18:22 GMT+0400        \\

09:18:22 GMT+0400        .descriptor [object]= [object Object]

09:18:22 GMT+0400    RECEIVED LOGIN AT SESSION

09:18:22 GMT+0400      .user descriptor from server [object]

09:18:22 GMT+0400        \\

09:18:22 GMT+0400        .userID [number]= 0

09:18:22 GMT+0400        .affiliation [number]= 10

09:18:22 GMT+0400    #SessionManagerPlayback 9077 ======= subscribeCollection root

09:18:22 GMT+0400    #SessionManagerPlayback 9078 ======= subscribeCollection __RootCollection - play

09:18:23 GMT+0400    #SessionManagerPlayback 9365 ======= subscribeCollection UserManager - play

09:18:23 GMT+0400    #SessionManagerPlayback 9366 ======= subscribeCollection FileManager - play

09:18:23 GMT+0400    #SessionManagerPlayback 9368 ======= subscribeCollection AVManager - play

09:18:23 GMT+0400    #SessionManagerPlayback 9370 ======= subscribeCollection RoomManager - play

09:18:23 GMT+0400    RECEIVENODES FileManager

09:18:23 GMT+0400    receiveAllSynchData FileManager

09:18:23 GMT+0400    checkManagerSync:[object FileManager]

09:18:23 GMT+0400    RECEIVENODES UserManager

09:18:23 GMT+0400    receiveAllSynchData UserManager

09:18:23 GMT+0400    Setting isPeer to false as connection is not RTMFP for Usernull

09:18:23 GMT+0400    RECEIVENODES RoomManager

09:18:23 GMT+0400    receiveAllSynchData RoomManager

09:18:23 GMT+0400    checkManagerSync:[object RoomManager]

09:18:23 GMT+0400    RECEIVENODES AVManager

09:18:23 GMT+0400    receiveAllSynchData AVManager

09:18:23 GMT+0400    checkManagerSync:[object StreamManager]

09:18:23 GMT+0400    checkManagerSync:[object UserManager]

09:18:23 GMT+0400    #SessionManagerPlayback 9838 ======= subscribeCollection GoPresentManager - play

09:18:23 GMT+0400    RECEIVENODES GoPresentManager

[Fault] exception, information=ReferenceError: Error #1056: Cannot create property SlideURL on com.adobe.rtc.messaging.MessageItem.

Probably LCCS playback feature not support playing custom collection nodes? I will send you in private my code.

Thank you in advance!

Cheers,

Nikita

Avatar

Level 2

Hello Raff,

Also I noted that when I call C# API to receive current room state AccountManager.getNodes("gp000000000000000087", "/"), I receive result XML, which contains information about item SlideURL in collection:

<node id="GoPresentManager">

<collection>

<nodes>

<node id="RoomState">

<collection>

<configuration></configuration>

<items>

<item id="3.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_3_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">3.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322903997149E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="SlideURL">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="body">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_3_800x600.jpg</value>

</property>

<property name="itemID">

<value type="string">SlideURL</value>

</property>

<property name="timeStamp">

<value type="double">1.322909278853E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="2.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_2_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">2.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322903935502E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="1.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_1_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">1.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322903906205E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="0.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_3_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">0.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322903866477E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="7.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_2_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">7.0</value>

</property>

<property name="timeStamp">

<value type="double">1.32290666193E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="6.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_1_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">6.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322906530416E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="5.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_3_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">5.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322904166327E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="4.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_2_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">4.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322904083841E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

<item id="8.0">

<property name="publisherID">

<value type="string">__server__</value>

</property>

<property name="SlideURL">

<value type="string">[CUT BY SECURITY REASONS]8388dfc6-8811-4c28-b52d-86be266cc048_3_800x600.jpg</value>

</property>

<property name="itemID">

<value type="double">8.0</value>

</property>

<property name="timeStamp">

<value type="double">1.322906722141E12</value>

</property>

<property name="associatedUserID">

<value type="string">__server__</value>

</property>

<property name="nodeName">

<value type="string">RoomState</value>

</property>

<property name="collectionName">

<value type="string">GoPresentManager</value>

</property>

</item>

</items>

</collection>

</node>

</nodes>

</collection>

</node>

Note please that I receive this XML from current room, NOT from recording. But looks like there are some bugs at LCCS side because actually it keeps items versions and time-stamps in the current room state- that's very strange. Also it is very strange that if I am using  LCCS SDK Navigator -> Room Console, then connect to room and try to explore - I see collection node (GoPresentManager) and Nodes(RoomState), but Items list is empty and I cannot add new items to this list.

Could you please explain it?

Cheers,

Nikita