SessionManagerPlayback is fiendishly constructed.
Sequence :
1) Connect to FMS
2) Play the pacingStream in order to get the total time of the recording
3) PacingStream's onMetadata will tell you the total. Stop the pacing stream from here.
4) Flush the offsets stream to get a table of all the streams in this recording, and their offsets. (see definition of "flushing")
5) set a timeout to receiveLogin
6) Start the pacing timer
7) ConnectSession will start subscribing the rootCollection and managers
8) Once that's done, the app logic will start subscribing the individual collections
public var archiveID:String
protected var _avStreams:Object
public var currentTime:Number = 0
protected var _dataStreams:Object
protected var _isDisconnected:Boolean = false
protected var _isPlaying:Boolean = true
isSynchronized:Boolean [write-only]Implementation
session_internal function set isSynchronized(value:Boolean):void
protected var _lastTime:Number
protected var _lengthPaceStream:NetStream
protected var _offsetsRead:Boolean = false
protected var _offsetStream:NetStream
protected var _offsetTable:Object
protected static var PACING_INTERVAL:int = 250
protected var _pacingTimer:Timer
protected var _startTime:Number
protected var _streamSeekTable:Object
public var totalTime:Number = -1
public function SessionManagerPlayback()
session_internal override function getAndPlayAVStream(p_streamID:String, p_peerID:String = null):NetStreamParameters
| p_streamID:String |
| |
| p_peerID:String (default = null) |
Returns
protected override function getFMSXML(p_suffix:String = ""):voidParameters
| p_suffix:String (default = "") |
protected function getStreamPath(p_name:String):StringParameters
Returns
session_internal function isPaused():Boolean
Returns
protected function myTrace(... args):voidParameters
session_internal function onAVSeekPause(p_stream:NetStream):voidParameters
protected function onConnected(p_evt:Event):voidParameters
protected override function onFmsConnectorDisconnect(p_evt:Event):voidParameters
public function onMetaData(info:Object):voidParameters
public function onOffsetStreamPlayStatus(info:Object):voidParameters
protected function onPacing(p_evt:TimerEvent):voidParameters
public function onPlayStatus(info:Object):voidParameters
public function onSeekComplete(p_client:PlaybackSeekClient):void
called when a seek ends and the SeekClient receives an onPlayStatus "switch"
Parameters
session_internal function pause(p_toggle:Boolean):voidParameters
public override function receiveLogin(p_userData:Object):voidParameters
public function receiveStreamOffset(p_name:String, p_offset:Number):voidParameters
| p_name:String |
| |
| p_offset:Number |
session_internal function seek(p_time:Number):voidParameters
public function streamRecordingStart(p_collectionName:String):voidParameters
public function streamRecordingStop():void
session_internal override function subscribeCollection(p_collectionName:String = null, p_nodeNames:Array = null):voidParameters
| p_collectionName:String (default = null) |
| |
| p_nodeNames:Array (default = null) |
session_internal override function unsubscribeCollection(p_collectionName:String = null):voidParameters
| p_collectionName:String (default = null) |
protected static const OFFSET_FILE_NAME:String = "__StreamOffsets"
protected static const PACING_FILE_NAME:String = "__PacingStream"
2008-2010 Adobe Systems Incorporated. All rights reserved.
Current page: http://livedocs.adobe.com/labs/acrobatcom/com/adobe/rtc/session/managers/SessionManagerPlayback.html