Capturing dynamic content presented in meetings
A system with a central control channel and media processor scrapes and records interactive screen sharing sessions, addressing the inability of unsupported devices to view or record, enabling real-time and playback consumption.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-14
- Publication Date
- 2026-03-19
AI Technical Summary
Devices lacking the capability to support interactive screen sharing sessions cannot properly view or record multimedia content, leading to incomplete consumption and recording of such sessions.
A system with a central control channel, media composition runtime component, and media processor facilitates the scraping and recording of interactive screen sharing sessions, enabling consumption and recording by devices that otherwise cannot support them.
Enables real-time consumption and subsequent playback of interactive screen sharing sessions by devices that lack native support, allowing synchronized and asynchronous interaction with the content.
Smart Images

Figure CN2024119026_19032026_PF_FP_ABST
Abstract
Description
CAPTURING DYNAMIC CONTENT PRESENTED IN MEETINGSTECHNICAL FIELD
[0001] Examples pertain to providing data for device consumption during a communication session. Some examples pertain to configuring data associated with a communication session for consumption by devices that lack the capability to consume the data of the communication session.BACKGROUND
[0002] Sharing applications allow a presenter to share the contents on their display device with recipients in real time. When an application is shared, the pixels displayed at the device of the presenter are scraped and sent along to the recipients. The scraped pixels are also sent to another application or a bot, which can save the scraped pixels in a recording file. Thus, at a later time, an additional user may access the scraped pixels in the recording file and view the presentation in full audio and video fidelity.BRIEF DESCRIPTION OF THE DRAWINGS
[0003] In the drawings, which are not necessarily drawn to scale, like numerals may describe similar components in different views. Like numerals having different letter suffixes may represent different instances of similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document.
[0004] Figure 1 shows an environment in which examples may operate, according to some examples of the present disclosure.
[0005] Figure 2 is a schematic that illustrates various components of the environment of Figure 1, according to some examples of the present disclosure.
[0006] Figures 3A and 3B illustrate a method for providing recipients the ability to support an interactive screen sharing session who otherwise cannot support the interactive screen sharing session, according to some examples of the present disclosure.
[0007] Figure 4 illustrates media of an interactive screen sharing session that can be shared with recipient devices that lack the ability to support an interactive screen sharing session, according to some examples of the present disclosure.
[0008] Figure 5 is a block diagram illustrating an example of a machine upon which one or more examples may be implemented.
[0009] Figure 6 illustrates a device that can be used to implement exemplary examples of the present disclosure.DETAILED DESCRIPTION
[0010] Typically, during use of a collaboration application that can include file sharing along with the exchange of multimedia streams, an interactive screen sharing session for an application hosted by the collaboration application can occur. An interactive screen sharing session can allow a presenter to share an application currently being used by the presenter with recipients. However, not all of the recipients can manipulate aspects of the application via control signals and the interactive screen sharing session cannot be recorded. The recipients that can manipulate the interactive screen sharing session can launch the application used by the interactive screen sharing session on their individual devices.
[0011] However, some recipients, such as bots, do not support interactive screen sharing sessions. For example, the recipient’s devices may not support the application used by the interactive screen sharing session. In these cases, these recipients may lack the ability to properly view the multimedia associated with the interactive screen sharing session and interpret control signals associated with the interactive screen sharing session. This can occur due to these recipients lacking the ability to render or run the application used by the interactive screen sharing session or the components that can be used to render the interactive screen sharing session. Moreover, when a deviation occurs from screen sharing that implements scraping pixels, the content being presented during the deviation cannot be recorded.
[0012] Examples relate to a system for providing application recipients the ability to support an interactive screen sharing session. The system can improve a user experience when a presenter begins an interactive screen sharing session that shares an application that typically is not recorded. The system can include a central control channel in communication with a media composition runtime (MCR) component. The system can also include a media processor in communication with the MCR component where the media processor can facilitate communication with the recipients. The MCR component can include a transcoder that can scrape pixels of an interactive screen sharing session and provide the scraped interactive screen sharing session to the media processor. The MCR component can also facilitate recording of the interactive screen sharing session by sending the scraped pixels to a recorder, which can then record the scraped pixels. The media processor can then share the scraped interactive screen sharing session with users that normally would not be able to support the live share application presentation.
[0013] An application recipient can also communicate with the central control channel. The application recipient can be configured to provide a declaration to the central control channel indicating that the application recipient cannot support an interactive screen sharing session. When the central control channel receives an indication from a presenter that they will begin an interactive screen sharing session, the central control channel can prompt the MCR component to receive the interactive screen sharing session, scrape the interactive screen sharing session and send the scraped interactive screen sharing session to the media processor. The media processor can then forward the scraped interactive screen sharing session to the recipient.
[0014] To further illustrate, a presenter may have a communication session planned for a given time that will use Microsoft TeamsTM at a time T1. At the time T1, recipients can access the communication session. Some of the recipients may be associated with a third-party application that is separate from Microsoft TeamsTM. In this instance, the media processor can facilitate interoperations between the third-party application and Microsoft TeamsTM. Moreover, when these recipients access the communication session, these recipients can each send a declaration to the central control channel indicating that these recipients cannot transcode a presentation associated with an interactive screen sharing session.
[0015] At a time T2, the presenter may decide to live share a PowerpointTMpresentation. At the time T2, the central control channel can receive an indication that the presenter intends to live share the PowerpointTM presentation. Thus, the central control channel can invoke a web content capturing component on the MCR component to begin converting the PowerpointTM presentation from a live-share screen sharing session to a traditional pixel-based screen sharing session. The pixels may then be sent to the media processor. The media processor can then send the scraped pixels to the recipients who otherwise would not be able to consume the PowerpointTM presentation.
[0016] Examples address technical problems rooted in computer technology where examples provide technological solutions to technological problems specific to computer networks. A technical problem specifically arising in the realm of computer networks relates to allowing users to consume an interactive screen sharing session that utilizes a network-based communication session to facilitate sharing. Often times, a device associated with the user may not be capable of supporting the interactive screen sharing session. In these scenarios, users associated with those devices that are not capable of supporting the application cannot consume the interactive screen sharing session. Another technical problem relates to being able to consume the interactive screen sharing session at a later time. In particular, the interactive screen sharing session is not capable of being recorded. Thus, the interactive screen sharing session cannot be viewed at a later time. In order to address these technical problems, examples are focused on the consumption of interactive screen sharing session and challenges particular to the Internet and computing environments utilized by an interactive screen sharing session. Examples use components in an unconventional manner in order to improve computer functionality. More specifically, examples use these components to provide technical solutions that allow a user to consume an interactive screen sharing session that the user would normally not be able to consume due to limitations of a device associated with the user. The components facilitate the consumption of the interactive screen sharing session even though the device associated with the user is not capable of supporting the interactive screen sharing session. Moreover, the components facilitate the recording of the interactive screen sharing session such that the interactive screen sharing session can be consumed at a later time.
[0017] A technical solution lies in determining that the device associated with the user is not capable of supporting an interactive screen sharing session. Components are capable of determining that an interactive screen sharing session has begun. A further technical solution lies with components manipulating the interactive screen sharing session based on the inability of the device associated the user to support the interactive screen sharing session. Moreover, a component records the manipulated interactive screen sharing session such that the interactive screen sharing session can be consumed by users who otherwise would not be able to consume the interactive screen sharing session due to the technical shortcomings of devices associated with the users. Moreover, since the component allows for the consumption of an interactive screen sharing session at a device that normally would not allow the consumption of the interactive screen sharing session, examples are rooted in computing technology.
[0018] Now making reference to Figure 1, an environment 100 in which examples may operate is shown. A presenter associated with a presenter device 102 can execute a network-based communication application, generically shown as 104, which can provide a persistent communication application. The network-based communication application 104 can provide audio and / or video-based collaboration with document sharing, virtual meetings, group meetings, and the like between the presenter device 102 and devices 106A-C and 109 via a network 108. The network-based communication application 104 can be based locally on the presenter device 102 and the devices 106A-C. Additionally, a server device 110 can provide the network-based communication application 104 to the devices 102, 106A-C, and 109. An example of the network-based communication application 104 can include Microsoft TeamsTM.
[0019] The presented device 102 and the devices 106A-C along with the server device 110 can include any type of computing device, such as a desktop computer, a laptop computer, a tablet computer, a portable media device, or a smart phone. Throughout this document, reference may be made to the device 106 or the devices 106A-C. The term device 106 and the term devices 106A-C are interchangeable with each other.
[0020] The network 108 may be any network that enables communication between or among machines, databases, and devices (e.g., the presenter device 102 and the devices 106A-C) . The network 108 can be a packet routing network that can follow the Internet Protocol (IP) and the Transport Control Protocol (TCP) . Accordingly, the network 108 can be a wired network, a wireless network (e.g., a mobile or cellular network) , or any suitable combination thereof. The network 108 can include one or more portions that constitute a private network, a public network (e.g., the Internet) , or any suitable combination thereof.
[0021] The presenter device 102 can execute a content-based application 112 that is separate from the network-based communication application 104. Content opened with the content-based application 112 at the presenter device 102 can be shared with the devices 106A-C, where the content-based application 112 along with the media opened within the content-based application 112 can be shared with the devices 106A-C. Examples of the content-based application 112 can include a word processing application, a database application, a spreadsheet application, a presentation application, a multimedia application, or the like. Examples of content opened within the content-based application 112 can include a document, a database, a spreadsheet, a presentation, multimedia, or the like. Further examples of content opened within the content-based application 112 can include video, audio, or a communication text string.
[0022] The device 109 can be a display device, such as a light emitting device (LED) monitor, that displays data to attendees 113. The device 109 can include a composer bot 200 (Figure 2) that can function to relay and display the network-based communication application 104 to the attendees 113. The device 109 can also include a cloud video interoperations (CVI) bot 202 (Figure 2) that can facilitate interoperability between the network-based application 104 and an application 114. The application 114 can be an application that is different from the network-based application 104. To further illustrate, the application 114 can be a third-party conference room solution. The CVI bot 202 can provide interoperations capability between the network-based communication application 104 and the application 114.
[0023] Now making reference to Figure 2, a schematic 204 that illustrates various components of the network 100 is shown. The server device 110 can include a MCR component 206 and a control component 208. As described herein, reference to the MCR component 206 and control component 208 performing operations can relate to the server device 110 performing the operations. The MCR component 206 can include a MCR transcoder 210 having the network-based application 104. The MCR transcoder 210 can include a web browser 212 that runs the application 112. The web browser 212 can be a headless web browser that can run in the background without displaying visual elements in order to decrease overhead consumption. The web browser 212 can also be a lightweight web browser in order to decrease overhead consumption.
[0024] When an indication is received from the composer bot 200 that the composer bot 200 is not capable of supporting an interactive screen sharing session along with receiving an indication that a user associated with the presenter device 102 will begin an interactive screen sharing session, the control component 208 can send a control signal to the MCR component 206 instructing the MCR component 206 to being scraping the interactive screen sharing session. As used herein, the MCR component 206 can correspond to a conversion component, which can function to provide content screen sharing for an interactive screen sharing session to a computing device that otherwise lacks the ability to support the interactive screen sharing session.
[0025] The MCR transcoder 210 can spool up the web browser 212 and run an instance of the application 112 using the web browser 212. The MCR component 206 can be provided a Uniform Resource Locator (URL) that the MCR component 206 can use to access the application 112. Within the application 112, the MCR transcoder 210 can run the interactive screen sharing session. The MCR transcoder 210 can include a browser application programming interface (API) scraper 214 that can be used to manipulate the interactive screen sharing session. In particular, the API scraper 214 can scrape pixels from the interactive screen sharing session that is running on the web browser 212. The API scraper 214 can also tap into an audio stream of the interactive screen sharing session, a video stream of the interactive screen sharing session, or an audio / video stream of the interactive screen sharing session. The MCR component 206 can record the scraped pixels of the interactive screen sharing session along with the tapped audio / video streams of the interactive screen sharing session.
[0026] Moreover, the MCR component 206 can function to determine if errors are occurring in the interactive screen sharing session and relay the occurrence of the errors to control component 208. The control component 208 can then send an indication of the error occurring to the presenting device 102. The errors can include the interactive screen sharing session exceeding a scaling limit. The MCR component 206 can also function to make the control component 208 aware of errors occurring at the MCR transcoder 210. For example, the MCR transcoder 210 may be having issues with spooling up the web browser 212 or running the application 112. In addition, the MCR transcoder 210 may be having issues with the API scraper 214. These problems can be relayed by the MCR component 206 to the control component 208 as errors occurring at the MCR component 206.
[0027] The MCR component 206 can annotate the scraped pixels. The annotation can provide an indication to end users having the native ability to support the interactive screen sharing session to ignore the scraped pixels and instead to continue consuming the interactive screen sharing session. In addition, the MCR component 206 can forward along the scraped pixels of the interactive screen sharing session along with the tapped audio / video streams of the interactive screen sharing session 216 (hereinafter “scraped pixels 216” ) to a media processor 218.
[0028] The media processor 218, which can receive control signals from a media controller 224, can function to forward along the scraped pixels 216 along with an interactive screen sharing session 220 to recipients 222. In addition, the media processor 218 can function to manage transmission of real time video, real time audio, and screen sharing modalities.
[0029] The media processor 218 can function as a multipoint audio control unit. More specifically, the media processor 218 can mix audio from multiple parties and send the mixed audio to the presenter device 102 along with the recipients 222. Thus, if the presenter device 102 is providing audio along with the device 106A, the media processor 218 can function to mix the audio from each of the presenter device 102 and the device 106A and send the mixed audio to the devices 106B and 106C and the display 109.
[0030] The media processor 218 can function as a switchboard for video received from the presenter device 102 and the devices 106A-C. To further illustrate, the presenter device 102 may be providing video at the same time the device 106A is providing video. Users associated with the device 106B and the display 109 may have a preference for video from the presenter device 102 while a user associated with the device 106C may have a preference to receive video from the device 106A. In the capacity of a switchboard, the media processor 218 can function to send the video from the presenter device 102 to the device 106B and the display 109 while at the same time sending the video from the device 106A to the device 106C.
[0031] Alternatively, the MCR component 206 can include a browser extension that can access the URL. When the web browser 212 spools up, the browser extension can scrape the interactive screen sharing session and send the scraped interactive screen sharing session to the media processor 218. In addition, the browser extension can annotate the scraped pixels 216 as discussed above.
[0032] The control component 208 can include a conversation service 226, a call controller 228, and a platform media agent (PMA) 230. The conversation service 226 can track which of the recipients 222 have a joined a communication session. In addition, as the recipients 222 join a communication session, each of the recipients can provide indications 116 and 118 that can relate to whether or not the recipient device sending one of the indications 116 or 118 can support an interactive screen sharing session. The indication 116 can be a declaration that indicates the device associated with a recipient cannot support an interactive screen sharing session. The indication 118 can be a declaration that indicates the device associated with a recipient can support an interactive screen sharing session. If the conversation service 226 receives the indication 116 when the presenter 102 begins an interactive screen sharing session, the conversation service 226 can cause the MCR component 206 to begin scraping the interactive screen sharing session as discussed above. Alternatively, if an interactive screen sharing session is in progress when a recipient joins who lacks the capability to support the interactive screen sharing session, when the conversation service receives the indication 116 during an interactive screen sharing session that is already in progress, the conversation service 226 can cause the MCR component 106 to begin scraping the already in-progress interactive screen sharing session as described above.
[0033] The call controller 228 can manage individual call sessions between the presenter 102 and each of the recipients 222. Furthermore, when a new recipient joins a communication session, the call controller 228 can send control signals to the media processor 218 indicating that a new recipient has joined the communication session. In response to receiving the control signal, the media processor 218 can allocate resources to connect the new recipient to the communication session, which can include allocating resources for the interactive screen sharing session. The PMA 230, along with a media platform as a service (MPaaS) 232 can function to get the bot 200 and the CVI bot 202 connected to the communication session along with an interactive screen sharing session.
[0034] As noted above, examples relate to a method for providing recipients the ability to support an interactive screen sharing session that otherwise cannot support the interactive screen sharing session. An example of this is shown with reference to Figures 3A and 3B and a method 300. Any type of computing device, such as the server device 110, can perform the method 300. During an operation 302, the method 300 establishes a network-based communication session between a first computing device, a second computing device, and a third computing device.
[0035] Once the network-based communication session is established, a presentation indication can be received by the first computing device to begin a presentation of content using an interactive screen sharing session during an operation 304. The interactive screen sharing session can have a synchronous mode and an asynchronous mode. In the synchronous mode, the presentation of content on devices during the interactive screen sharing session can be synchronized to a view shown by the first computing device. Thus, if a presenter at the first computing device decides to use an application having content that can be shared via the network-based communication session, the content can be shown on the other devices during the interactive screen sharing session. Thus, if the content includes twenty pages and the presenter is on the tenth page at the first computing device, in the synchronous mode, the other devices will be viewing the tenth page.
[0036] In the asynchronous mode, a non-presenting device can send control signals to manipulate the presentation of content. Thus, if a user at a recipient device desires to skip back to page three of the presentation of the content, the user can do so while the presenter is at the tenth page. If another user at a recipient device desires to skip ahead to page fifteen of the presentation of the content, the user can do so while the presenter is at the tenth page.
[0037] As an example of the method 300 and referred to herein as “the example, ” reference is now made to Figures 1 and 4. During the operation 302, the control component 208 establishes a network-based communication session via Microsoft TeamsTM between the presenter device 102 (first computing device) , the user device 106A (second computing device) , the device 109 (third computing device) , and the user device 106B.
[0038] After the network-based communication session begins, the presenter associated with the presenter device 102 begins a content presentation 400 that utilizes PowerPointTM. The control component 208 receives a presentation indication that the presenter device 102 will begin the content presentation 400 during the operation 304. In the example, the content presentation 400 includes fourteen slides where the presenter device is currently presenting slide 402, which corresponds to slide eleven of the content presentation 400. The presenter device 102 shares the content presentation 400 during an interactive screen sharing session having both a synchronous mode and an asynchronous mode with the devices 106A, 106B, and 109, which, in the example, are recipient devices. When the content presentation 400 is presented on some of the recipient devices, the content presentation 400 can include buttons 404-408.
[0039] In the example, a user associated with the device 106A chooses to view the content presentation in synchronization with the presenter device 102. Therefore, the slide 402 is displayed at the device 106A. However, a user associated with the device 106B desires to skip ahead to view the fourteenth slide of the content presentation 400. As such, the user associated with the device 106B sends control signals via the button 406 to skip ahead to the fourteenth slide in an asynchronous mode. After a first period of time, the user associated with the device 106B desires to skip back to the fifth slide of the content presentation 400. As such, the user associated with the device 106B sends control signals via the button 404 to skip back to the fifth slide in an asynchronous mode. After a second period of time, the user associated with the device 106B desires to synchronize with the presenter device 102 and can thus a send a control signal via the button 408 to synchronize with content presentation 400 displayed at the device 106B with the content presentation 400 displayed at the presenter device 102.
[0040] Returning to Figure 3A, a first indication can be received that indicates the second computing device supports the interactive screen sharing session during an operation 306. The first indication can be the indication 118. Furthermore, during the operation 306, a second indication message is received that the third computing device does not support the interactive screen sharing session. The second indication can be the indication 116. The second message can be sent from the third computing device based on logic loaded onto the third computing device. The logic can indicate that the third computing device cannot support the interactive screen sharing session.
[0041] The computing device, such as the second computing device, can have the ability to support an interactive screen sharing session when the computing device can spool up a web browser, such as the web browser 212, and render an instance of an application utilized by content in the interactive screen sharing session, such as the application 112. A computing device, such as the third computing device, may not have the ability to support an interactive screen sharing session when the computing device cannot spool up a web browser, such as the web browser 212, and therefore cannot render an application utilized by content in the interactive screen sharing session, such as the application 112. This can occur when a computing device includes a bot, such as the composer bot 200 or the CVI bot 202, that renders the network-based communication session.
[0042] While the operation 306 is described as occurring after the operation 304, the operation 306 can occur at anytime. Thus, the operation 306 can occur before the operation 302, after the operation 302 and before the operation 304, or before and / or after any of the operations of the method 300 as described herein. More specifically, the third computing device can provide the second indication before the interactive screen sharing session begins or when the third computing device or another computing device that cannot support the interactive screen sharing session joins the network-based communication session after the network-based communication session has already begun.
[0043] The method 300 can also perform an operation 308, where, responsive to the presentation indication to begin the interactive screen sharing session and responsive to the first indication message indicating that the second computing device supports the interactive screen sharing session, an individual session can be established between the second computing device and a server of the communication service. The communication session can be established in order to allow the second computing device to receive a copy of the presentation of content presented by the first computing device during the interactive screen sharing session.
[0044] Returning to the example and Figures 1 and 2, during the operation 306, the control component 208 can receive the indication 118 from the user devices 106A and 106B along with the indication 116 from the device 109. During the operation 308, the control component 208 can establish an individual session between the user device 106A and the server device 110. The individual session can relate to establishing a PowerPointTM session between the user device 106A and the server device 110. As part of establishing the individual session, the user device 106A spools up a web browser having the characteristics of the web browser 212 as described above and then runs an instance of the PowerPointTM session. Here, the instance can be a lightweight version of the PowerPointTM application utilized by the PowerPointTM session. In the example, using the established individual session between the user device 106A and the server device 110, the user device 106A can receive a copy of the content presentation 400 via the interactive screen sharing session 220. In particular, the media processor 218 can allocate resources to forward a copy of the content presentation 400 from the presenter device 102 to the user device 106A.
[0045] Returning to Figure 3A, in response to the presentation indication relating to the interactive screen sharing session beginning and receiving the second indication relating to the third computing device not being able to support an interactive screen sharing session, an operation 310 is performed. During the operation 310, a conversion software component, such as the MCR component 206, can receive the content on behalf of the third computing device.
[0046] The conversion software component can also select an application based upon a type of the content presented by the first computing device during an operation 312. The conversion software component can make the selection based on a URL forwarded to the conversion software component as discussed above in order to access the application utilized by the content presented by the first computing device.
[0047] In the example, during the operation 310, the MCR component 206 receives the content presentation 400 on behalf of the device 109 based on the indication 116 sent by the device 109 and in response to the PowerPointTM session beginning. Here, the MCR component 206 also received a URL relating to a lightweight version of an instance of the PowerPointTM application. Since the content presentation 400 relates to a PowerPointTM session, the MCR component 206 can select the URL relating to the lightweight version of the instance of the PowerPointTM application during the operation 312.
[0048] Turning to Figure 3B and the method 300, once the application is selected, the method 300 performs an operation 314, where the application is executed within the conversion software component. When the application is executed within the conversion software component, a display of the received presentation of content is rendered. Here, the rendered display is synchronized with the display at the first computing device, as described above.
[0049] After executing the selected application, the conversion software component accesses a memory buffer with pixel data of the rendered display during an operation 316. For examples, the conversion software component can scrape data pixels using an API scraper as described above. The conversion software component can then temporarily store the scraped pixels at the memory buffer.
[0050] Once the conversion software component accesses the memory buffer, an operation 318 is performed where the conversion software component provides at least a portion of data within the memory buffer to the third computing device. Providing the portion of data to the third computing device can cause the third computing device to display the presentation of the content that is synchronized with the display of the first computing device.
[0051] Returning to the example and Figure 2, during the operation 314, the MCR component 206 spools up the web browser 212 and accesses the URL relating to the lightweight version of the instance of the PowerPointTM application. The MCR component 206 then renders a display of the content representation 400 where the version rendered by the MCR component 206 is synchronized with the display of the presenter device 102. Thus, the rendered version is at slide eleven of the content presentation 400.
[0052] During the operation 316, the MCR component 206 scrapes the content presentation with the API scraper 214 and accesses a memory buffer 120 to temporarily store the scraped pixels 216 at the memory buffer 120. The MCR component 206 then provides a portion of the scraped pixels 216 to the display 109. In particular, the MCR component 206 provides the scraped pixels 216 to the media processor 218, which then provides the scraped pixels to the display 109, where the scraped pixels are displayed via the display 109 as the content representation 400 to the attendees 113. By virtue of displaying the scraped pixels at the display 109, the scraped pixels 216 can be consumed during the Microsoft TeamsTM session.
[0053] The scraped pixels 216 can be stored at the memory buffer 120 as a recording of the content presentation 400 such that the scraped pixels are recorded pixel data accessible at the memory buffer 120. In examples, recorded pixel data can be part of a recording of the network-based communication session. Thus, in the example above, when a recording of the network-based communication session where the presenter device displayed the content presentation 400 is generated and stored, in addition to the Microsoft TeamsTM session, the content presentation 400 can also be recorded and stored at the memory buffer 120. As such, the recorded version of the network-based communication session that includes the content presentation 400 can be played back at a later time. Moreover, for those devices that can support an interactive screen sharing session as described above, such as the user devices 106A and 106B in the example, these devices can manipulate the recorded version of the content presentation 400, such as employing the buttons 404-408 to skip back, skip ahead, and synchronize with the presenter device 102.
[0054] Moreover, in addition to allowing the device 109 to consume the content presentation 400 in real time during the network-based communication session, by virtue of storing the scraped pixels at the memory buffer 120, the display 109 is able to view a recorded version of the scraped pixels 216 at a later time. In particular, the media processor 218 can access the memory buffer 120 at a later time and provide the scraped pixels 216 to the display 109 to allow for display and viewing by a user. After scraping, the MCR component 206 sends the scraped pixels to the media processor, which then forwards along the scraped pixels to a recorder for recording.
[0055] After the MCR component 206 begins providing the scraped pixels 216 to the display 109, if a device, such as the user device 106B, that is capable of supporting the interactive screen sharing session loses the capability to support the interactive screen sharing session, since the MCR component 206 and the media processor 218 are already providing the scraped pixels 216, the device can begin displaying the scraped pixels 216.
[0056] In further examples, when a device loses the capability to support the interactive screen sharing session, the device can send the indication 116. The device, such as the user device 106B, can send the indication 116 after initially sending the indication 118. Thus, the media processor 218 can push the scraped pixels 216 to the user device 106B in response to the user device 106B sending the indication at a later time. Here, the MCR component 206 can provide the portion of the scraped pixel data from the memory buffer 120 to the user device 106B. Moreover, the MCR component 206 can begin scraping pixels as discussed above if the user device 106B sends the indication 116 after initially sending the indication 118 after the interactive screen sharing session begins where the MCR component 206 is not scraping pixels as described above in scenarios where all recipients are associated with devices that can initially support the interactive screen sharing session.
[0057] In further examples, another computing device can join the network-based communication session after the network-based communication session has begun where the MCR component 206 is providing the scraped pixels 216 to computing devices that do not support the interactive screen sharing session. If the newly joining device does not support the interactive screen sharing session, the newly joining device can send an indication to the control component 208 with this indication. To further illustrate, the display 109 may already be receiving the scraped pixels 216 during a network-based communication session. If the user device 106C cannot support the interactive screen sharing session and joins the in-progress network-communication session along with the interactive screen sharing session that includes the content presentation 400, the user device 106C can send the indication 116 to the control component 208. In response, the MCR component 206 can provide a portion of the scraped pixels 216 from the memory buffer 120 to the user device 106C.
[0058] Figure 5 illustrates a block diagram of an example machine 500 upon which any one or more of the techniques (e.g., methodologies) discussed herein may be performed. In alternative embodiments, the machine 500 may operate as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine 500 may operate in the capacity of a server machine, a client machine, or both in server-client network environments. In an example, the machine 500 may act as a peer machine in peer-to-peer (P2P) (or other distributed) network environment. The memory machine 500 may be in the form of a server computer, personal computer (PC) , a tablet PC, a set-top box (STB) , a personal digital assistant (PDA) , a mobile telephone, a smart phone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by that machine. Machine 500 may be configured to provide the functionality of the various devices described with reference to Figure 1; establishing a network-based communication session between a first computing device, a second computing device, and a third computing device; receive a presentation indication by the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session with reference to Figures 1-4; receive a first indication message indicating that the second computing device supports the interactive screen sharing session; receive a second indication message indicating that the third computing device does not support supports the interactive screen sharing session; establish an individual session between the second computing device and a server of a communication service for the second computing device to receive, from the server, a copy of the presentation of content presented by the first computing device during the interactive screen sharing session; receive the content on behalf of the third computing device, the conversion software component; select an application based upon a type of the content presented by the first computing device; execute the selected application within the conversion software component to render a display of the received presentation of content; access a memory buffer with pixel data of the rendered display; and provide at least a portion of data within the memory buffer to the third computing device. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, software as a service (SaaS) , other computer cluster configurations.
[0059] Examples, as described herein, may include, or may operate on one or more logic units, components, or mechanisms (hereinafter “components” ) . Components are tangible entities (e.g., hardware) capable of performing specified operations and may be configured or arranged in a certain manner. In an example, circuits may be arranged (e.g., internally or with respect to external entities such as other circuits) in a specified manner as a component. In an example, the whole or part of one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware processors may be configured by firmware or software (e.g., instructions, an application portion, or an application) as a component that operates to perform specified operations. In an example, the software may reside on a machine readable medium. In an example, the software, when executed by the underlying hardware of the component, causes the hardware to perform the specified operations of the component.
[0060] Accordingly, the term “component” is understood to encompass a tangible entity, be that an entity that is physically constructed, specifically configured (e.g., hardwired) , or temporarily (e.g., transitorily) configured (e.g., programmed) to operate in a specified manner or to perform part or all of any operation described herein. Considering examples in which component are temporarily configured, each of the components need not be instantiated at any one moment in time. For example, where the components comprise a general-purpose hardware processor configured using software, the general-purpose hardware processor may be configured as respective different components at different times. Software may accordingly configure a hardware processor, for example, to constitute a particular module at one instance of time and to constitute a different component at a different instance of time.
[0061] Machine (e.g., computer system) 500 may include one or more hardware processors, such as processor 502. Processor 502 may be a central processing unit (CPU) , a graphics processing unit (GPU) , a hardware processor core, or any combination thereof. Machine 500 may include a main memory 504 and a static memory 506, some or all of which may communicate with each other via an interlink (e.g., bus) 508. Examples of main memory 504 may include Synchronous Dynamic Random-Access Memory (SDRAM) , such as Double Data Rate memory, such as DDR4 or DDR5. Interlink 508 may be one or more different types of interlinks such that one or more components may be connected using a first type of interlink and one or more components may be connected using a second type of interlink. Example interlinks may include a memory bus, a peripheral component interconnect (PCI) , a peripheral component interconnect express (PCIe) bus, a universal serial bus (USB) , or the like.
[0062] The storage device 516 may include a machine readable medium 522 on which is stored one or more sets of data structures or instructions 624 (e.g., software) embodying or utilized by any one or more of the techniques or functions described herein. The instructions 624 may also reside, completely or at least partially, within the main memory 504, within static memory 506, or within the hardware processor 502 during execution thereof by the machine 500. In an example, one or any combination of the hardware processor 502, the main memory 504, the static memory 506, or the storage device 516 may constitute machine readable media.
[0063] While the machine readable medium 522 is illustrated as a single medium, the term "machine readable medium" may include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) configured to store the one or more instructions 624.
[0064] The term “machine readable medium” may include any medium that is capable of storing, encoding, or carrying instructions for execution by the machine 500 and that cause the machine 500 to perform any one or more of the techniques of the present disclosure, or that is capable of storing, encoding or carrying data structures used by or associated with such instructions. Non-limiting machine readable medium examples may include solid-state memories, and optical and magnetic media. Specific examples of machine readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., Electrically Programmable Read-Only Memory (EPROM) , Electrically Erasable Programmable Read-Only Memory (EEPROM) ) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; Random Access Memory (RAM) ; Solid State Drives (SSD) ; and CD-ROM and DVD-ROM disks. In some examples, machine readable media may include non-transitory machine readable media. In some examples, machine readable media may include machine readable media that is not a transitory propagating signal.
[0065] The instructions 524 may further be transmitted or received over a communications network 526 using a transmission medium via the network interface device 520. The machine 500 may communicate with one or more other machines wired or wirelessly utilizing any one of a number of transfer protocols (e.g., frame relay, internet protocol (IP) , transmission control protocol (TCP) , user datagram protocol (UDP) , hypertext transfer protocol (HTTP) , etc. ) . Example communication networks may include a local area network (LAN) , a wide area network (WAN) , a packet data network (e.g., the Internet) , mobile telephone networks (e.g., cellular networks) , Plain Old Telephone (POTS) networks, and wireless data networks such as an Institute of Electrical and Electronics Engineers (IEEE) 802.11 family of standards known as an IEEE 802.15.4 family of standards, a 5G New Radio (NR) family of standards, a Long Term Evolution (LTE) family of standards, a Universal Mobile Telecommunications System (UMTS) family of standards, peer-to-peer (P2P) networks, among others. In an example, the network interface device 520 may include one or more physical jacks (e.g., Ethernet, coaxial, or phone jacks) or one or more antennas to connect to the communications network 526. In an example, the network interface device 520 may include a plurality of antennas to wirelessly communicate using at least one of single-input multiple-output (SIMO) , multiple-input multiple-output (MIMO) , or multiple-input single-output (MISO) techniques. In some examples, the network interface device 520 may wirelessly communicate using Multiple User MIMO techniques.
[0066] In addition, examples can include a device 600 having components to achieve the features disclosed herein. The device 600 may be an example configuration of machine 500 –e.g., through hardware or software. For example, the device 600 can include a network-based communication session establisher 602 that can establish a network-based communication session between a first computing device, a second computing device, and a third computing device.
[0067] The device 600 can also have a presentation indication receiver 604 that can receive a presentation indication from the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session. The interactive screen sharing session can have a synchronous mode where the presentation of content on devices in the communication session is synchronized to a view shown by the first computing device. The interactive screen sharing session can also have an asynchronous mode where a non-presenting device sends control signals to manipulate the presentation of the content independently of other recipients.
[0068] The device 600 can also have an indication message receiver 606 that can receive a first indication message along with a second indication message. The first indication message can indicate that a computing device, such as a second computing device, supports an interactive screen sharing session. The second indication message can indicate that a computing device, such as a third computing device, does not support an interactive screen sharing session.
[0069] Furthermore, the device 600 can have an individual session establisher 608 that can establish an individual session between a computing device, such as the second computing device, and a server of a communication service. By virtue of the established individual session, the computing device can receive from a copy of the presentation of content presented by the first computing device during the interactive screen sharing session. The copy can be received in response to the presentation indication to begin the interactive screen sharing session and in response to the first indication message indicating that the second computing device supports the interactive screen sharing session.
[0070] Moreover, the device 600 can have a content receive that can receive content on behalf of a computing device, such as the third computing device. In addition, the device 600 can include modules to perform the functions described herein and recited in the claims below.
[0071] Other Notes and Examples
[0072] Example 1 is a method for screen sharing comprising: establishing a network-based communication session between a first computing device, a second computing device, and a third computing device; receiving a presentation indication by the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session, wherein the interactive screen sharing session has a synchronous mode where the presentation of content on devices in the communication session is synchronized to a view shown by the first computing device, and an asynchronous mode where a non- presenting device sends control signals to manipulate the presentation of the content independently of other recipients; receiving a first indication message indicating that the second computing device supports the interactive screen sharing session, and a second indication message indicating that the third computing device does not support the interactive screen sharing session; responsive to the presentation indication to begin the interactive screen sharing session and responsive to the first indication message indicating that the second computing device supports the interactive screen sharing session, establishing an individual session between the second computing device and a server of a communication service for the second computing device to receive, from the server, a copy of the presentation of content presented by the first computing device during the interactive screen sharing session; responsive to the presentation indication to begin the interactive screen sharing session and responsive to the second indication message indicating that the third computing device does not support interactive screen sharing session: receiving, by a conversion software component, the content on behalf of the third computing device, the conversion software component: selecting an application based upon a type of the content presented by the first computing device; executing the selected application within the conversion software component to render a display of the received presentation of content, the rendered display synchronized with the display of the first computing device; accessing a memory buffer with pixel data of the rendered display; and providing at least a portion of data within the memory buffer to the third computing device, causing the third computing device displaying the presentation of the content synchronized with the display of the first computing device.
[0073] In Example 2, the subject matter of Example 1 includes, the method further comprising: recording the pixel data; including the recorded pixel data as part of a recording of the network-based communication session; and playing back the recorded pixel data in synchronization with the view shown by the first computing device and the control signals that manipulate the presentation of the content independently of other recipients.
[0074] In Example 3, the subject matter of Examples 1–2 includes, wherein the pixel data allows the third computing device to: consume the content during the network-based communication session; and view a recorded version of the pixel data.
[0075] In Example 4, the subject matter of Examples 1–3 includes, receiving a failure indication from a fourth computing device; and providing the at least a portion of the memory buffer to the fourth computing device in response to receiving the failure indication.
[0076] In Example 5, the subject matter of Examples 1–4 includes, wherein the message is received from the third computing device based on logic loaded on the third computing device indicating that the third computing device requires the interactive screen sharing interoperability assistance.
[0077] In Example 6, the subject matter of Examples 1–5 includes, wherein the message indicating that the third computing device requires interactive screen sharing interoperability assistance is received either prior to commencement of the interactive screen sharing session or when the third computing device joins the network-based communication session.
[0078] In Example 7, the subject matter of Examples 1–6 includes, method further comprising: receiving an indication that an additional computing device has joined the network-based communication session; and sending the at least a portion of the memory buffer to the additional computing device.
[0079] Example 8 is a computing device for preventing login lockout to a restricted space, the computing device comprising: a processor; a memory, storing instructions, which when executed by the processor cause the computing device to perform operations comprising: establishing a network-based communication session between a first computing device, a second computing device, and a third computing device; receiving a presentation indication by the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session, wherein the interactive screen sharing session has a synchronous mode where the presentation of content on devices in the communication session is synchronized to a view shown by the first computing device, and an asynchronous mode where a non-presenting device sends control signals to manipulate the presentation of the content independently of other recipients; receiving a first indication message indicating that the second computing device supports the interactive screen sharing session, and a second indication message indicating that the third computing device does not support the interactive screen sharing session; responsive to the presentation indication to begin the interactive screen sharing session and responsive to the first indication message indicating that the second computing device supports the interactive screen sharing session, establishing an individual session between the second computing device and a server of a communication service for the second computing device to receive, from the server, a copy of the presentation of content presented by the first computing device during the interactive screen sharing session; responsive to the presentation indication to begin the interactive screen sharing session and responsive to the second indication message indicating that the third computing device does not support interactive screen sharing session: receiving, by a conversion software component, the content on behalf of the third computing device, the conversion software component: selecting an application based upon a type of the content presented by the first computing device; executing the selected application within the conversion software component to render a display of the received presentation of content, the rendered display synchronized with the display of the first computing device; accessing a memory buffer with pixel data of the rendered display; and providing at least a portion of data within the memory buffer to the third computing device, causing the third computing device displaying the presentation of the content synchronized with the display of the first computing device.
[0080] In Example 9, the subject matter of Example 8 includes, wherein the operations further comprise: including the recorded pixel data as part of a recording of the network-based communication session; and playing back the recorded pixel data in synchronization with the view shown by the first computing device and the control signals that manipulate the presentation of the content independently of other recipients.
[0081] In Example 10, the subject matter of Examples 8–9 includes, wherein the pixel data allows the third computing device to: consume the content during the network-based communication session; and view a recorded version of the pixel data.
[0082] In Example 11, the subject matter of Examples 8–10 includes, wherein the operations further comprise: receiving a failure indication from a fourth computing device; and providing the at least a portion of the memory buffer to the fourth computing device in response to receiving the failure indication.
[0083] In Example 12, the subject matter of Examples 8–11 includes, wherein the message is received from the third computing device based on logic loaded on the third computing device indicating that the third computing device requires the interactive screen sharing interoperability assistance.
[0084] In Example 13, the subject matter of Examples 8–12 includes, wherein the message indicating that the third computing device requires interactive screen sharing interoperability assistance is received either prior to commencement of the interactive screen sharing session or when the third computing device joins the network-based communication session.
[0085] In Example 14, the subject matter of Examples 8–13 includes, wherein the operations further comprise: receiving an indication that an additional computing device has joined the network-based communication session; and sending the at least a portion of the memory buffer to the additional computing device.
[0086] Example 15 is a device for screen sharing comprising: means for establishing a network-based communication session between a first computing device, a second computing device, and a third computing device; means for receiving a presentation indication by the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session, wherein the interactive screen sharing session has a synchronous mode where the presentation of content on devices in the communication session is synchronized to a view shown by the first computing device, and an asynchronous mode where a non-presenting device sends control signals to manipulate the presentation of the content independently of other recipients; means for receiving a first indication message indicating that the second computing device supports the interactive screen sharing session, and a second indication message indicating that the third computing device does not support the interactive screen sharing session; means for establishing an individual session between the second computing device and a server of a communication service for the second computing device to receive, from the server, a copy of the presentation of content presented by the first computing device during the interactive screen sharing session in response to the presentation indication to begin the interactive screen sharing session and responsive to the first indication message indicating that the second computing device supports the interactive screen sharing session; responsive to the presentation indication to begin the interactive screen sharing session and responsive to the second indication message indicating that the third computing device does not support interactive screen sharing session: means for receiving, by a conversion software component, the content on behalf of the third computing device, the conversion software component: means for selecting an application based upon a type of the content presented by the first computing device; means for executing the selected application within the conversion software component to render a display of the received presentation of content, the rendered display synchronized with the display of the first computing device; means for accessing a memory buffer with pixel data of the rendered display; and means for providing at least a portion of data within the memory buffer to the third computing device, causing the third computing device displaying the presentation of the content synchronized with the display of the first computing device.
[0087] In Example 16, the subject matter of Example 15 includes, the device further comprising: means for including the recorded pixel data as part of a recording of the network-based communication session; and means for playing back the recorded pixel data in synchronization with the view shown by the first computing device and the control signals that manipulate the presentation of the content independently of other recipients.
[0088] In Example 17, the subject matter of Examples 15–16 includes, wherein the operations further comprise: receiving a failure indication from a fourth computing device; and providing the at least a portion of the memory buffer to the fourth computing device in response to receiving the failure indication.
[0089] In Example 18, the subject matter of Examples 15–17 includes, wherein the message is received from the third computing device based on logic loaded on the third computing device indicating that the third computing device requires the interactive screen sharing interoperability assistance.
[0090] In Example 19, the subject matter of Examples 15–18 includes, wherein the message indicating that the third computing device requires interactive screen sharing interoperability assistance is received either prior to commencement of the interactive screen sharing session or when the third computing device joins the network-based communication session.
[0091] In Example 20, the subject matter of Examples 15–19 includes, the device further comprising: means for receiving an indication that an additional computing device has joined the network-based communication session; and means for sending the at least a portion of the memory buffer to the additional computing device.
[0092] Example 21 is at least one machine-readable medium including instructions that, when executed by processing circuitry, cause the processing circuitry to perform operations to implement of any of Examples 1–20.
[0093] Example 23 is a system to implement of any of Examples 1–20.
Claims
1.A method for screen sharing comprising:establishing a network-based communication session between a first computing device, a second computing device, and a third computing device;receiving a presentation indication by the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session, wherein the interactive screen sharing session has a synchronous mode where the presentation of content on devices in the communication session is synchronized to a view shown by the first computing device, and an asynchronous mode where a non-presenting device sends control signals to manipulate the presentation of the content independently of other recipients;receiving a first indication message indicating that the second computing device supports the interactive screen sharing session, and a second indication message indicating that the third computing device does not support the interactive screen sharing session;responsive to the presentation indication to begin the interactive screen sharing session and responsive to the first indication message indicating that the second computing device supports the interactive screen sharing session, establishing an individual session between the second computing device and a server of a communication service for the second computing device to receive, from the server, a copy of the presentation of content presented by the first computing device during the interactive screen sharing session;responsive to the presentation indication to begin the interactive screen sharing session and responsive to the second indication message indicating that the third computing device does not support interactive screen sharing session:receiving, by a conversion software component, the content on behalf of the third computing device, the conversion software component:selecting an application based upon a type of the content presented by the first computing device;executing the selected application within the conversion software component to render a display of the received presentation of content, the rendered display synchronized with the display of the first computing device;accessing a memory buffer with pixel data of the rendered display;andproviding at least a portion of data within the memory buffer to the third computing device, causing the third computing device displaying the presentation of the content synchronized with the display of the first computing device.2.The method of claim 1, the method further comprising:recording the pixel data;including the recorded pixel data as part of a recording of the network-based communication session; andplaying back the recorded pixel data in synchronization with the view shown by the first computing device and the control signals that manipulate the presentation of the content independently of other recipients.3.The method of claim 1, wherein the pixel data allows the third computing device to:consume the content during the network-based communication session; andview a recorded version of the pixel data.4.The method of claim 1, further comprising:receiving a failure indication from a fourth computing device; andproviding the at least a portion of the memory buffer to the fourth computing device in response to receiving the failure indication.5.The method of claim 1, wherein the message is received from the third computing device based on logic loaded on the third computing device indicating that the third computing device requires the interactive screen sharing interoperability assistance.6.The method of claim 1, wherein the message indicating that the third computing device requires interactive screen sharing interoperability assistance is received either prior to commencement of the interactive screen sharing session or when the third computing device joins the network-based communication session.7.The method of claim 1, further method further comprising:receiving an indication that an additional computing device has joined the network-based communication session; andsending the at least a portion of the memory buffer to the additional computing device.8.A computing device for preventing login lockout to a restricted space, the computing device comprising:a processor;a memory, storing instructions, which when executed by the processor cause the computing device to perform operations comprising:establishing a network-based communication session between a first computing device, a second computing device, and a third computing device;receiving a presentation indication by the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session, wherein the interactive screen sharing session has a synchronous mode where the presentation of content on devices in the communication session is synchronized to a view shown by the first computing device, and an asynchronous mode where a non-presenting device sends control signals to manipulate the presentation of the content independently of other recipients;receiving a first indication message indicating that the second computing device supports the interactive screen sharing session, and a second indication message indicating that the third computing device does not support the interactive screen sharing session;responsive to the presentation indication to begin the interactive screen sharing session and responsive to the first indication message indicating that the second computing device supports the interactive screen sharing session, establishing an individual session between the second computing device and a server of a communication service for the second computing device to receive, from the server, a copy of the presentation of content presented by the first computing device during the interactive screen sharing session;responsive to the presentation indication to begin the interactive screen sharing session and responsive to the second indication message indicating that the third computing device does not support interactive screen sharing session:receiving, by a conversion software component, the content on behalf of the third computing device, the conversion software component:selecting an application based upon a type of the content presented by the first computing device;executing the selected application within the conversion software component to render a display of the received presentation of content, the rendered display synchronized with the display of the first computing device;accessing a memory buffer with pixel data of the rendered display;andproviding at least a portion of data within the memory buffer to the third computing device, causing the third computing device displaying the presentation of the content synchronized with the display of the first computing device.9.The computing device of claim 8, wherein the operations further comprise:including the recorded pixel data as part of a recording of the network-based communication session; andplaying back the recorded pixel data in synchronization with the view shown by the first computing device and the control signals that manipulate the presentation of the content independently of other recipients.10.The computing device of claim 8, wherein the pixel data allows the third computing device to:consume the content during the network-based communication session; andview a recorded version of the pixel data.11.The computing device of claim 8, wherein the operations further comprise:receiving a failure indication from a fourth computing device; andproviding the at least a portion of the memory buffer to the fourth computing device in response to receiving the failure indication.12.The computing device of claim 8, wherein the message is received from the third computing device based on logic loaded on the third computing device indicating that the third computing device requires the interactive screen sharing interoperability assistance.13.The computing device of claim 8, wherein the message indicating that the third computing device requires interactive screen sharing interoperability assistance is received either prior to commencement of the interactive screen sharing session or when the third computing device joins the network-based communication session.14.The computing device of claim 8, wherein the operations further comprise:receiving an indication that an additional computing device has joined the network-based communication session; andsending the at least a portion of the memory buffer to the additional computing device.15.A device for screen sharing comprising:means for establishing a network-based communication session between a first computing device, a second computing device, and a third computing device;means for receiving a presentation indication by the first computing device to begin a presentation of content using an interactive screen sharing session during a network-based communication session, wherein the interactive screen sharing session has a synchronous mode where the presentation of content on devices in the communication session is synchronized to a view shown by the first computing device, and an asynchronous mode where a non-presenting device sends control signals to manipulate the presentation of the content independently of other recipients;means for receiving a first indication message indicating that the second computing device supports the interactive screen sharing session, and a second indication message indicating that the third computing device does not support the interactive screen sharing session;means for establishing an individual session between the second computing device and a server of a communication service for the second computing device to receive, from the server, a copy of the presentation of content presented by the first computing device during the interactive screen sharing session in response to the presentation indication to begin the interactive screen sharing session andresponsive to the first indication message indicating that the second computing device supports the interactive screen sharing session;responsive to the presentation indication to begin the interactive screen sharing session and responsive to the second indication message indicating that the third computing device does not support interactive screen sharing session:means for receiving, by a conversion software component, the content on behalf of the third computing device, the conversion software component:means for selecting an application based upon a type of the content presented by the first computing device;means for executing the selected application within the conversion software component to render a display of the received presentation of content, the rendered display synchronized with the display of the first computing device;means for accessing a memory buffer with pixel data of the rendered display;andmeans for providing at least a portion of data within the memory buffer to the third computing device, causing the third computing device displaying the presentation of the content synchronized with the display of the first computing device.16.The device of claim 15, the device further comprising:means for including the recorded pixel data as part of a recording of the network-based communication session; andmeans for playing back the recorded pixel data in synchronization with the view shown by the first computing device and the control signals that manipulate the presentation of the content independently of other recipients.17.The device of claim 15, wherein the operations further comprise:receiving a failure indication from a fourth computing device; andproviding the at least a portion of the memory buffer to the fourth computing device in response to receiving the failure indication.18.The device of claim 15, wherein the message is received from the third computing device based on logic loaded on the third computing device indicating that the third computing device requires the interactive screen sharing interoperability assistance.19.The device of claim 15, wherein the message indicating that the third computing device requires interactive screen sharing interoperability assistance is received either prior to commencement of the interactive screen sharing session or when the third computing device joins the network-based communication session.20.The device of claim 15, the device further comprising:means for receiving an indication that an additional computing device has joined the network-based communication session; andmeans for sending the at least a portion of the memory buffer to the additional computing device.
Citation Information
Patent Citations
Dual-Modality Client Application
US20170168692A1
Optimizing desktop sharing for wireless clients during networked collaboration
US8924862B1