Providing a consistent interaction model across communication sessions
By providing a consistent interaction model and user-defined fixed display area layout in the collaborative system, the user confusion and low productivity caused by changes in content layout during communication sessions are solved, and more efficient user interaction and computing resource utilization are achieved.
Patent Information
- Application Number
- CN202080036684.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-05-20
- Filing Date
- 2020-04-13
- Publication Date
- 2025-04-25
- Estimated Expiration
- 2040-04-13
AI Technical Summary
The existing collaborative system confuses and distractions caused by automatic adjustment of content layout during communication sessions, affecting the effective use of productivity and computing resources.
By providing a consistent interaction model, the system allows the user to define a fixed arrangement of the display area, ensuring a consistent view of the content during a communication session.
Improve user engagement and interaction efficiency, reduce waste of computing resources, and ensure optimized content presentation.
Smart Images

Figure CN113841391B_ABST
Abstract
Description
Background Art
[0001] There are many different systems and applications that allow users to collaborate. For example, some systems provide a collaborative environment that allows participants to exchange files, live video, live audio, and other forms of content within a communication session. In other examples, some systems allow users to post messages to channels that have access permissions for selected groups of individuals to achieve team-centric or topic-centric conversation purposes.
[0002] Systems that provide collaborative environments such as those described above typically automatically arrange the on-screen presentation of content. For example, some systems will automatically arrange the on-screen presentation of a live video stream based on the activities of the conference participants, such as by making the portion of the user interface showing the active speaker larger than other portions showing other participants. In other examples, the video stream showing the active speaker may also be made full screen. In these cases, other content can be made smaller or removed from the display entirely.
[0003] Automatic arrangement of content presented during a communication session also results in different arrangements of content from meeting to meeting. For example, content shown in one meeting between a group of participants may be shown in a different location or completely hidden in a subsequent meeting between the same group of participants.
[0004] Changes in content layout during or between communication sessions, such as those described above, can confuse and distract users, leading to unproductive meetings and inefficient use of computing resources. For example, if the system does not display an optimized and consistent arrangement of shared content, users may not be able to easily identify salient aspects of the shared content. In some scenarios, users may completely miss important details if the shared content is not displayed correctly or consistently.
[0005] Systems such as those described above can also work with respect to the general principle that proper timing and consistent placement of content are essential for optimizing user engagement. Not only can the problems described above cause users to miss important content, such problems can also affect user engagement. Optimizing user engagement for any software application is critical to user productivity and the efficient use of computing resources. When software applications do not optimize user engagement, especially when used to provide a collaborative environment for a large number of participants, productivity losses and inefficiencies in computing resources may be exacerbated. Summary of the invention
[0006] The technology disclosed in this article provides a consistent interaction model during a communication session. In order to provide this functionality, a system configured according to the disclosed content presented in this article can create a consistent interaction model, which includes a user-defined arrangement of display areas for presenting content during a communication session in a user interface ("UI"). The user can specify that some or all of the display areas in the display area are fixed in the main display area of the UI (which can be referred to as the process of "pinning" the display area in this article). The arrangement including the display area defined as fixed can be presented to all or some of the participants in the communication session. For example, the same arrangement of the display area can be presented to the attendees during a recurring conference sequence to ensure a consistent view of the content. By providing a consistent arrangement of display areas for rendering content for viewing by participants in a communication session, participants can be more engaged and efficient, thereby improving human-computer interaction and saving computing resources.
[0007] In one example, a system presents a UI including a display area for displaying a rendering of content during a communication session. For example, the display area can be configured to display a rendering of a video stream, still video, image, document, or other type of content of interest during a communication session. The UI can also provide functionality for enabling a user to define a fixed arrangement of display areas. For example, the UI can receive a request from a user to fix a selected display area within a main display area of the UI. In response, the selected display area can be configured to remain fixed within the main display area. The process can be repeated for multiple display areas to define the arrangement of display areas provided by the UI.
[0008] Data, which may be referred to herein as a "view template," can be stored that defines the arrangement of display areas within the primary display area, including any fixed display areas contained therein. The view template can include, for example, data defining the location of display areas in the UI, data identifying content associated with the display areas in the UI, and data indicating whether each display area is fixed within the primary display area of the UI.
[0009] The view template can be transmitted to other computing devices participating in the communication session and used to render the UI on those computing devices, including the display area and the arrangement of any fixed display areas. In this way, a UI including display areas of rendered content arranged in the same manner can be presented to all participants in the communication session. In addition, the view template can be utilized during subsequent communication sessions (such as a reoccurring conference sequence between a group of participants) to present the same UI during each session in the session. In this way, participants can view a consistent UI for content included in different conferences.
[0010] In some examples, a view template can specify that only a subset of fixed display areas in an arrangement of display areas in a UI is presented to specific participants in a communication session. The subset of display areas can be selected manually or based on user roles, permissions, or other types of data. In this way, a user defining a view template can limit the display areas presented to other participants in a communication session. A view template can also or alternatively identify those users who are authorized to use the view template to render an arrangement of display areas on their computing devices.
[0011] In a similar manner, a user defining a view template can also specify that certain users are not allowed to modify the arrangement of display areas in the UI defined by the view template. Users can be selected manually or based on roles, permissions, or other data. In this way, a user defining a view template can ensure that the arrangement of display areas in the UI rendered using the view template will be rendered consistently to all or only some of the participants in a communication session.
[0012] In other examples, computing devices utilized by participants in a communication session can generate data (referred to herein as "view usage data") describing an arrangement of display areas defined by the participants, including fixed display areas within a main display area. The view usage data can be collected and utilized to generate and store a new view template. For example, the new view template may include data defining an arrangement of display areas in a UI for the communication session, including fixed display areas used by a majority of participants in the communication session. The new view template can be used during the same or different communication sessions. For example, the new view template might be used during a subsequent meeting in a sequence of reoccurring meetings.
[0013] In other examples, various mechanisms can be provided and utilized to select a view template for use during a particular communication session. For example, a view template for a communication session can be selected in a UI used to define an invitation to the communication session. Data associated with the invitation to the communication session, such as the subject, attendees, attachments, or content, can also be used to select a view template for the communication session. When the invitation defines a recurring meeting, the UI may provide functionality for selecting a view template to be used during each occurrence of the recurring meeting. Different view templates can also be specified for individual occurrences of recurring meetings.
[0014] As another example, a view template used to generate a UI for a communication session or a sequence of reoccurring communication sessions can be selected based on roles, permissions, or other data associated with participants in the communication session. In yet other examples, machine learning ("ML") techniques can be utilized to select a view template for use during a communication session or for use during a reoccurring communication session.
[0015] The view template can also be selected through other types of UIs, such as, for example, a UI including thumbnail images showing previews of available view templates. In this example, a view template for the communication session can be chosen by selecting one of the thumbnail images. In other examples, other types of UIs can be used to select a view template.
[0016] The examples described herein are provided within the context of a collaborative environment, e.g., a private chat session, a multi-user editing session, a group conference, a live broadcast, etc. For illustrative purposes, it will be appreciated that a computer managing a collaborative environment involves any type of computer that manages a communication session in which two or more computers share data. Additionally, it will be appreciated that the techniques disclosed herein can be applied to any user interface arrangement for displaying content. However, the scope of the present disclosure is not limited to embodiments associated with a collaborative environment.
[0017] The technology disclosed in this article provides multiple features that improve existing computers. For example, because the system can improve user interaction and participation during a communication session by providing a consistent interaction model, computing resources such as processor cycles, memory, network bandwidth and power are used more effectively. The technology disclosed in this article can also provide a consistent interaction model between different communication sessions, such as during different occurrences of the same reoccurring communication session, thereby also improving user interaction and participation during the communication session. Improvements to user interaction can lead to a reduction in user input data errors, which can reduce unintentional input, redundant input, and other types of user interactions that utilize computing resources. Other technical benefits not specifically mentioned in this article can also be achieved through the implementation of the disclosed subject matter.
[0018] Those skilled in the art will also appreciate that aspects of the subject matter described herein can be practiced on or in conjunction with other computer system configurations than those specifically described herein, including multi-processor systems, microprocessor-based or programmable consumer electronics, augmented reality or virtual reality devices, video gaming devices, handheld computers, smart phones, smart televisions, self-driving cars, smart watches, e-readers, tablet computing devices, dedicated hardware devices, networked devices, and the like.
[0019] Features and technical advantages in addition to those explicitly described above will become apparent by reading the following detailed description and reviewing the associated drawings. This summary is provided to introduce a selection of concepts in a simplified form that are further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Specific embodiments are described with reference to the accompanying drawings. In the figures, the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. The same reference numbers in different figures indicate similar or identical items. References to individual items in a plurality of items may use reference numbers with letters of the alphabetical sequence to reference each individual item. General references to items may use specific reference numbers without the alphabetical sequence.
[0021] Figure 1A A system for implementing a consistent interaction model in a communication session is illustrated.
[0022] Figure 1B A system for implementing a consistent interaction model in a communication session is illustrated.
[0023] Figure 2A An exemplary scenario is illustrated in which a user can request that a display area in a user interface be fixed within a primary display area.
[0024] Figure 2B An exemplary scenario is illustrated in which a user can request that a display area in a user interface be fixed within a primary display area.
[0025] Figure 2C An exemplary scenario is illustrated in which a display area in a user interface has been fixed within the main display area.
[0026] Figure 2D An exemplary scenario is illustrated in which a user can request that a display area in a user interface be fixed within a primary display area.
[0027] Figure 2E An exemplary scenario is illustrated in which a user can request that a display area in a user interface be fixed within a primary display area.
[0028] Figure 2F An exemplary scenario is illustrated in which a user can request to have a display area in a user interface fixed within a main display area using an attendee list.
[0029] Figure 2G An exemplary scenario is illustrated in which a user can request to have a display area in a user interface fixed within a main display area using an attendee list.
[0030] Figure 2H Illustrated is a diagram in which a user is able to pin display areas presenting different types of content within a main display area of a user interface.
[0031] Figure 3 An illustrative configuration of a data structure for storing data defining a layout of a fixed display area within a primary display area of a user interface is shown.
[0032] Figure 4 Illustrated is a system that utilizes machine learning to recommend an interaction model for use in a communication session.
[0033] Figure 5 An exemplary scenario is illustrated in which a user can request configuration of a display area within a main display area using a template library.
[0034] Fig. 6A An exemplary scenario is illustrated in which a user is able to specify a configuration of display areas within a primary display area during creation of a meeting invitation.
[0035] Figure 6B An exemplary scenario is illustrated in which a user is able to specify a configuration of display areas within a primary display area during creation of a meeting invitation.
[0036] Figure 6C An exemplary scenario is illustrated in which a user is able to specify a configuration of display areas within a primary display area during creation of a meeting invitation.
[0037] Fig.6D An exemplary scenario is illustrated in which a user is able to specify a configuration of display areas within a primary display area during creation of a meeting invitation.
[0038] Fig. 6E An exemplary scenario is illustrated in which a user is able to specify a configuration of display areas within a primary display area during creation of a meeting invitation.
[0039] Figure 7 A system is illustrated that selects an interaction model for use in a communication session based on attendee permissions.
[0040] Fig. 8A A system for recommending an interaction model for use in a communication session based on view usage data is illustrated.
[0041] Figure 8B A system for recommending an interaction model for use in a communication session based on view usage data is illustrated.
[0042] Figure 8C A system for recommending an interaction model for use in a communication session based on view usage data is illustrated.
[0043] Fig.8D A system for recommending an interaction model for use in a communication session based on view usage data is illustrated.
[0044] Fig. 9 A system for customizing an interaction model for use in a communication session based on attendee permissions is illustrated.
[0045] Fig.10 A system for customizing an interaction model for use in a communication session based on attendee permissions is illustrated.
[0046] Fig.11 is a flow chart illustrating aspects of a routine for providing a consistent interaction model in a communication session.
[0047] Fig.12 is a computing system diagram illustrating aspects of an exemplary operating environment for the techniques disclosed herein.
[0048] Fig.13 is a computing architecture diagram illustrating various aspects of the configuration and operation of a computing device capable of implementing various aspects of the techniques disclosed herein. DETAILED DESCRIPTION
[0049] Figure 1A A system 100 is illustrated that provides a consistent interaction model during a communication session. A computing device 104 in the system 100 can present a UI 110 that includes a display area 112 for displaying a rendering 114 of content during a communication session. The UI 110 can also provide functionality for enabling a user 102 (who may be referred to herein as a "participant" or "attendee") to define a fixed arrangement of the display areas 112. For example, the UI 110 can receive a request from the user 102 to fix a selected display area 112 within a primary display area 140A of the UI 110. In response thereto, the selected display area 112 can be configured to remain fixed within the primary display area 140A. This process can be repeated for multiple display areas 112 to define an arrangement of the display areas 112 provided by the UI 110. Then, a view template 120 can be stored that includes data defining an arrangement of the display areas 112 in the primary display area 140A, including any fixed display areas 112 contained therein.
[0050] The view template 120 can be transmitted to other computing devices 104 participating in the communication session and used to present the UI 110 on those computing devices 104, including any fixed display areas 112 in the main display area 140A. In this way, all participants 102 in the communication session can be presented with a UI 110 that includes a display area 112 showing a rendering 114 of content arranged in the same manner. In addition, the view template 120 can be used during subsequent communication sessions (such as individual occurrences of reoccurring communication sessions) to present the same UI 110. In this way, the participants 102 can view a consistent UI 110, including renderings 114 of content arranged in the same manner in different communication sessions. Additional details regarding these aspects will be provided below.
[0051] exist Figure 1A The system 100 shown in can be configured to provide a collaborative environment that facilitates communication between two or more computing devices. The collaborative environment can allow users 102 to exchange live video, live audio, and other forms of content within a communication session. The collaborative environment can be any suitable communication session format, including but not limited to: a private chat session, a multi-user editing session, a group conference, a broadcast, etc.
[0052] System 100 can include a server computer, such as described below with respect to Fig.12 The server computer described herein manages communication sessions between any suitable number of computing devices 104. In this example, the system 100 facilitates communication sessions between a first computing device 104A, a second computing device 104B, a third computing device 104C, and up to any number of computing devices 104N (collectively referred to herein as "computing devices 104"). The computing devices 104 can be in any form, such as a laptop, a desktop computer, a tablet computer, a phone, a virtual reality head-mounted device, or a mixed reality device. The computing devices can communicate via one or more data communication networks 108.
[0053] The computing devices 104 can execute a conference client application 106 for facilitating a communication session. For example, the conference client application 106 can display a UI 110 that includes a plurality of different display areas 112A-112G. Content shared by a video stream, an audio stream, or a file can be communicated between each of the computing devices 104. Each of the computing devices 104 can display a rendering 114 of the shared content in the UI 110. One or more computing devices 104 of the system 100 can define and select an interaction model that defines the arrangement of display areas 112 within the UI 110 displayed to the user 102 at each computing device 104.
[0054] As will be described in greater detail herein, UI 110 also provides functionality for enabling user 102 to define a fixed arrangement of display areas 112 within primary display area 140A of UI 110. Figure 1A In the example shown in , for example, user 102A has defined a fixed arrangement of display areas 112A-112D in primary display area 140A using UI 110A. Display areas 112A-112D display renderings 114A-114D of content, respectively. Other display areas 112E-112G are presented in secondary display area 140B of UI 110 and are not fixed. Display areas 112E-112G may be rearranged based on various conditions, such as, but not limited to, identification of active speakers in a communication session.
[0055] exist Figure 1A In the example shown in , another user 102B has defined a different arrangement of fixed display areas in the primary display area 140A of UI 110B using UI 110B presented by conference client application 106 executing on computing device 104B. Similarly, user 102C has defined yet another arrangement of fixed display areas 112 in the primary display area 140A of UI 110C using UI 110C presented by conference client application 106 executing on computing device 104C.
[0056] Using the mechanisms briefly described above and described in further detail below, each of the users 102A-102C has defined an arrangement of display areas 112 that remains fixed within the primary display area 140A within the UI 110. Because the display areas 112 within the primary display area 140A are fixed, the arrangement of the display areas 112 will not change in response to various conditions (such as, for example, the identity of the currently active speaker in the communication session). In this manner, the users 102A-102C are presented with a UI 110 that includes a primary display area 140A that includes an arrangement of display areas 112 that is consistent throughout the communication session.
[0057] As discussed above, by providing a consistent arrangement of display areas 112 that render content for participants 102 to view in a communication session or during a reoccurring communication session, participants 102 can be more engaged and productive, thereby improving human-computer interaction and conserving computing resources. Other technical benefits may also be realized through implementations of the disclosed technology.
[0058] Once the user 102 has defined the arrangement of display areas 112 within the UI 110, the conference client application 106 can store a view template 118 in an appropriate local or networked data store 120. The view template 118 includes data defining the arrangement of the display areas 112 within the primary display area 140A of the UI 110, including any fixed display areas 112 contained therein. The view template 118 can include, for example, data defining the location of the display areas 112 within the UI 110, data identifying content associated with the display areas 112 within the UI 110, and data indicating whether each display area 112 is fixed within the primary display area 140A of the UI 110. The view template 118 can include other data in other examples, some of which are described below.
[0059] For example, in Figure 1A In the example shown in , view template 118A has been stored in data store 120A, which includes data defining the arrangement of display areas 112A-112G in UI 110A, including fixed display areas 112A-112D in primary display area 140A of UI 110A. Similarly, view template 118B has been stored in data store 120B, which includes data defining the arrangement of display areas 112 in UI 110B, including fixed display area 112 in primary display area 140A of UI 110B. Similarly, view template 118C has been stored in data store 120A, which includes data defining the arrangement of display areas 112 in UI 110C, including fixed display area 112 in primary display area 140A of UI 110C.
[0060] As discussed above, the UI 110 can be utilized to define an arrangement of fixed display areas 112 in the primary display area 140A, which allows the rendering 114 of content to be presented in a consistent manner throughout the communication session. The view template 118 allows the rendering 114 of content to be presented in a consistent manner in the same or different communication sessions (such as individual occurrences of reoccurring communication sessions). For example, the user 102A can define an arrangement of display areas 112A-112D in the primary display area 140A in the manner described above. The user 102A can then utilize the conference client application 106 to store a view template 118A that defines the fixed arrangement of display areas 112A-112D.
[0061] In a subsequent communication session between the same or different users 102 (e.g., an instance of a reoccurring conference), the user 102A can utilize the conference client application 106 to load the view template 118A. The conference client application 106 can utilize the data stored in the view template to present the same UI 110A to the user 102A. In this way, a consistent arrangement of the display area 112 that presents content for viewing by the participants 102 can be presented during different communication sessions. This can also make the participants 102 in the communication session more engaged and efficient, thereby improving human-computer interaction and conserving computing resources.
[0062] In some examples, view templates 118 can be shared between computing devices 104 to provide some or all participants in a communication session with a consistent view of content presented during the communication session. Figure 1B 1. In this example, user 102A has defined an arrangement of display areas 112 in UI 110A, which includes a fixed display area 112 in main display area 140A. User 102A also utilizes conference client application 106 to request that a view template 118A including data defining the arrangement be transmitted to other computing devices 104B and 104C in the communication session.
[0063] Computing devices 104B and 104C receive view template 118A and utilize view template 118A to generate UI 110B and UI 110C, respectively, which provide the same arrangement of display area 112 in primary display area 140A as shown by computing device 104A. In this way, one user 102 (such as a presenter) in a communication session can define an arrangement of fixed display area 112 in primary display area 140A and have other computing devices 104 present the same arrangement. As in the examples given above, consistent presentation of content shared in a communication session in this manner can increase user engagement in a meeting, thereby increasing productivity, can improve human-computer interaction, and can result in savings in computing resources.
[0064] To illustrate additional aspects of the present disclosure, FIG. 2A to FIG. 2H The various aspects of the various mechanisms disclosed herein are illustrated for defining the arrangement of fixed display areas 112 in a main display area 140A of a UI 110 such as briefly described above. Although the context of the presented examples is described in conjunction with a system for managing a collaborative environment, the techniques disclosed herein are not limited to collaborative environments. It can be appreciated that the interaction model defined by the mechanisms disclosed herein can be applied to any computing environment involving a user interface for displaying content.
[0065] exist Figure 2AIn the example shown in , the conference client application 106 has presented a UI 110 that includes a primary display area 140A and a secondary display area 140B. In this example, the primary display area 140A includes three display areas 112B, 112G, and 112F that display renderings 114B, 114G, and 114F of content, respectively. In this case, the content is a video stream of the other participants 102 in the communication session. However, in other examples, renderings of other types of content can be presented in the display area 112.
[0066] exist Figure 2A The illustrative UI 110 shown in also includes a toolbar 202 and several icons for initiating various types of functions with respect to the current communication session, such as, but not limited to: chatting with other participants, viewing a user team, viewing a calendar, making a call, turning on or off a closed caption display, recording the communication session, and muting a speaker, microphone, or video capture device. Other types of functions can be performed in other configurations. For ease of illustration, the toolbar 202 has been omitted from the remainder of the drawing.
[0067] exist Figure 2A In the example shown in , the user 102 has also initiated a selection operation with respect to the display area 112B. In the illustrated example, the user 102 has selected the display area 112B using a pointing device and an associated cursor 204 (e.g., by moving the cursor 204 into the display area 112B and selecting a left button or a right button on a user input device such as a mouse or a trackpad). At this point, it should be appreciated that although the user input described with respect to the examples presented herein is performed using a pointing device such as a mouse or a trackpad, other types of user input devices (e.g., a touch screen) can also be used to perform the functions disclosed herein.
[0068] In response to the selection operation, UI 110 has presented message 206, which provides instructions to user 102 regarding the process for specifying that display area 112 will be fixed within primary display area 140A. Message 206 may be presented only once to provide assistance to the user. When user 102 initiates a second selection operation with respect to display area 112B, UI 110 presents menu 208, as in Figure 2B As shown in the figure.
[0069] exist Figure 2B In the example shown in FIG. 2 , menu 208 includes menu items that, when selected, such as by using cursor 204, cause the associated display area 112 (i.e., Figure 2BIn some embodiments, a display area 112B in the main display area 140A is fixed within the main display area 140A. When a display area 112 is fixed within the main display area 140A, it will not be removed from the main display area 140A unless the user 102 requests to remove it from the main display area 140A. The position and size of the display area 112 can be modified, such as, for example, when other display areas 112 are also fixed within the main display area 140A. However, the fixed display area 112 will not be removed from the main display area 140A.
[0070] exist Figure 2B In the example shown in , user 102 has selected a menu item in menu 208 to make display area 112B fixed. In response, UI 110 changes to Figure 2C . In this example, the size of display area 112B has been enlarged to fill the entire primary display area 140A because no other display area 112 was previously made fixed within primary display area 140A. Conversely, non-fixed display areas 112F and 112G that were previously in primary display area 140A have been relegated to secondary display area 140B. In this way, a focused view of rendering 114B of the content shown in display area 112B can be presented. In addition, icon 210 has been displayed in display area 112B, indicating that display area 112B is fixed.
[0071] Continue from Figure 2A-2C In the example, user 102 has selected Figure 2D In response to this, menu 208 has been presented in UI 110. Then, user 102 has selected a menu item for fixing display area 112F using cursor 204, and as a result, UI 110 has transitioned to the menu item for fixing display area 112F. Figure 2E The configuration shown in .
[0072] As in Figure 2E As shown in , in response to the user selection, the display area 112F has been removed from the secondary display area 140B and fixed in the primary display area 140A. In addition, the display areas 112B and 112F have also been resized to accommodate side-by-side presentation in the primary display area 140A. The icon 210 has also been presented in the display area 112F to indicate that the display area is now fixed within the primary display area 140A. Any number of display areas 112 fixed within the primary display area 140A can be resized so that they encompass the entire primary display area 140A in a similar manner.
[0073] exist Figure 2FAnother mechanism for making the display area 112 fixed within the primary display area 140A is shown in FIG. In this example, the display area 112B has previously been made fixed in the primary display area 140A. Two other display areas 112F and 112G have not yet been made fixed and are therefore presented in the secondary display area 140B. In addition, in Figure 2F The UI 110 shown in the example illustrated in includes a portion 212 that includes entries identifying display areas 112B, 112F, and 223G. In this example, portion 212 includes an entry identifying a conference room from which video content is being streamed and shown by rendering 114B in display area 112B. In this example, display area 112B has been pinned within main display area 140A.
[0074] Portion 212 also includes entries identifying two other participants (i.e., Jane Smith and Ritwik Patel) shown in display areas 112G and 112F, respectively. In this example, user 102 has selected a menu item in menu 208 using cursor 204 to request that display area 112F associated with user Ritwik Patel be fixed in main display area 140A. In response, UI 110 has transformed to display area 112F associated with user Ritwik Patel. Figure 2G The configuration shown in .
[0075] As in Figure 2G As shown in Figure 2F 140A. As a result, display area 112G has been made fixed within display area 140A from secondary display area 140B and has been expanded to cover half of primary display area 140A. In addition, display area 112B, which was previously made fixed within primary display area 140A, has also been resized to cover the other half of primary display area 140A. Icon 210 is also presented in each display area 112B and 112F to indicate that these display areas are fixed within primary display area 140A. Additional display areas 112 (such as display area 112G) shown in secondary display area 140B can be made fixed in a similar manner.
[0076] As briefly described above, the display area 112 can be configured to display a video stream, still video, image, document, or other type of content of interest 114 during a communication session. Other types of content that can be presented in the display area 112 include, but are not limited to: panoramic or 360-degree video or images, still images, text chat, whiteboard, user icon, text or digital ink, audio transcription of the communication session, virtual objects, or video zoom-in to highlight specific objects. Other types of content renderings 114 can be presented in the display area 112 in other configurations.
[0077] exist Figure 2H In the example shown in , UI 1100 has been configured with four fixed display areas 112A-112D. Display area 112A presents a rendering 114A of a document containing a graphic. Display area 112B presents a rendering 114B showing a video stream of two participants in a communication session. Display area 112C presents a rendering 114C of a text chat exchanged between participants in the communication session. Display area 112D presents a rendering 114D of a document, which may be, for example, a word processing document, a spreadsheet document, a presentation document, a drawing, a note, or another type of document. Display areas 112A-112D have also been resized to fit within main display area 140A, and icons 210 have been displayed within each of display areas 112A-112D to indicate that these display areas are fixed within main display area 140A.
[0078] It will be appreciated that the mechanisms described above for fixing display area 112 within primary display area 140A are merely illustrative, and that other types of interactions can be utilized to fix display area 112 in other configurations. These examples are not intended to be limiting, but rather to illustrate several types of interactions that can be used to create arrangements of fixed display area 112 that can be defined by view templates 118 and utilized in the manner briefly described above and described in further detail below.
[0079] Figure 3 FIG. 1 illustrates an exemplary configuration of a view template 118 in one particular example. As briefly described above, the view template 118 includes data defining the arrangement of display areas 112 in the main display area 140A of the UI 110, including any fixed display areas 112 contained therein. For example, in Figure 3 In the example shown in , the view template 118 includes data defining several sections 302A- 302F. Each section 302 can include data defining aspects of the configuration of each display area 112.
[0080] For example, in the illustrated example, portion 302A includes data 302B defining a location of display area 112 in UI 110, data 302C identifying content rendered in display area 112, and data 302D indicating whether display area 112 is fixed within primary display area 140A of UI 110. Similarly, portion 302B includes data 302G defining a location of another display area 112 in UI 110, data 302H identifying content rendered in display area 112, and data 302I indicating whether display area 112 has been fixed within primary display area 140A of UI 110 in the manner described above. In other examples, portions 302A-302F in view template 118 can include other data 302E and 302J, respectively.
[0081] exist Figure 3 The illustrative view template 118 shown in also includes data defining the manner in which the view template 118 can be used. For example, the exemplary view template 118 includes data 302K defining permissions for attendees in the communication session to use the view template 118. For example, the data 302K can specify that only a subset of the fixed display area 112 in the arrangement of the display area 112 in the UI 110 is presented to a specific participant in the communication session. The subset of the display area 112 can be selected manually or based on a user role, permissions, or other types of data associated with the participant. In this way, the user defining the view template 118 can limit the fixed display area 112 that is presented to other participants in the communication session.
[0082] The data 302K in the view template 118 may also or instead identify those users 102 in the communication session who are authorized to use the view template 118 to render the arrangement of the display area 112 on their computing devices 104. In this way, the use of the view template 118 can be limited to only certain predefined users 102.
[0083] The view template 118 can also include data 302L that describes the scope of use of the view template 118 by the user 102. For example, in the illustrated example, the view template 118 includes data 118 indicating that a particular user 102 is not permitted to modify the arrangement of the fixed display area 112 in the UI 110 defined by the view template 118. The user 102 can be selected manually or based on roles, permissions, or other data. In this way, the user 102 defining the view template 118 can ensure that the arrangement of the fixed display area 112 in the UI 110 presented using the view template 118 will be rendered consistently to all participants in the communication session or only some of the participants. The view template 118 can include other types of data 302M in other configurations. This will be discussed below with respect to the configuration of the fixed display area 112 in the UI 110. Fig. 9 and Fig.10 Additional details are provided regarding the use of data 302K and 302L.
[0084] In other examples, various mechanisms can be provided and utilized to select a view template 118 for use during a particular communication session, such as for an instance of a reoccurring communication session or all instances of a reoccurring communication session. Figure 4 In the example shown in , a machine learning ("ML") component 404 is configured to select a view template 118 for use during a communication session. In this example, the conference client application 106 generates view usage data 402 that describes the arrangement of display areas 112 being utilized by participants in the communication session, including display areas 112 that have been made fixed within the primary display area 140A.
[0085] For example, in Figure 4 In the example shown in , user 102A has pinned one display area 112 within UI 110A. Subsequently, conference client application 106 has generated view usage data 402A describing the layout of UI 110A, including the pinned display area 112. In this example, user 102B has pinned two display areas 112 within UI 110B. Therefore, conference client application 106 has generated view usage data 402B describing the layout of UI 110B.
[0086] The ML component 404 receives the view usage data 402A and 402B and possibly other types of information. This information may include, but is not limited to, data identifying participants in the communication session, the type of content rendered in the display area 112, data identifying view templates used during previous communication sessions, and other types of metadata associated with the communication session. Using this data, the ML component 404 can learn to identify view templates 118 that are suitable for use during the communication session.
[0087] The ML component 404 can utilize various types of ML methods to learn to train the ML model to identify the view template 118 for the communication session. For example, but not limited to: supervised learning algorithms (e.g., artificial neural networks, Bayesian statistics, support vector machines, decision trees, classifiers, k-nearest neighbors, etc.), unsupervised learning algorithms (e.g., artificial neural networks, association rule learning, hierarchical clustering, cluster analysis, etc.), semi-supervised learning algorithms, deep learning algorithms, etc., can be used to train such one or more ML models.
[0088] Once the appropriate ML model has been trained, the ML component 404 can utilize data associated with the conference to select a view template 118 that is appropriate for the communication session. For example, data associated with the communication, such as, but not limited to, participants, the type of content to be rendered, and other types of metadata, can be utilized to select an appropriate view template 118. Data 406 identifying the recommended view template 118 can then be transmitted to the conference client application 106. The user 102 can then indicate whether to utilize the view template 118 during a particular communication session or during a reoccurring sequence of communication sessions.
[0089] The view template 118 may also be selected for use during a communication session through other types of UIs, such as a UI that includes thumbnails showing previews of available view templates 118. Examples of such UIs 110 are shown in FIG. Figure 5 In this example, UI 110 includes portion 502 (which may be referred to herein as "template library 502") that is configured to present thumbnail images 504A-504B showing previews of available view templates 118. A variety of mechanisms can be used to select a view template 118 represented in template library 502, including but not limited to: Figure 4 The described ML-based mechanisms, data describing historical usage of view templates 118 by a user or user group, participants in a communication session or invited, types of content to be displayed, roles or permissions associated with participants in a communication session, or other types of data.
[0090] exist Figure 5 , a view template 118 for a communication session can be selected by selecting one of the thumbnail images 504A-504B. For example, the user 102 can select the thumbnail image 504A using an appropriate pointing device and the cursor 204. In response, the UI 110 can configure itself to present the content shared during the communication session using the view template 118 corresponding to the selected thumbnail image 504A.
[0091] In some examples, a view template 118 for a communication session can also be selected in a UI for defining an invitation to a communication session. Fig. 6A In the example shown in , the user 102 has initiated presentation of a UI 604 for inviting other users to a communication session. Through the UI 604, the user 102 is able to define various aspects of the communication session, such as, but not limited to: a title 602A for the communication session, a start time 602B and an end time 602C for the communication session, a location 602D for the communication session (i.e., an online communication session as opposed to a face-to-face meeting), and attendees 602E requested to participate in the communication session.
[0092] The UI 604 also includes UI features through which the user 102 can select a view template 118 for the communication session. For example, in the illustrated example, the UI 604 includes thumbnail images 504A-504C showing previews of available view templates 118. As in the examples described above, the view template 118 represented by the thumbnail images 504A-504C can be selected using various mechanisms, including but not limited to: Figure 4 The described ML-based mechanisms, data describing historical usage of view templates 118 by a user or user group, participants in a communication session or invited, types of content to be displayed, roles or permissions associated with participants in a communication session, or other types of data.
[0093] The user 102 can select the thumbnail image 504C using an appropriate pointing device and cursor 204. In response, the conference invitation generated by the UI 604 can be configured to specify the view template 118 corresponding to the selected thumbnail image 504C. The UI 110 can then be configured using the selected view template 118 for the participants in the communication session.
[0094] exist Figure 6B , the UI 604 also includes a field for defining recurrences 602F for the communication session. For example, through the UI 604, the user can specify that the communication session recurs according to a specified schedule, such as, but not limited to, once a day, once a week, once a month, etc. In this example, the UI 604 also allows the user to select a view template 118 to be utilized during the recurring communication session. For example, selection of the thumbnail image 504C will cause the corresponding view template 118 to be selected and used during each occurrence of the recurring communication session.
[0095] exist Figure 6C In the example shown in , UI 604 also includes UI controls 606A and 606B. These UI controls can be selected to approve or disapprove of the view template 118 suggested for a particular communication session. For example, but not limited to, the user can select UI control 606B under thumbnail image 504C to indicate that the view template 118 corresponding to thumbnail image 504C is not suitable for the communication session defined in UI 604. In a similar manner, the user can select UI control 606A under thumbnail image 504C to indicate that the view template 118 corresponding to thumbnail image 504C is suitable for the communication session defined in UI 604. Data describing the selection of UI controls 606A and 606B can be provided to the ML component 404 described above to improve the ML model used to recommend view templates 118 for communication sessions.
[0096] exist Fig.6D , the UI 604 also includes a UI control 608A, which, when selected, will cause the selected view template 118 (i.e., the view template 118 corresponding to the selected thumbnail image 504 in this example) to become the default view template 118 for all occurrences of the communication session defined through the UI 604. In this manner, the selected view template 118 can be utilized to provide a consistent view across individual instances of reoccurring conferences.
[0097] In other examples, such as Fig. 6E In the example illustrated in , UI 604 includes UI controls 608B and 608C to specify that the selected view template 118 will be the default template for presenters in a sequence of reoccurring communication sessions or for attendees in a sequence of reoccurring communication sessions. In this way, the user is able to specify that the view template 118 is to be utilized during an occurrence of a reoccurring communication session and identify those specific users for whom the view template 118 is to be utilized.
[0098] Other types of data can be utilized to select a view template 118 for a sequence of recurring communication sessions in a communication session or other configuration. Figure 7 In the example shown in , the conference client application 106 includes a template selection component 702 that can select a view template 118A for a communication session based on various types of data including data in an invitation 704 for the communication session, such as data identifying a subject, participant, attachment, or content associated with a single or recurring communication session. The template selection component 702 can also or alternatively select a view template 118A for a particular communication session or sequence of communication sessions based on roles, permissions 706, and / or other data associated with the participants in the communication session. In other examples, other types of UIs, software components, systems, and data can be utilized to select a view template 118 for use during a communication session.
[0099] In other examples, a view template 118 for a communication session or sequence of communication sessions can be generated and / or selected based on the configuration of the UI 110 of the participants in the communication session. Fig. 8A In the example shown in , computing devices 104B and 104C utilized by participants 102 in the communication session generate view usage data 802 that describes an arrangement of display areas 110B and 110C, including display area 112 that is fixed within primary display area 140A.
[0100] The view usage data 802 can be collected and utilized to generate and store a new view template 118 or to select an existing view template 118. For example, in the example shown in FIG. 8 , the computing device 104A collects the view usage data 802 from the computing devices 104B and 104C. The computing device 104A then analyzes the view usage data 802 to identify the arrangement of the display areas 112 used by the users 102B and 102C. Based on the analysis, the computing device 104A then selects a view template 118 or creates a new view template 118. For example, a new view template 118 can be created that includes data defining the arrangement of the display areas 112 in the UI 110 for the communication session, including a fixed display area 112 that is used by the majority of the participants 102 in the communication session. The new view template 118 can be used during the same or different communication sessions.
[0101] exist Fig. 8A In the example shown in , UI 110A presents view 804 showing a preview of new view template 118. In this case, new view template 118 includes a layout of fixed display area 118, which is the same layout used by participants 102B and 102C. User 102A can then select UI control 806A to switch its display to new view template 118 and / or UI control 806B to save new view template 118.
[0102] In another example, such as in Figure 8B In the example shown in , the UI 110A includes a UI control 806B that, when selected, will cause a preview of another new view template 118 to be presented in the UI 110A. The new view template 118 may be generated in the manner described above by processing the view usage data 802 to identify an arrangement of the display area 112 that is suitable for all attendees 102 in the communication session. The user may then select the UI control 806A to switch to the new view template 118 in the manner described above.
[0103] In some examples, such as Figure 8C In the example shown in , UI 110A includes UI control 806D, which, when selected, provides a UI through which a user can edit view 804. Figures 2A-2H The UI discussed may be used to edit the suggested view. The user may then switch to the edited view or save the view template 118 including data defining the edited view in the manner described above.
[0104] In some examples, such as Fig.8DIn the example shown in , UI 110A includes a UI control that can be selected to approve or disapprove of a view suggested for a particular communication session. For example, but not limited to, a user can select UI control 806E to indicate that the suggested view template 118 corresponding to thumbnail image 504C is not suitable for the communication session and should not be suggested again. Data describing the selection of UI control 806E can be provided to the ML component 404 described above to improve the ML model used to recommend view templates 118 for the communication session. In a similar manner, data describing the selection of UI control 806A (i.e., data indicating that the user selected a recommended view for the communication session) can be provided to the ML component 404 described above to improve the ML model used to recommend view templates 118 for the communication session.
[0105] In some examples, view templates 118 can be recommended based on the eye gaze of one or more participants in the communication session. For example, but not limited to: the user computing device 104 can be equipped with hardware for detecting the user's eye gaze. In this way, the portion of the UI 110 that each user is viewing during the communication session can be identified. Then, a view template 118 can be selected or created based on the user's eye gaze. For example, if multiple users 102 are viewing a particular type of content, the content can be made fixed within the UI. Data describing the eye gaze or participants in the communication session can also be provided to the ML system described above for training the ML model to recommend view templates 118.
[0106] As briefly described above, a view template 118 can include data that imposes restrictions on the manner in which the view template 118 can be utilized. For example, a view template 118 can specify that only a fixed subset of the display areas 112 in the arrangement of the display areas 112 in the UI 110 will be presented to a particular participant in the communication session. The subset of the display areas 112 can be selected manually or based on user roles, permissions, or other types of data. In this way, a user 102A defining a view template 118 can limit the display areas 112 presented to other participants 102 in a communication session or sequence of reoccurring communication sessions. The view template 118 can also or alternatively identify those users 102 who are authorized to use the view template 118 to render the arrangement of the display areas 112 on their computing devices 104.
[0107] For example, in Fig. 9In the example shown in , user 102A has created a view template 118 for a communication session or a sequence of reoccurring communication sessions with users 102B and 102C. User 102A has also specified during creation of view template 118 that all of display area 112 will be presented to user 102B, but only a subset of display area 112 will be presented to user 102C.
[0108] Computing device 104A transmits view template 118 to conference client applications 106 executing on computing devices 104B and 104C. Conference client application 106 executing on computing device 104B uses view template 118 to generate UI 110B that is shown to user 102B. Because view template 118 indicates that user 102B is authorized to view all fixed display areas 112, conference client application 106 shows all fixed display areas 112 in UI 110B.
[0109] The conference client application 106 executing on the computing device 104C uses the view template 118 to generate the UI 110C that is shown to the user 102C. Because the view template 118 indicates that the user 102C is only authorized to view a subset of the fixed display area 112, the conference client application 106 executing on the computing device 104C only shows the subset of the fixed display area 112 that the user 102C is authorized to view in the UI 110B. In this case, the display area 112 showing the chart and the document is not shown to the user 102C.
[0110] With about Fig. 9 In a similar manner as described, the user 102 defining the view template 118 can also specify that certain users 102 are not allowed to modify the arrangement of the fixed display area 112 in the UI 110 defined by the view template 118. The users 102 can be selected manually or based on roles, permissions, or other data. In this way, the user 102 defining the view template 118 can ensure that the arrangement of the fixed display area 112 in the UI 110 presented using the view template 118 will be rendered consistently to all or only a portion of the participants 102 in the communication session.
[0111] For example, in Fig.10 In the example shown in , user 102A has created a view template 118 for a communication session or a sequence of reoccurring communication sessions with users 102B and 102C. User 102A also specifies during creation of view template 118 that user 102C is allowed to modify the arrangement of display area 112 in UI 110 generated using view template 118, but user 102B is not allowed.
[0112] As in the example above, computing device 104A transmits view template 118 to conference client applications 106 executing on computing devices 104B and 104C. Conference client application 106 executing on computing device 104B uses view template 118 to generate UI 110B that is shown to user 102B. Because view template 118 indicates that user 102B is not authorized to modify view template 118, user 102B is presented with the arrangement of fixed display area 112 defined by view template 118 and is not permitted to modify the arrangement.
[0113] The conference client application 106 executing on the computing device 104C uses the view template 118 to generate the UI 110C displayed to the user 102C. Because the view template 118 indicates that the user 102C is authorized to modify the arrangement of the fixed display area 112 defined by the view template 118, the user 102C is able to modify the arrangement of the display area 112. In this example, the user 102C has modified the arrangement so that only a single display area 112 is presented. In other examples, the user 102C can modify the arrangement of the display area 112 in other ways.
[0114] Fig.11 1 is a diagram illustrating aspects of a routine 1100 for providing a consistent interaction model during a communication session. It should be understood by those of ordinary skill in the art that the operations of the methods disclosed herein are not necessarily presented in any particular order, and that it is possible and contemplated to perform some or all of the operations in another order. For ease of description and illustration, the operations have been presented in the order in which they are presented. Operations may be added, omitted, performed together, and / or performed simultaneously without departing from the scope of the appended claims.
[0115] It should also be understood that the illustrated method can be terminated at any time and does not need to be fully executed. Some or all of the operations of the method and / or substantially equivalent operations can be performed by running computer-readable instructions contained on a computer storage medium, as defined herein. The term "computer-readable instructions" and its variants used in the specification and claims are broadly used herein to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions can be implemented on various system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based programmable consumer electronics, combinations thereof, etc.
[0116] Therefore, it should be appreciated that the logical operations described herein are implemented as: 1) a sequence of computer-implemented actions or program modules running on a computing system such as those described herein, and / or 2) interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice depending on the performance and other requirements of the computing system. Therefore, the logical operations can be implemented in software, firmware, dedicated digital logic, and any combination thereof.
[0117] in addition, Fig.11 The operations illustrated in the other figures can be implemented in association with the example presentation UI described above. For example, the various devices and / or modules described herein can generate, send, receive, and / or display data associated with the content of a communication session (e.g., live content, broadcast events, recorded content, etc.) and / or a presentation UI that includes a rendering of one or more participants of a remote computing device, avatar, channel, chat session, video stream, image, virtual object, and / or application associated with the communication session.
[0118] The routine 1100 begins at operation 1102, where the user 102 can, for example, Figures 2A-2H The described approach defines the arrangement of fixed display areas 112 in UI 110. As discussed above, in other examples, other mechanisms can be utilized to specify that display areas 112 are fixed within primary display area 140A of UI 110.
[0119] From operation 1102, the routine 1100 proceeds to operation 1104, where the view template 118 can be stored. As discussed above, the view template 118 includes data describing the arrangement of the fixed display area 118 within the primary display area 140A of the UI 110. Also as described above, in other examples, the view template 118 can include other types of data.
[0120] The routine 1100 then proceeds from operation 1104 to operation 1106, where the user 102 can select a view template 118 to use during the communication session or reoccurring communication session sequence. The view template 118 can be selected in a variety of ways, such as described above with respect to Figure 4 -8. In other examples, other mechanisms can be utilized to select a view template 118 for a communication session.
[0121] In some examples, once the user 102 has selected a view template at operation 1106, the selected view template 118 is transmitted to the other computing devices 104 in the communication session (e.g., a single occurrence of the communication session). Figure 1BAs discussed, the other computing devices 104 can utilize the view template 118 to generate the UI 110, which includes the arrangement of the fixed display area 112 defined by the view template 118. In this way, each participant in the communication session can be presented with the same arrangement of the fixed display area 112. At operation 1110, the computing device 104 configures the UI 110 in this manner.
[0122] From operation 1110, the routine 1100 proceeds to operation 1112, where participants in the communication session are able to take various types of actions based on the roles or permissions defined by the view template 118. For example, and as described above with respect to Fig. 9 As described, the user 102 may be allowed (or prohibited) from modifying the arrangement of the fixed display area 112 in the main display area 140A of the UI 110. In other examples, the user 102 may be able to perform other types of actions with respect to the fixed display area 112. From operation 1112, the routine 1100 proceeds to operation 1114, where it ends.
[0123] It should be appreciated that the subject matter described above can be implemented as a computer-controlled device, a computer process, a computing system, or as an article of manufacture such as a computer-readable storage medium. The operations of the exemplary methods are illustrated in individual boxes and are summarized with reference to those boxes. The method is illustrated as a logical flow of boxes, each of which can represent one or more operations implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable media, which, when executed by one or more processors, enable the one or more processors to perform the operations described.
[0124] Typically, computer executable instructions include routines, programs, objects, modules, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be performed in any order, combined in any order, subdivided into multiple sub-operations, and / or performed in parallel to implement the described processes. The described processes can be performed by resources associated with one or more devices (such as one or more internal or external CPUs or GPUs) and / or one or more hardware logic (such as a field programmable gate array ("FPGA"), a digital signal processor ("DSP"), or other types of accelerators).
[0125] All methods and processes described above can be embodied in software code modules executed by one or more general-purpose computers or processors and fully automated via the modules. The code modules can be stored in any type of computer-readable storage medium or other computer storage device, such as those described below. Some or all methods can alternatively be embodied in dedicated computer hardware, such as described below.
[0126] Any routine description, element or box in the flowcharts described herein and / or depicted in the accompanying drawings should be understood to potentially represent a module, segment or code portion, which includes one or more executable instructions for implementing a specific logical function or element in the routine. Alternative implementations are included within the scope of the examples described herein, where elements or functions can be deleted or executed out of order with the order shown or discussed, including substantially synchronously or in reverse order, depending on the functions involved, as will be understood by those skilled in the art.
[0127] Fig.12 1 is a network and computer architecture diagram illustrating an exemplary environment 1200 in which a system 1202 (such as the system 100 of FIG. 1 ) can implement the techniques disclosed herein. In some implementations, the system 1202 can be used to collect, analyze, and share data defining one or more objects displayed to a user of a communication session 1204.
[0128] As illustrated, a communication session 1204 may be implemented between a plurality of client computing devices 1206(1)-1206(N) (where N is a number having a value of 2 or greater) associated with the system 1202, or as part of the system 1202. The client computing devices 1206(1)-1206(N) enable users (also referred to as participants) to participate in the communication session 1204.
[0129] In this example, communication session 1204 is hosted by system 1202 over one or more networks 1208. That is, system 1202 can provide services that enable users of client computing devices 1206(1)-1206(N) to participate in communication session 1204 (e.g., via live viewing and / or recorded viewing). Thus, "participants" of communication session 1204 can include users and / or client computing devices (e.g., multiple users can participate in a communication session in a room via use of a single client computing device), each of which can communicate with the other participants. Alternatively, communication session 1204 can be hosted by one of client computing devices 1206(1)-1206(N) utilizing peer-to-peer technology. System 1202 can also host chat conversations and other team collaboration functionality (e.g., as part of an application suite).
[0130] In some implementations, such chat conversations and other team collaboration functions are treated as external communication sessions distinct from the communication session 1204. A computerized agent configured to collect participant data in the communication session 1204 can be linked to such an external communication session. Thus, the computerized agent can receive information, such as date, time, session details, etc., enabling connection to such an external communication session. In one example, a chat conversation can be conducted in accordance with the communication session 1204. Additionally, the system 1202 can host the communication session 1204, which can include participants co-located at a meeting location (such as a conference room or auditorium) or located at different locations.
[0131] System 1202 includes device(s) 1210. Device(s) 1210 and / or other components of system 1202 can include distributed computing resources that communicate with each other and / or with client computing devices 1206(1)-1206(N) via one or more networks 1208. In some examples, system 1202 can be a stand-alone system responsible for managing various aspects of one or more communication sessions, such as communication session 1204. As an example, system 1202 can be managed by an entity such as SLACK, CHIME, ZOOM, WEBEX, GOTOMEETING, GOOGLE HANGOUTS, etc.
[0132] The network(s) 1208 may include, for example, a public network such as the Internet, a private network such as an institutional and / or personal intranet, or some combination of private and public networks. The network(s) 1208 may also include any type of wired and / or wireless network, including, but not limited to, a local area network ("LAN"), a wide area network ("WAN"), a satellite network, a wired network, a Wi-Fi network, a WiMAX network, a mobile communication network (e.g., 3G, 4G, etc.), or any combination thereof.
[0133] The network(s) 1208 may utilize communication protocols, including packet-based and / or datagram-based protocols, such as the Internet Protocol ("IP"), the Transmission Control Protocol ("TCP"), the User Datagram Protocol ("UDP"), or other types of protocols. In addition, the network(s) 1208 may also include a plurality of devices that facilitate network communications and / or form the hardware foundation of the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, backbone equipment, etc.
[0134] In some examples, network(s) 1208 may also include devices that enable connection to wireless networks, such as wireless access points (“WAPs”). Examples support connection via WAPs that send and receive data over various electromagnetic frequencies (e.g., radio frequencies), including WAPs that support the Institute of Electrical and Electronics Engineers (“IEEE”) 802.11 standards (e.g., 802.11g, 802.11n, 802.11ac, etc.) and other standards.
[0135] In various examples, (one or more) devices 1210 may include one or more computing devices that operate in a cluster or other grouped configuration to share resources, balance loads, improve performance, provide failover support or redundancy, or for other purposes. For example, (one or more) devices 1210 may belong to various types of devices, such as conventional server-type devices, desktop-type devices, and / or mobile-type devices. Therefore, although illustrated as a single type of device or server-type device, (one or more) devices 1210 may include multiple device types and are not limited to a particular type of device. (One or more) devices 1210 may represent, but are not limited to: a server computer, a desktop computer, a network server computer, a personal computer, a mobile computer, a laptop computer, a tablet computer, or any other type of computing device.
[0136] The client computing device (e.g., one of the client computing devices 1206(1)-1206(N)) may be of a variety of types of devices, which may be the same as or different from the device(s) 1210, such as a conventional client type device, a desktop computer type device, a mobile type device, a dedicated type device, an embedded type device, and / or a wearable type device. Thus, the client computing device may include, but is not limited to, a desktop computer, a gaming console and / or gaming device, a tablet computer, a personal data assistant (“PDA”), a mobile phone / tablet hybrid device, a laptop computer, a telecommunications device, a computer navigation type client computing device (such as a satellite-based navigation system including a global positioning system (“GPS”) device), a wearable device, a virtual reality (“VR”) device, an augmented reality (“AR”) device, an implanted computing device, an automotive computer, a web-enabled television, a thin client, a terminal, an Internet of Things (“IoT”) device, a workstation, a media player, a personal video recorder (“PVR”), a set-top box, a camera, an integrated component (e.g., a peripheral device) for inclusion in a computing device, an appliance, or any other type of computing device. Furthermore, the client computing device may include a combination of the earlier listed examples of client computing devices, such as, for example, a desktop computer type device or a mobile type device combined with a wearable device, etc.
[0137] The various types and device types of client computing device(s) 1206(1) to 1206(N) can represent any type of computing device having one or more data processing units 1292 operably connected to a computer-readable medium 1294 via a bus 1216, which in some cases can include one or more of a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and any variety of local, peripheral and / or independent buses.
[0138] The executable instructions stored on the computer-readable medium 1294 may include, for example, an operating system 1219 , a client module 1220 , a profile module 1222 , and other modules, programs, or applications that can be loaded and executed by the data processing unit(s) 1292 .
[0139] The client computing device(s) 1206(1)-1206(N) may also include one or more interfaces 1224 to enable communications between the client computing device(s) 1206(1)-1206(N) and other networked devices, such as device(s) 1210, over the network(s) 1208. Such network interface(s) 1224 may include one or more network interface controllers (NICs) or other types of transceiver devices to send and receive communications and / or data over the network.
[0140] The client computing device(s) 1206(1)-1206(N) can include an input / output ("I / O") interface (device) 1226 that enables communication with input / output devices, such as user input devices including peripheral input devices (e.g., a game controller, keyboard, mouse, pen, voice input devices (such as a microphone), a video camera for obtaining and providing video feeds and / or still images, touch input devices, gesture input devices, etc.) and / or output devices including peripheral output devices (e.g., a display, printer, audio speakers, tactile output devices, etc.). Fig.12 The client computing device 1206(1) is illustrated as being connected in some manner to a display device (e.g., display screen 1229(1)) that is capable of displaying a UI according to the techniques described herein.
[0141] exist Fig.12In the exemplary environment 1200 of FIG. 1 , client computing devices 1206(1) through 1206(N) can use their respective client modules 1220 to connect to each other and / or to other external devices (one or more) in order to participate in a communication session 1204 or to contribute activities to the collaborative environment. For example, a first user can utilize client computing device 1206(1) to communicate with a second user of another client computing device 1206(2). When executing client modules 1220, the users can share data, which can cause client computing device 1206(1) to connect to system 1202 and / or other client computing devices 1206(2) through 1206(N) via network(s) 1208.
[0142] The client computing device(s) 1206(1)-1206(N) may use their respective profile modules 1222 to generate a participant profile (in Fig.12 ), and provide the participant profile to other client computing devices and / or to the device(s) 1210 of the system 1202. The participant profile may include one or more of the following: an identity of a user or group of users (e.g., name, unique identifier (“ID”), etc.), user data (such as personal data), machine data (such as location (e.g., IP address, room in a building, etc.), and technical capabilities, etc. The participant profile may be used to register a participant for a communication session.
[0143] As in Fig.12 As shown in , device(s) 1210 of system 1202 include a server module 1230 and an output module 1232. In this example, server module 1230 is configured to receive media streams 1234(1)-1234(N) from individual client computing devices, such as client computing devices 1206(1)-1206(N).
[0144] As described above, media streams can include a video feed (e.g., audio and visual data associated with a user), audio data to be output with a presentation of a user's avatar (e.g., an audio-only experience in which the user's video data is not transmitted), text data (e.g., a text message), file data, and / or screen sharing data (e.g., a document, a slideshow, an image, a video displayed on a display screen, etc.), etc. Accordingly, server module 1230 is configured to receive a collection of various media streams 1234(1)-1234(N) (the collection being referred to herein as "media data 1234") during live viewing of communication session 1204.
[0145] In some scenarios, not all client computing devices participating in the communication session 1204 provide media streams. For example, a client computing device may be a consuming or "listening" device only, such that it only receives content associated with the communication session 1204 without providing any content to the communication session 1204.
[0146] In various examples, the server module 1230 can select aspects of the media stream 1234 to be shared with individual client computing devices of the participating client computing devices 1206(1)-1206(N). Thus, the server module 1230 can be configured to generate session data 1236 based on the stream 1234 and / or pass the session data 1236 to the output module 1232. The output module 1232 can then transmit communication data 1239 to the client computing devices (e.g., the client computing devices 1206(1)-1206(N) participating in the live view of the communication session). The communication data 1239 can include video, audio, and / or other content data provided by the output module 1232 based on the content 1250 associated with the output module 1232 and based on the received session data 1236.
[0147] As shown, output module 1232 transmits communication data 1239(1) to client computing device 1206(1), and transmits communication data 1239(2) to client computing device 1206(2), and transmits communication data 1239(3) to client computing device 1206(3), etc. The communication data 1239 transmitted to the client computing devices can be the same or different (e.g., the positioning of the content stream within the user interface can differ from one device to the next).
[0148] In various implementations, the device(s) 1210 and / or the client module 1220 can include a GUI rendering module 1240. The GUI rendering module 1240 can be configured to analyze the communication data 1239 for delivery to one or more of the client computing devices 1206. Specifically, the UI rendering module 1240 at the device(s) 1210 and / or the client computing device 1206 can analyze the communication data 1239 to determine an appropriate manner for displaying the video, images, and / or content on the display screen 1229 of the associated client computing device 1206.
[0149] In some implementations, the GUI presentation module 1240 can provide the video, images, and / or content to a presentation GUI 1246 that is rendered on the display screen 1229 of the associated client computing device 1206. The presentation GUI 1246 can be rendered on the display screen 1229 by the GUI presentation module 1240. The presentation GUI 1246 can include the video, images, and / or content analyzed by the GUI presentation module 1240.
[0150] Fig.13 A diagram showing exemplary components of an exemplary device 1300 (also referred to herein as a "computing device") is illustrated, which is configured to generate and process data for a user interface disclosed herein. Device 1300 can generate data, which can include one or more display areas that can render or include video, images, and / or content for display on display screen 1329. Device 1300 can represent one of the (one or more) devices described herein. Additionally or alternatively, device 1300 can represent one of client computing devices 1306.
[0151] As illustrated, device 1300 includes one or more data processing units 1302, computer-readable media 1304, and communication interface(s) 1306. The components of device 1300 are operably connected, for example, via bus 1309, which may include one or more of a system bus, a data bus, an address bus, a PCI bus, a Mini-PCI bus, and any variety of local, peripheral, and / or independent buses.
[0152] As utilized herein, data processing unit(s) (such as data processing unit(s) 1302 and / or data processing unit(s) 1392) may represent, for example, a CPU-type data processing unit, a GPU-type data processing unit, a field programmable gate array (“FPGA”), another type of digital signal processor (“DSP”), or other hardware logic components driven by a CPU in some cases. For example, but not limited to, exemplary types of hardware logic components that may be utilized include application specific integrated circuits (“ASICs”), application specific standard products (“ASSPs”), systems on chips (“SOCs”), complex programmable logic devices (“CPLDs”), and the like.
[0153] As used herein, computer-readable media (such as computer-readable media 1304 and computer-readable media 1394) can store instructions that can be executed by (one or more) data processing units. The computer-readable medium can also store instructions that can be executed by an external data processing unit (such as by an external CPU, an external GPU) and / or can be executed by an external accelerator (such as an FPGA-type accelerator, a DSP-type accelerator, or any other internal or external accelerator). In various examples, at least one CPU, GPU, and / or accelerator is incorporated into the computing device, while in some examples, one or more of the CPU, GPU, and / or accelerator is external to the computing device.
[0154] Computer readable media (which may also be referred to herein as computer readable media) may include computer storage media and / or communication media. Computer storage media may include one or more of volatile memory, non-volatile memory and / or other persistent and / or secondary computer storage media, removable and non-removable computer storage media implemented in any method or technology for storing information (such as computer readable instructions, data structures, program modules or other data).
[0155] Thus, computer storage media includes media in tangible and / or physical form contained in a device and / or hardware component that is part of or external to a device, including, but not limited to: random access memory (“RAM”), static random access memory (“SRAM”), dynamic random access memory (“DRAM”), phase change memory (“PCM”), read only memory (“ROM”), erasable programmable read-only memory (“EPROM”), electrically erasable programmable read-only memory (“EEPROM”), flash memory, compact disk read-only memory (“CD-ROM”), digital versatile disk (“DVD”), optical cards or other optical storage media, cassettes, magnetic tape, magnetic disk storage, magnetic cards or other magnetic storage devices or media, solid-state memory devices, storage arrays, network attached storage devices, storage area networks, hosted computer storage, or any other storage memory, storage devices, and / or storage media that can be used to store and maintain information for access by a computing device.
[0156] In contrast to computer storage media, communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism. As defined herein, computer storage media does not include communication media. That is, computer storage media does not include communication media consisting only of a modulated data signal, a carrier wave, or a propagation signal itself.
[0157] The communication interface(s) 1306 may represent, for example, a network interface controller ("NIC") or other type of transceiver device to send and receive communications over a network. Additionally, the communication interface(s) 1306 may include one or more video cameras and / or audio devices 1322 to enable the generation of video feeds and / or still images, etc.
[0158] In the illustrated example, computer-readable medium 1304 includes data store 1308. In some examples, data store 1308 includes a data store such as a database, a data warehouse, or other type of structured or unstructured data store. In some examples, data store 1308 includes a corpus and / or a relational database having one or more tables, indexes, stored procedures, etc. to enable data access, including, for example, one or more of a Hypertext Markup Language ("HTML") table, a Resource Description Framework ("RDF") table, a Web Ontology Language ("OWL") table, and / or an Extensible Markup Language ("XML") table.
[0159] The data store 1308 may store data for the operation of processes, applications, components, and / or modules stored in the computer-readable medium 1304 and / or executed by the data processing unit 1302 and / or accelerator. For example, in some examples, the data store 1308 may store session data 1310, profile data 1312 (e.g., associated with participant profiles), and / or other data. The session data 1310 can include the total number of participants (e.g., users and / or client computing devices) in the communication session, the activities occurring in the communication session, the list of invitees for the communication session, and / or other data related to when and how the communication session is conducted or hosted. The data store 1308 also includes content data 1314, such as content including video, audio, or other content for rendering and display on one or more display screens 1329.
[0160] Alternatively, some or all of the data described above can be stored on a separate memory 1316 on one or more data processing units 1302, such as a CPU-type processor, a GPU-type processor, an FPGA-type accelerator, a DSP-type accelerator, and / or a memory on other accelerators. In this example, the computer-readable medium 1304 also includes an operating system 1318 and (one or more) application programming interfaces 1310 (APIs), which are configured to expose the functions and data of the device 1300 to other devices. In addition, the computer-readable medium 1304 includes one or more modules, such as a server module 1330, an output module 1332, and a GUI rendering module 1340, but the number of modules illustrated is only an example, and the number can become higher or lower. That is, the functions associated with the illustrated modules described in this article can be performed by a smaller number of modules or a larger number of modules on one device, or distributed across multiple devices.
[0161] It should be appreciated that, unless otherwise specifically stated, conditional language used herein, such as "can," "may," "could," or "might" is understood in context to present that a particular example includes but other examples do not include a particular feature, element, and / or step. Thus, such conditional language is generally not intended to imply that a particular feature, element, and / or step is in any way necessary for one or more examples, or that one or more examples necessarily include logic for determining whether a particular feature, element, and / or step is included or will be performed in any particular example, regardless of whether there is user input or prompting. Unless otherwise specifically stated, conjunctions such as the phrase "at least one of X, Y, or Z" should be understood to indicate that an item, term, or the like can be X, Y, or Z, or a combination thereof.
[0162] It should also be appreciated that many changes and modifications may be made to the examples described above, and the elements therein should be understood as other acceptable examples. All these modifications and variations are intended to be included within the scope of this disclosure and protected by the accompanying claims.
[0163] Finally, although various configurations have been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the appended representations is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed subject matter.
Claims
1. A method for executing by a data processing system, the method comprising: causing display of a user interface (UI) on a display device, the UI comprising a plurality of display areas, a display area of the plurality of display areas configured to display a rendering of content associated with the first communication session; receiving a user input requesting that a selected display area of the plurality of display areas be fixed within a main display area of the UI; In response to receiving the user input, configuring the selected one of the plurality of display areas so that the selected display area remains fixed within the main display area of the UI; storing a view template in response to configuring the selected one of the plurality of display areas to be fixed, the view template comprising data defining an arrangement of the display areas in the primary display area; during a second communication session, processing the view template associated with the second communication session to render the arrangement of the display areas, the arrangement of the display areas comprising the selected one of the plurality of display areas being configured to be fixed within the primary display area of the UI; as well as The view template is transmitted to one or more other data processing systems, whereby the one or more other data processing systems process the view template to render the arrangement of the display areas, wherein at least one of the one or more other data processing systems is configured to render a subset of the display areas that is fixed within the main display area, the subset of the plurality of display areas being selected based on permissions associated with users of at least one or more of the other data processing systems.
2. The method according to claim 1, wherein: The step of transmitting the view template transmits the view template to at least two other data processing systems, whereby the at least two other data processing systems process the view template to render the arrangement of the display area, wherein the subset is rendered on at least one of the two data processing systems, the subset being selected based on permissions associated with users of the respective data processing systems, wherein displays rendered on the at least two data processing systems based on the view template are different.
3. The method according to claim 2, wherein: A first subset of a display area fixed within the main display area is rendered on a display of a first data processing system, and a second subset of a display area fixed within the main display area is rendered on a display of a second data processing system, wherein the first subset and the second subset are different.
4. The method according to claim 1, wherein: At least one of the one or more other data processing systems is configured to prevent modification of the arrangement of the display area based on permissions associated with a user of the at least one or more other data processing systems.
5. The method according to claim 1, further comprising: receiving view usage data describing an arrangement of display areas presented by one or more other data processing systems during the second communication session; as well as A second view template is stored, the second view template including data defining an arrangement of a display area selected based on the view usage data.
6. The method according to claim 1, further comprising: storing a plurality of view templates, each view template comprising data defining an arrangement of display regions in a primary display area of a user interface (UI), wherein the display regions are configured to display a rendering of content, and wherein the data further specifies that at least one of the display regions is fixed within the primary display area of the UI; receiving a selection of a view template of the plurality of view templates that is associated with the communication session; and Transfer the selected view template.
7. The method according to claim 6, wherein: The selection of the one of the plurality of view templates is received via a user interface for defining an invitation to the communication session.
8. The method according to claim 6, wherein: The selection of the one of the plurality of view templates is made based on permissions associated with participants in the communication session.
9. The method according to claim 6, wherein: The selection of the one of the plurality of view templates is made by a machine learning component.
10. The method according to claim 6, wherein: The selection of the one of the plurality of view templates is received by selecting a thumbnail image corresponding to the selected one of the plurality of view templates from among a plurality of thumbnail images corresponding to the plurality of view templates.
11. A system for providing a consistent interaction model during a communication session, comprising: means for causing display of a user interface (UI) on a display device, the UI comprising a plurality of display areas, a display area of the plurality of display areas configured to display a rendering of content associated with the first communication session; means for receiving a user input requesting that a selected display area of the plurality of display areas be fixed within a main display area of the UI; means for configuring the selected one of the plurality of display areas so that the selected display area remains fixed within the main display area of the UI in response to receiving the user input; means for storing a view template in response to configuring the selected one of the plurality of display areas to be fixed, the view template comprising data defining an arrangement of the display areas in the primary display area; means for processing the view template associated with the second communication session to render the arrangement of the display areas during a second communication session, the arrangement of the display areas comprising the selected one of the plurality of display areas being configured to be fixed within the primary display area of the UI, wherein the second communication session comprises an occurrence of a reoccurring communication session; Unit for transmitting the view template to one or more other data processing systems, whereby the one or more other data processing systems process the view template to render the arrangement of the display areas, wherein at least one of the one or more other data processing systems is configured to render a subset of the display areas that is fixed within the main display area, the subset of the plurality of display areas being selected based on permissions associated with users of at least one or more of the other data processing systems.
12. The system according to claim 11, further comprising: The unit for transmitting the view template transmits the view template to at least two other data processing systems, whereby the at least two other data processing systems process the view template to render the arrangement of the display area, wherein the subset is rendered on at least one of the two data processing systems, the subset being selected based on permissions associated with users of the respective data processing systems, wherein displays rendered on the at least two data processing systems based on the view template are different.
13. The system according to claim 12, wherein: A first subset of a display area fixed within the main display area is rendered on a display of a first data processing system, and a second subset of a display area fixed within the main display area is rendered on a display of a second data processing system, wherein the first subset and the second subset are different.
14. The system according to claim 11, wherein: At least one of the one or more other data processing systems is configured to prevent modification of the arrangement of the display area based on permissions associated with a user of the at least one or more other data processing systems.
15. The system of claim 11, further comprising: receiving view usage data describing an arrangement of display areas presented by one or more other data processing systems during said first communication session; as well as A second view template is stored, the second view template including data defining an arrangement of a display area selected based on the view usage data.
Citation Information
Patent Citations
Video conferencing with archival notes
US20080130525A1
Auto Focus
US20120182381A1
Defining active zones in a traditional multi-party video conference and associating metadata with each zone
US20130093835A1
Video feed layout in video conferences
US20150334313A1
Optimizing video conferencing using contextual information
US20180176508A1