Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

LCCS + Flash Player 11.2 issue

Avatar

Level 4

Hi all,

Any one else had problems with playback after installing Flash Player 11.2 ?  I have a bunch of data I can post but I think it's my code ( not sure why 10.3, 11.1 work fine but 11.2 specifically wouldn't change a mxml view... ), so just wondering if anyone else seeing issues.

Thanks,
Alex G.

1 Accepted Solution

Avatar

Correct answer by
Level 4

Turns out it is after all Flash Player 11.2 bug in NetStream.play() method used in SessionManagerPlayback.as.

During normal operation of NetStream.play a message is dispatched that triggers the following method:

which then triggers the "realReceiveLogin()" function

This causes a login event to be dispatched and eventually a buildChildren and etc.... this no longer happens in FP 11.2 nor 11.3 (beta)

Also this causes an unrelated bug where trying to skip forward in my playback, I get broken video/audio/everything that's because "NetStream.play()" breaks when you try to "seek" forward in time in the FLV yay!

:/

View solution in original post

7 Replies

Avatar

Level 4

This is starting to look more and more like an LCCS issue :/

As far as I can tell during normal session start up (non-recording) LCCS gets the "SessionEvent.SYNCHRONIZATION_CHANGE" in ConnectSessionContainer.as a the thus invoking this code:

But when in playback mode, seems that SessionManagerPlayback.as starts the playback wayyy too early AND SessionEvent.SYNCHRONIZATION_CHANGE is not dispatched so "buildChildren" is never invoked.

Thu Apr 5 10:26:28 GMT-0400 2012LCCS SDK Version : 2.2.0Player Version : MAC 11,2,202,228
10:26:28 GMT-0400requestInfo https://connect.acrobat.com/**************/localdevroom51?guk=ZzpwbGF5YmFjaw==&mode=xml&playback=tes...
10:26:29 GMT-0400#TicketService# ticket received: 1r1hkahegysgu
10:26:29 GMT-0400Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=1r1hkahegysgu&playback=test_record_51_2&prot..., attempt #1/3
10:26:39 GMT-0400result: <fms>

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

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

  <retry_attempts>2</retry_attempts>

</fms>

10:26:39 GMT-0400protocols: [object ProtocolPortPair],[object ProtocolPortPair]
10:26:39 GMT-0400[attempt 1 of 2] Connecting to 0/1: rtmfp://fms1.acrobat.com/playback/na2-c0798bf5-4164-4a17-978e-8495b1025a2d/localdevroom51/test_record_51_2 #startProtosConnect#
10:26:39 GMT-0400tempNetStatusHandler 0/2,NetConnection.Connect.Success
10:26:39 GMT-0400isTunneling? false
10:26:39 GMT-0400is using RTMPS? false
10:26:39 GMT-0400#SessionManagerPlayback 10968 fms connected: [Event type="connected" bubbles=false cancelable=false eventPhase=2]
10:26:39 GMT-0400#SessionManagerPlayback 10998 receiveLogin:
10:26:39 GMT-0400  . [object]
10:26:39 GMT-0400    \\
10:26:39 GMT-0400    .descriptor [object]= [object Object]
10:26:39 GMT-0400    .ticket [string]= vyajtrv4t01r
10:26:39 GMT-0400    .options [object]=
10:26:39 GMT-0400#SessionManagerPlayback 11004 ======= onConnected: play __PacingStream
10:26:40 GMT-0400#SessionManagerPlayback 11079 ======= onMetadata: play __StreamOffsets
10:26:40 GMT-0400#SessionManagerPlayback 11165 ======= receiveStreamOffset test_record_51_2/FileManager, 46
10:26:40 GMT-0400#SessionManagerPlayback 11166 ======= receiveStreamOffset test_record_51_2/AVManager, 61
10:26:40 GMT-0400#SessionManagerPlayback 11166 ======= receiveStreamOffset test_record_51_2/RoomManager, 85
10:26:40 GMT-0400#SessionManagerPlayback 11167 ======= receiveStreamOffset test_record_51_2/UserManager, 103
10:26:40 GMT-0400#SessionManagerPlayback 11168 ======= receiveStreamOffset test_record_51_2/myCamera, 121
10:26:40 GMT-0400#SessionManagerPlayback 11170 ======= receiveStreamOffset test_record_51_2/simpleNote, 136
10:26:40 GMT-0400#SessionManagerPlayback 11171 ======= receiveStreamOffset test_record_51_2/swb, 157
10:26:40 GMT-0400#SessionManagerPlayback 11171 ======= receiveStreamOffset test_record_51_2/5FE3CF8C-E808-6D97-968D-82E46471BF54, 180

Avatar

Level 4

here's playback trace from FP 11.1, that works fine for the same recording with the same app:

Also realized not getting the SessionEvent.SYNCHRONIZATION_CHANGE event because I'm not getting proper login in SessionManagerBase/SessionManagerFMS

Thu Apr 5 12:44:16 GMT-0400 2012LCCS SDK Version : 2.2.0Player Version : MAC 11,1,102,55
12:44:16 GMT-0400requestInfo https://connect.acrobat.com/***********************/localdevroom51?guk=ZzpwbGF5YmFjaw==&mode=xml&pla...
12:44:17 GMT-0400#TicketService# ticket received: 1lt2bq547mlfl
12:44:17 GMT-0400Getting FMS at https://na2.collaboration.adobelivecycle.com/fms?ticket=1lt2bq547mlfl&playback=test_record_51_2&prot..., attempt #1/3
12:44:18 GMT-0400result: <fms>

  <origin>fms4.acrobat.com</origin>

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

  <retry_attempts>2</retry_attempts>

</fms>

12:44:18 GMT-0400protocols: [object ProtocolPortPair],[object ProtocolPortPair]
12:44:18 GMT-0400[attempt 1 of 2] Connecting to 0/1: rtmfp://fms4.acrobat.com/playback/na2-c0798bf5-4164-4a17-978e-8495b1025a2d/localdevroom51/test_record_51_2 #startProtosConnect#
12:44:18 GMT-0400tempNetStatusHandler 0/2,NetConnection.Connect.Success
12:44:18 GMT-0400isTunneling? false
12:44:18 GMT-0400is using RTMPS? false
12:44:18 GMT-0400#SessionManagerPlayback 1936 fms connected: [Event type="connected" bubbles=false cancelable=false eventPhase=2]
12:44:18 GMT-0400#SessionManagerPlayback 2018 receiveLogin:
12:44:18 GMT-0400  . [object]
12:44:18 GMT-0400    \\
12:44:18 GMT-0400    .descriptor [object]= [object Object]
12:44:18 GMT-0400    .ticket [string]= 2txa1zn4q3x
12:44:18 GMT-0400    .options [object]=
12:44:18 GMT-0400#SessionManagerPlayback 2021 ======= onConnected: play __PacingStream
12:44:18 GMT-0400#SessionManagerPlayback 2065 ======= onMetadata: play __StreamOffsets
12:44:18 GMT-0400#SessionManagerPlayback 2155 ======= receiveStreamOffset test_record_51_2/FileManager, 46
12:44:18 GMT-0400#SessionManagerPlayback 2155 ======= receiveStreamOffset test_record_51_2/AVManager, 61
12:44:18 GMT-0400#SessionManagerPlayback 2155 ======= receiveStreamOffset test_record_51_2/RoomManager, 85
12:44:18 GMT-0400#SessionManagerPlayback 2156 ======= receiveStreamOffset test_record_51_2/UserManager, 103
12:44:18 GMT-0400#SessionManagerPlayback 2157 ======= receiveStreamOffset test_record_51_2/myCamera, 121
12:44:18 GMT-0400#SessionManagerPlayback 2157 ======= receiveStreamOffset test_record_51_2/simpleNote, 136
12:44:18 GMT-0400#SessionManagerPlayback 2157 ======= receiveStreamOffset test_record_51_2/swb, 157
12:44:18 GMT-0400#SessionManagerPlayback 2157 ======= receiveStreamOffset test_record_51_2/5FE3CF8C-E808-6D97-968D-82E46471BF54, 180
12:44:18 GMT-0400#SessionManagerPlayback 2158 ======= onOffsetStreamPlayStatus
12:44:18 GMT-0400  . [object]
12:44:18 GMT-0400    \\
12:44:18 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:18 GMT-0400    .duration [number]= 0
12:44:18 GMT-0400    .level [string]= status
12:44:18 GMT-0400    .bytes [number]= 1179
12:44:19 GMT-0400#SessionManagerPlayback 2269 realReceiveLogin:
12:44:19 GMT-0400  . [object]
12:44:19 GMT-0400    \\
12:44:19 GMT-0400    .descriptor [object]= [object Object]
12:44:38 GMT-0400RECEIVED LOGIN AT SESSION
12:44:38 GMT-0400  .user descriptor from server [object]
12:44:38 GMT-0400    \\
12:44:38 GMT-0400    .affiliation [number]= 10
12:44:38 GMT-0400    .userID [number]= 0
12:44:38 GMT-0400#SessionManagerPlayback 21821 ======= subscribeCollection root
12:44:38 GMT-0400#SessionManagerPlayback 21821 ======= subscribeCollection __RootCollection - play
12:44:38 GMT-0400#SessionManagerPlayback 21869 ======= subscribeCollection UserManager - play
12:44:38 GMT-0400#SessionManagerPlayback 21870 ======= subscribeCollection FileManager - play
12:44:38 GMT-0400#SessionManagerPlayback 21871 ======= subscribeCollection AVManager - play
12:44:38 GMT-0400#SessionManagerPlayback 21872 ======= subscribeCollection RoomManager - play
12:44:38 GMT-0400RECEIVENODES FileManager
12:44:38 GMT-0400receiveAllSynchData FileManager
12:44:38 GMT-0400checkManagerSync:[object FileManager]
12:44:38 GMT-0400RECEIVENODES UserManager
12:44:38 GMT-0400receiveAllSynchData UserManager
12:44:38 GMT-0400RECEIVENODES RoomManager
12:44:38 GMT-0400receiveAllSynchData RoomManager
12:44:38 GMT-0400checkManagerSync:[object RoomManager]
12:44:38 GMT-0400RECEIVENODES AVManager
12:44:38 GMT-0400receiveAllSynchData AVManager
12:44:38 GMT-0400checkManagerSync:[object StreamManager]
12:44:38 GMT-0400checkManagerSync:[object UserManager]
12:44:41 GMT-0400#SessionManagerPlayback 24540 ======= subscribeCollection myCamera - play
12:44:42 GMT-0400#SessionManagerPlayback 25504 ======= subscribeCollection simpleNote - play
12:44:43 GMT-0400#SessionManagerPlayback 26249 ======= subscribeCollection swb - play
12:44:43 GMT-0400RECEIVENODES simpleNote
12:44:43 GMT-0400receiveAllSynchData simpleNote
12:44:43 GMT-0400RECEIVENODES myCamera
12:44:43 GMT-0400receiveAllSynchData myCamera
12:44:43 GMT-0400#SessionManagerPlayback 26977 seek and play
12:44:43 GMT-0400RECEIVENODES swb
12:44:43 GMT-0400receiveAllSynchData swb
12:44:51 GMT-0400#SessionManagerPlayback 34450 ======= onPlayStatus
12:44:51 GMT-0400  . [object]
12:44:51 GMT-0400    \\
12:44:51 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:51 GMT-0400    .duration [number]= 0
12:44:51 GMT-0400    .level [string]= status
12:44:51 GMT-0400    .bytes [number]= 2340
12:44:51 GMT-0400#SessionManagerPlayback 34452 ======= onPlayStatus
12:44:51 GMT-0400  . [object]
12:44:51 GMT-0400    \\
12:44:51 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:51 GMT-0400    .duration [number]= 0
12:44:51 GMT-0400    .level [string]= status
12:44:51 GMT-0400    .bytes [number]= 978
12:44:51 GMT-0400#SessionManagerPlayback 34481 ======= onPlayStatus
12:44:51 GMT-0400  . [object]
12:44:51 GMT-0400    \\
12:44:51 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:51 GMT-0400    .duration [number]= 0
12:44:51 GMT-0400    .level [string]= status
12:44:51 GMT-0400    .bytes [number]= 1153
12:44:51 GMT-0400#SessionManagerPlayback 34488 ======= onPlayStatus
12:44:51 GMT-0400  . [object]
12:44:51 GMT-0400    \\
12:44:51 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:51 GMT-0400    .duration [number]= 0
12:44:51 GMT-0400    .level [string]= status
12:44:51 GMT-0400    .bytes [number]= 5348
12:44:51 GMT-0400#SessionManagerPlayback 34517 ======= onPlayStatus
12:44:51 GMT-0400  . [object]
12:44:51 GMT-0400    \\
12:44:51 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:51 GMT-0400    .duration [number]= 0
12:44:51 GMT-0400    .level [string]= status
12:44:51 GMT-0400    .bytes [number]= 4021
12:44:54 GMT-0400#SessionManagerPlayback 37783 ======= onPlayStatus
12:44:54 GMT-0400  . [object]
12:44:54 GMT-0400    \\
12:44:54 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:54 GMT-0400    .duration [number]= 0
12:44:54 GMT-0400    .level [string]= status
12:44:54 GMT-0400    .bytes [number]= 1278
12:44:55 GMT-0400#SessionManagerPlayback 38867 ======= onPlayStatus
12:44:55 GMT-0400  . [object]
12:44:55 GMT-0400    \\
12:44:55 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:55 GMT-0400    .duration [number]= 0
12:44:55 GMT-0400    .level [string]= status
12:44:55 GMT-0400    .bytes [number]= 991
12:44:56 GMT-0400#SessionManagerPlayback 39402 ======= onPlayStatus
12:44:56 GMT-0400  . [object]
12:44:56 GMT-0400    \\
12:44:56 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:56 GMT-0400    .duration [number]= 2
12:44:56 GMT-0400    .level [string]= status
12:44:56 GMT-0400    .bytes [number]= 10311
12:44:56 GMT-0400#SessionManagerPlayback 39499 ======= onPlayStatus
12:44:56 GMT-0400  . [object]
12:44:56 GMT-0400    \\
12:44:56 GMT-0400    .code [string]= NetStream.Play.Complete
12:44:56 GMT-0400    .duration [number]= 0
12:44:56 GMT-0400    .level [string]= status
12:44:56 GMT-0400    .bytes [number]= 38672

Avatar

Level 4

Here's something fun.... setting 'autoLogin' ( EDIT: not "autoJoin") to 'true' on ConnectSessionContainer seems to login to lccs but audio/video is de-synchronized with stage stuff

Avatar

Level 4

^ that fix worked for me in the 'simple' recording application, did not however work in the bigger production app I'm working on.

I'm having to call connectSession.archiveManager.seek(0) ... sigh what a terrible work around ( EDIT: Again this just starts the playback; which is NOT synchronized. Video + audio + stage are not in sync ).

Avatar

Correct answer by
Level 4

Turns out it is after all Flash Player 11.2 bug in NetStream.play() method used in SessionManagerPlayback.as.

During normal operation of NetStream.play a message is dispatched that triggers the following method:

which then triggers the "realReceiveLogin()" function

This causes a login event to be dispatched and eventually a buildChildren and etc.... this no longer happens in FP 11.2 nor 11.3 (beta)

Also this causes an unrelated bug where trying to skip forward in my playback, I get broken video/audio/everything that's because "NetStream.play()" breaks when you try to "seek" forward in time in the FLV yay!

:/

Avatar

Former Community Member

I tried some other things using a wowza test application and I noted that the main difference in this new flash player version is that NetStream does not launch the client callbacks before the player starts to play (events NetStream.Play.Start and NetStream.Buffer.Full) anymore, what was not a problem in the older ones. Or, of course, using the NetConnection client callback, instead of NetStream one, because it does not depends on "play". I can't see any options or workarounds that could be applied to client side.