As with other A/V components, LCCS provides a publisher component for capturing and broadcasting a user's screen, and a subscriber component for receiving the publisher's stream and rendering it. In this case, the publisher component is "headless", similar to the AudioPublisher, in that it has no user interface. The ScreenShareSubscriber has a rudimentary user interface - it displays one incoming video stream within the subscriber component's dimensions.
Similar to the AudioPublisher, the ScreenSharePublisher's API makes it easy to add screen publishing - simply instantiate the component and call screenSharePublisher.publish(); In the Flash Player, this will cause the publishing user to see the following :
The user is given the choice to capture all of the screen, or specific applications or windows within it. If the user chooses specific apps or windows, any screen real-estate outside the selected apps or window appears as cross-hatched shading to subscribers.
It's worth noting that capture of the screen is not a capability of the Flash Player itself; rather, a small addin component is downloaded, installed, and launched under the control of the ScreenSharePublisher. This addin is available for Windows XP (or higher) and Mac OSX in the browser plugin and AIR.
Note that for the first release, this addin is labeled as "Adobe ConnectNow" for the download. In the future, this naming may change.
Upon accepting any download and the permissions dialog, the user in question will have video captured from the desktop screen (or specific app or window, as requested) and broadcast to any subscribers listening.
The ScreenSharePublisher also provides a variety of APIs for controlling the quality of the screen share, such as fps (frames per second), keyFrameInterval, and quality. Set these properties of the publisher before calling publish() to specify settings. The addin will be closed down if ScreenSharePublisher.stop() is called or if the user ends their ConnectSession by logging out or closing the browser or app that contains the publisher.
In order to receive screen capture video, simply instantiate a ScreenShareSubscriber, add it to a display list, and give it a size (set its width and height). The subscriber will automatically display the first screen share stream available to it. If there are multiple publishers broadcasting their screens, developers can specify which one to display in a given subscriber by setting
In order to find a list of streams available for subscription, use
This will return an object with the streamIDs of all screenshare streams. To fetch the descriptors for each stream, use
This will give you the details of a given stream, such as the streamPublisherID, for use specifying the stream for the ScreenShareSubscriber.