Video playback in group communication

CN115617241BActive Publication Date: 2026-09-11GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211126365.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2017-09-27
Filing Date
2017-09-29
Publication Date
2026-09-11
Estimated Expiration
2037-09-29

AI Technical Summary

Technical Problem

这可以是可能阻止用户在参与群组通信时共享视频的、在技术上具有挑战性的、繁琐的并且耗时的过程(尤其对于移动设备用户)

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115617241B_ABST
    Figure CN115617241B_ABST
Patent Text Reader

Abstract

This disclosure relates to video playback in group communications. Aspects of the disclosure describe video playback in group communications. A method includes receiving, from a messaging application that provides a group communication comprising messages, a request for a video, instructing a first client device, associated with a first user participating in the group communication with other users, to display a graphical representation of the video in a user interface (UI) of the messaging application, receiving a first user input comprising a selection of the graphical representation of the video in the UI during the group communication, initiating playback of the video in a video playback portion in the UI in response to the first user input, allowing input of other messages for the group communication via the UI during playback of the video, and keeping the video playback portion of the UI visible to the first user while the first user scrolls through the messages of the group communication.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Case Analysis

[0002] This application is a divisional application of Chinese invention patent application 201780071660.0, filed on September 29, 2017. Technical Field

[0003] This disclosure relates to user-to-user communication services, such as group messaging or commenting, and specifically to video playback in group communication. Background Technology

[0004] Group communication in content-sharing services allows users to share messages and videos in conversations with other participants. Currently, when sharing video in group communication, users cannot simultaneously watch and discuss the video. Instead, users must perform complex switching operations to transition between watching and discussing the video. For example, users might have to switch apps or change modes. This can be a technically challenging, cumbersome, and time-consuming process (especially for mobile device users) that can prevent users from sharing video while participating in group communication. Summary of the Invention

[0005] Various aspects and implementations of this disclosure improve user-to-user communication, such as group messaging or commenting, by providing video playback in group communication through the use of various display states of shared video in group communication. In some implementations, a server receives a request for video from a messaging application that provides group communication including messages. The server can then instruct a first client device to display a graphical representation of the video in the user interface (UI) of the messaging application during group communication on the first client device. In one implementation, the first client device is associated with a first user participating in group communication along with other users of a content-sharing service.

[0006] Furthermore, the server can receive first user input from the first client device, including a selection of a graphical representation of the video in the UI during group communication. Additionally, in response to the first user input, the server can initiate video playback in the video playback section of the UI. The server can allow input of other messages for group communication via the UI during video playback. The server can also keep the video playback section of the UI visible to the first user while the first user scrolls through group communication messages.

[0007] In some implementations, the first user's mobile device presents a graphical user interface (GUI) for a messaging application that provides group communication between the first user and one or more other users within the group. The GUI may include sections displaying messages shared by the first user or at least one of the one or more other users in the group communication. In one implementation, at least one message includes a graphical representation of video shared in the group communication. The mobile device may further receive selections of the graphical representation of the video via the GUI during group communication.

[0008] Additionally, in response to video selection, the mobile device can provide video playback within the video playback section of the UI. Furthermore, the mobile device can receive input for one or more other messages used for group communication via the GUI during video playback. The mobile device can also keep the video playback section of the UI visible to the first user while the first user scrolls through group communication messages. Attached Figure Description

[0009] The disclosed embodiments have other advantages and features that will become more apparent from the detailed description and accompanying drawings. A brief description of these figures follows.

[0010] Figure 1 This is a block diagram illustrating a system architecture for video playback in group communication based on an implementation.

[0011] Figure 2 The figure shows an example group communication interface for sharing videos in a collapsed state, based on an implementation.

[0012] Figure 3 The figure shows an example group communication interface for sharing video in an inline extended state according to an implementation.

[0013] Figure 4 The figure shows an example group communication interface for sharing video in a persistent state, based on an implementation.

[0014] Figure 5 This is a flowchart of an example server-side method for video playback based on certain implementations of this disclosure.

[0015] Figure 6 This is a flowchart of an example client method for video playback based on certain implementations of this disclosure.

[0016] Figure 7 This is a block diagram illustrating an example computer based on an implementation of an entity that can be used to implement a video sharing environment. Detailed Implementation

[0017] This disclosure relates to user-to-user group communication, such as group messaging or commenting. Currently, when sharing video in group communication, users cannot simultaneously watch and discuss the video. Instead, users must perform complex switching operations to transition between watching and discussing the video. For example, users may have to switch apps or switch modes. This can be a technically challenging, cumbersome, and time-consuming process (especially for mobile device users) that can prevent users from sharing video while participating in group communication.

[0018] This disclosure addresses the aforementioned and other shortcomings by providing video playback during group communication in a messaging application through transitions between various display states of shared video used in group communication. The display states of shared video can be implemented within the UI of the messaging application during group communication. The various display states enable simultaneous and concurrent viewing of video and participation in group communication via the messaging application. The display states of video shared in group communication can include a collapsed state, an inline expanded state, and a persistent state.

[0019] Collapsed states include static or animated selectable graphical representations (e.g., thumbnails) of the video in the group communication UI. Inline extended states include extended video playback sections (also referred to herein as "mini-players") that provide playback and playback controls for the video, where the mini-player scrolls with the session in the group communication UI. Persistent states include maintaining the mini-player in a fixed position within the group communication UI (e.g., top, bottom, etc.) while allowing messages in the group communication to continue scrolling up or down below the video within the UI. In some implementations, persistent states may also be referred to as "sticky" states.

[0020] Providing the aforementioned display state of shared video within the UI used for group communication addresses several constraints in traditional group communication systems. For example, during group communication, users can scroll to the bottom of the session within the group communication UI without interrupting the playback of the shared video to view the context in which they can reply. Users can also pause the shared video without losing the ability to immediately resume it. Additionally, users can return the shared video to a collapsed state to regain space within the group communication UI.

[0021] Therefore, the technology for providing video playback in group communication is improved by offering various display states for sharing video within the UI of the messaging app during group communication, wherein these various display states enable watching video and participating in group communication simultaneously via the messaging app. This is particularly beneficial in mobile device environments, where viewing and discussing the same shared video no longer requires opening different mobile apps or providing multiple inputs to switch between different screens of a mobile app, thus replacing the inconvenient and time-consuming traditional process due to limited screen size and keypad.

[0022] Figure 1 This is a block diagram of the system architecture of one embodiment of content sharing service 100. Examples of content sharing services are video services, social messaging services, multimedia messaging services, gaming services, music sharing services, and photo sharing services. The system is scalable to accommodate multiple users interacting with content sharing service 100 using client 150. Although only one client 150 is shown, it should be understood that a very large number (e.g., millions) of clients 150 are supported to communicate with content sharing service 100 at any time.

[0023] Client 150 includes a content-sharing application 160 downloaded via network 105, which is typically the Internet but can also be any network, including but not limited to any combination of a local area network (LAN), metropolitan area network (MAN), wide area network (WAN), mobile network, wired or wireless network, private network, or virtual private network. In another embodiment, the content-sharing application 160 is pre-loaded on client 150 so that the user of client 150 does not need to download the content-sharing application 160. Client 150 uses the content-sharing application 160 to interact with digital content items (e.g., video files, audio files, photos, etc.) and can connect to the server 110 of content-sharing service 100 via network 105. Client 150 can include a variety of different computing devices. Examples of client 150 may include personal computers, digital assistants, personal digital assistants, cellular phones, mobile phones, smartphones, laptops, etc.

[0024] Examples of content-sharing applications 160 include video-sharing applications, social messaging applications, multimedia applications, game applications, music-sharing applications, and photo-sharing applications. Content-sharing application 155 allows group communication and may include a client communication module 165 and a video-sharing module 170. Group communication refers to the exchange of messages between multiple members within a group, where messages are included in a thread visible to all members of the group (e.g., a chronologically published stream) and may be part of, for example, a public or private group chat or a public or private comment thread. Messages may include different types of content, including, for example, text content, images, audio and / or video content, etc.

[0025] The client communication module 165 allows users of client 150 to participate in group communication through content sharing application 155 by sending messages from that user to other users in the group communication and receiving messages from other users in the group communication. Examples of technologies used to implement group communication may include Short Message Service (SMS), Enhanced Messaging Service (EMS), Multimedia Messaging Service (MMS), Instant Messaging, Social Messaging, and email.

[0026] The video sharing module 170 facilitates video sharing in group communication by sending video identifiers of videos selected by one or more users to other users in the group communication and receiving video identifiers of videos shared by other users in the group communication. In some embodiments, the video identifier includes audio files, images and / or other types of media, or Uniform Resource Locators (URLs) or Uniform Resource Identifiers (URIs) pointing to the location of such media.

[0027] Client 150 also includes a video player 180 for playing videos (such as video streams or video files). The video player 180 may be a standalone application or a plugin to another application, such as a web browser. In one embodiment, the video player 180 is embedded in a content-sharing application 160. The video player 180 includes a user interface (UI) and UI controls (and corresponding application programming interfaces) for performing actions related to the video, such as selecting a video, controlling video playback (e.g., start, stop, pause, fast forward, and rewind), evaluating a video, sharing a video, and commenting on a video. The video player 180 may include a video display format selection in its user interface, which is configured to indicate the applicable video display format (e.g., two-dimensional (2D) video or three-dimensional (3D) video). Other types of user interface controls (e.g., buttons, keyboard controls) may also be used to control the playback and video format selection functions of the video player 180.

[0028] Content sharing service 100 may be a web server that hosts and / or provides video content items (“videos”). Alternatively, content sharing service 100 may be a server for mobile applications (“apps”), game system servers, etc. The following specific examples describing content sharing service 100 in a specific implementation such as a web server are not intended to limit the scope of the described disclosure to that particular embodiment, but are intended to provide examples and context for the related description.

[0029] like Figure 1 As shown, the content sharing service (also referred to herein as the content sharing platform) 100 may include a server 110, a video service module 115, a video selection module 120, a server communication module 125, a video data storage (e.g., a video database) 130, and a user database 140. In one embodiment, the server communication module 125 is independent of the content sharing service 100. Additionally or alternatively, the server communication module 120 communicates with a third-party messaging platform (such as a messaging application on a smartphone). In other embodiments, the video service module 115, the video selection module 125, the server communication module 125, the video database 130, and the user database 140 are part of the server 110.

[0030] Many additional features, such as firewalls, load balancers, application servers, failover servers, site management tools, etc., are not shown to avoid obscuring the characteristics of the system. It should be understood that the term "website" refers to any computer system suitable for providing content using any network interconnection protocol and is not intended to be limited to content uploaded or downloaded via the Internet or Hypertext Transfer Protocol (HTTP). Typically, functions described as performing on the server side in one embodiment may also perform on the client side in other embodiments, if appropriate. Furthermore, functions belonging to a particular component may be performed by different or multiple components operating simultaneously.

[0031] The servers mentioned herein can be implemented as server programs executing on server-class computers, which include a central processing unit (CPU), memory, network interface, peripheral interfaces, and other well-known components. The computers themselves are well-suited to running operating systems such as Linux, and have general-purpose high-performance CPUs, gigabytes of memory, and gigabytes, terabytes, or even petabytes of disk storage devices. Of course, other types of computers can be used, and it is expected that as more powerful computers are developed in the future, the teachings herein can be applied to their configuration. Functionality implemented by any of these elements can be provided from a computer program product stored on a physical computer-readable storage medium (random access memory (RAM), hard disk, optical / magnetic media, etc.).

[0032] As described above, a user of client 150 connects to server 110 using content-sharing application 160 to play videos and interact with other content items (e.g., audio files, images, etc.) provided by content providers. Users of client 150 can search for videos based on keywords or other metadata. These requests are received as queries by server 110 and provided to video service module 115, which is responsible for searching for videos that meet the user's query in video data storage (e.g., database 130) and providing the videos to the user. Video service module 115 supports searching for any characteristics of the videos (including video title, description, metadata, author, category, etc.). Alternatively, users can browse videos based on categories such as most frequently watched videos, sports, animals, or cars. For example, a user can browse videos involving cars and select which video to watch. In some embodiments, users can search for or browse recommended or popular videos determined by content-sharing service 100. Users can also access videos via autoplay or by clicking on advertisements displayed on the user interface of content-sharing service 100. Other methods for searching and locating videos via video service module 115 may also be employed according to the implementer's discretion.

[0033] The video selection module 120 allows a user of client 150 to share video with other users in group communication. The video selection module 120 provides a direct entry point within the communication for the content-sharing application 160, allowing the user to directly select a video and share it with other users without leaving the content-sharing application 160 or providing multiple inputs to switch between different screens of the application. In some embodiments, this direct entry point includes a video selection control (also referred to herein as a video-sharing GUI element) in the group communication interface, and selecting the video selection control causes the content-sharing application 160 to display a video selection interface.

[0034] As discussed above, the client communication module 165 displays the group communication to the client 150 and sends instructions to the video player 180 to display the shared video in the group communication in various modes in response to user actions. The client communication module 165 allows the user of the client 150 to participate in the group communication through the application 160 by sending replies from the user to the group communication and receiving replies from other users in the group communication.

[0035] This disclosure provides various display states of video for group communication, wherein the display state of the video allows a user to view shared video in the group communication UI while maintaining the ability to continue discussion within the group communication. The display states of the video shared in the group communication include a collapsed state, an inline expanded state, and a persistent state. The client communication module 165 is responsible for scrolling the session in the group communication, displaying thumbnails, instructing the video player 180 to enter or leave various display states of the shared video for the group communication, and interpreting user gestures responsible for scrolling (e.g., touch gestures or gestures received via other input devices such as a mouse or keyboard). The video sharing module 170 facilitates video sharing in the group communication by sending user-selected videos to the group communication and receiving videos shared by other users in the group communication. When the client communication module 165 instructs the video player 180, the video player 180 is responsible for entering and leaving various display states of the shared video for the group communication.

[0036] By default, videos shared in group communication are displayed in a collapsed state in the group communication UI. When a user on client 150 shares a video, server communication module 120 instructs client communication module 165 to display the video in a collapsed state in the group communication UI. In one implementation, the collapsed state includes displaying the video as a thumbnail. A thumbnail may refer to a scaled-down version of the video represented by an image used to help identify the video. Thumbnails may be static or animated.

[0037] Figure 2 The illustration shows an example of a group communication interface 200, implemented according to certain methods, that shares video in a collapsed state within a group communication. Other users in the group communication can play the video, write replies to the video, or select another video to share within the group communication.

[0038] Group communication interface 200 includes a group communication identifier (ID) header 210, a session portion 220, and a message input portion 230. The group communication ID header 210 may include a header or other identifier for the group communication, and the session portion 220 may include one or more messages 224 provided by one or more client devices participating in the group communication. User avatars 222a and 222b may be displayed in the session portion 220 to identify the user contributing a specific message 224 to the group communication. Although only the identifiers 222a and 222b of the other users participating in the group communication are displayed on the group communication interface 200, the group communication can include a large number of users of the content sharing service. The message input portion 230 allows users to enter messages to contribute to the group communication.

[0039] exist Figure 2In the example, the shared video is provided in a collapsed state in the group communication interface 200. Therefore, a selectable thumbnail 225 of the video is provided as one of the group communication messages 224. In the collapsed state, the selectable thumbnail can be scrolled up or down along with other messages 224 in the group communication via an up scroll gesture or a down scroll gesture (e.g., swipe up or swipe down).

[0040] Refer again Figure 1 When a user on client 150 selects to share a video (e.g., by tapping a thumbnail), server communication module 120 sends an instruction to client communication module 165 to expand the thumbnail into an inline expanded state. In the inline expanded state, the shared video is presented at a larger size (compared to the video's collapsed state, e.g., thumbnail) and is also presented simultaneously with a playback control. The video in the inline expanded state scrolls along with other messages in the group communication (also referred to herein as a "session"). In one implementation, the video can automatically begin playback ("autoplay") in the group communication UI when it initially enters the inline expanded state. Furthermore, a playback control is provided as part of the inline expanded state along with the video, where the playback control allows pausing or resuming playback of the video, e.g., without collapsing the video.

[0041] Figure 3 The diagram illustrates an example of a group communication interface 300, based on certain implementations, for sharing video in an inline extended state during group communication. The group communication interface 300 reflects... Figure 2 This is the same example group communication described in group communication interface 200. Therefore, group communication interface 300 includes a group communication ID header 310, a session portion 320, and a message input portion 330, which is similar to that described in [the previous section]. Figure 2 The group communication interface 200 describes the corresponding part with the same name and operates accordingly. Figure 2 Similarly, session portion 320 may include one or more messages 324 provided by one or more client devices participating in the group communication. A user avatar 322 may be displayed in session portion 320 to identify the user contributing a specific message 324 to the group communication.

[0042] exist Figure 3 In the example, the selection of a thumbnail 225 of a shared video on the group communication interface 200 (e.g., a tapping gesture) is detected. As a result of the detected selection, it is provided in an inline extended state within the group communication interface 300. Figure 2The shared video. Therefore, the specific message 325 including the shared video is extended to the "mini player" 340 in the group communication interface 300. The mini player 340 can provide video playback (e.g., autoplay) and playback controls for the video, including a pause element 348 that pauses video playback without collapsing or exiting the mini player 340. The mini player 340 may also include a collapse element 342, an extension element 344, and a connection stream element 346. In the inline extended state, the mini player 340 scrolls up or down in response to an up scroll gesture or a down scroll gesture (e.g., swipe up or swipe down) along with other messages 334 in the group communication interface 300.

[0043] Refer again Figure 1 If the video (although in inline extended state) is not fully visible in the group communication UI, the client communication module 165 can automatically (i.e., without user intervention) scroll the session until the video is vertically centered in the group communication UI (e.g., on the client 150's monitor). If there are not enough session "runways" for the video to reach the center of the UI (e.g., if the video is the last event in the session), the session scrolls forward as far as possible. If a selection of the video is detected while the video is in inline extended state (e.g., a tap); Figure 3 If the folding element 342 is selected, the client communication module 165 sends a command to the video player 180 to stop video playback and fold the video back to its folded state (e.g., folded to a thumbnail). Alternatively, if a shared video in an inline extended state scrolls out of view at the bottom of the UI, the client communication module 165 instructs the video player 180 to stop video playback. Additionally, if an up or down swipe gesture is detected on the video portion of the UI while the video is in an inline extended state, the client communication module 165 instructs the video player 180 to scroll the session.

[0044] In one embodiment, when the video in the inline extended state scrolls to the top of the display, the client communication module 165 instructs the video playback module 160 to enter a persistent state. In the persistent state, the shared video (e.g., persistent) remains in a fixed position (e.g., top, bottom, edge, etc.) of the group communication UI, while the session continues scrolling detached from the video. In some implementations, a shadow is displayed immediately behind, below, and / or beneath the video to indicate that the video is in a persistent state. If a downward swipe gesture is detected on the video portion of the UI while the video is in a persistent state, the client communication module 165 instructs the video player 180 to collapse the video and displays a thumbnail. Conversely, an upward swipe gesture on the video portion of the UI may not trigger an action.

[0045] Figure 4 The diagram illustrates an example of a group communication interface 400 where video is shared persistently in group communication, according to certain implementations. The group communication interface 400 reflects... Figure 2 and Figure 3 The same example group communication described in group communication interfaces 200 and 300. Therefore, group communication interface 400 includes a group communication ID header 410, a session portion 420, and a message input portion 430, similar to those described in [the other two examples]. Figure 2 and Figure 3 The group communication interfaces 200 and 300 operate on the corresponding parts with the same names as described. Similar to... Figure 2 and Figure 3 The session portion 420 may include one or more messages 424 provided by one or more client devices participating in the group communication. A user avatar 422 may be displayed in the session portion 420 to identify the user contributing a specific message 424 to the group communication.

[0046] exist Figure 4 In the example, when the mini player 340 of the shared video in inline extended state scrolls to the top of the group communication interface 400, it is continuously provided within the group communication interface 400. Figure 2 and Figure 3 The shared video. Therefore, the shared video (e.g., persistent) remains at the top of the group communication interface 400, while other messages 424 continue scrolling below the video (in either direction). Although the description here discusses a persistent video provided at the top of the UI, other implementations may include persistent videos located in different parts of the UI (such as, for example, the bottom or edge of the UI). In some implementations, a shadow 442 is shown immediately below and / or beneath the video 440 to indicate that the video is persistent. Similar to... Figure 3 The mini player 340 and video 440 may include playback controls for controlling the playback of the video within the group communication interface 400.

[0047] Refer again Figure 1 In one embodiment, if the communication is scrolled such that the video's position (as initially shared in the session) scrolls completely back onto the UI, the client communication module 165 instructs the video player 180 to switch the playback from a persistent state to an inline extended state. Finally, if the video is in an inline extended state or a persistent state and a selection of another video shared in the group communication is detected (e.g., tapping a thumbnail representing a second video); Figure 4In the group communication interface 400 (video 435), the server communication module 120 sends an instruction to the client communication module 165 to fold the existing playback of the first video and (e.g., in an inline extended state as described above) start the playback of the second video.

[0048] like Figure 2 , Figure 3 and Figure 4 As shown, aspects of this disclosure provide mechanisms for video playback in group communication. These aspects can be implemented within a local group communication (e.g., group chat) component of an application (such as a content sharing application, a social networking application, etc.). Alternatively, these aspects can be implemented in a standalone group communication (e.g., group chat) application.

[0049] In one implementation, server communication module 125 provides group communication for display on client device 150 and monitors permission settings for each member of the group communication. For example, suppose a user of content sharing service 100 uploads a video to content sharing service 100 and sets privacy settings for the video to restrict access to the uploaded video by other users connected to the publishing user in content sharing service 100. If the publishing user or another user connected to the publishing user shares the video to the group communication, members of the group communication not connected to the publishing user may not be able to watch the video. In one embodiment, permission settings for users of content sharing service 100 are stored in user database 140.

[0050] Video database 130 stores video files and associated metadata provided by content owners. Each uploaded video is assigned a video identifier (ID) upon processing. In addition to the video ID, the video file also has associated metadata such as artist, video title, tags, type, duration, and geographic restrictions that can be used for geographic-based data collection or content blocking. Depending on the implementer's determination, more or fewer metadata items may be associated with the video file. In some embodiments, video database 130 also stores identifiers of recommended or popular videos determined by content sharing service 100.

[0051] User database 140 maintains records of registered users of content sharing service 100. Registered users include content providers and / or users who consume (e.g., play) videos on content sharing service 100 and interact with videos (e.g., share, rate, comment, etc.) but do not upload videos to content sharing service 100. Users can register account and / or certificate information with content sharing service 100, including, for example, a login name, email address, and password. This account and / or certificate information is stored in user database 140.

[0052] In addition to the description above, users may be provided with controls that allow them to select whether and when the system, program, or feature described herein can collect user information (e.g., information about the user's social networks, social actions or activities, occupation, user preferences, or the user's current location), and whether the user sends content or communications from the server. Furthermore, some data may be processed in one or more ways before storage or use to remove personally identifiable information. For example, a user's identity may be processed so that personally identifiable information about the user cannot be determined, or, in the case of location information, the user's geographic location may be generalized (e.g., city, zip code, or state) so that the user's precise location cannot be determined. Therefore, users can control what information about themselves is collected, how that information is used, and what information is provided to them.

[0053] Figure 5 This is a flowchart of an example server-side method 500 for video playback in group communication according to certain implementations of this disclosure. Each of method 500 and its individual functions, routines, subroutines, or operations can be executed by one or more processing devices of a computer device performing the method. In some implementations, method 500 can be executed by a single processing thread. Alternatively, method 500 can be executed by two or more processing threads, each thread executing one or more individual functions, routines, subroutines, or operations of the method. In the illustrative example, the processing threads implementing method 500 can be synchronized (e.g., using semaphores, critical sections, and / or other thread synchronization mechanisms). Alternatively, the processes implementing method 500 can be executed asynchronously relative to each other.

[0054] For simplicity, the method of this disclosure is depicted and described as a series of actions. However, the actions according to this disclosure may occur in various orders and / or concurrently, and may occur simultaneously with other actions not presented and described herein. Furthermore, not all of the actions illustrated may be necessary to implement the method according to this disclosure. Additionally, those skilled in the art will understand and appreciate that the method may alternatively be represented as a series of interrelated states via a state diagram or events. Furthermore, it should be understood that the methods disclosed in this specification can be stored on an article of art for transmission and delivery to a computing device. The term "article of art" as used herein is intended to include a computer program accessible from any computer-readable device or storage medium. In one implementation, method 500 may be executed by a content sharing service 100 performed by one or more processing devices of server 110.

[0055] When the processing device receives a request for video from a messaging application providing group communication including messages, method 500 may begin at block 510. At block 520, the processing device instructs a first client device to display a graphical representation of the video in the user interface (UI) of the messaging application during group communication on the first client device. In one implementation, the first client device is associated with a first user participating in group communication along with other users of a content-sharing service. The graphical representation may include thumbnail images. In some implementations, displaying the graphical representation of the video is referred to as the collapsed state described above.

[0056] Subsequently, at box 530, the processing device receives first user input from the first client device, including a selection of a graphical representation of the video in the UI during group communication. Then, at box 540, in response to the first user input, the processing device initiates video playback in the video playback section of the UI. In some implementations, this is referred to as the aforementioned inline extension state.

[0057] At box 550, the processing device allows input of additional messages for group communication via the UI during video playback. Finally, at box 560, while the first user scrolls through the group communication messages, the processing device keeps the playback portion of the UI visible to the first user. During the aforementioned inline extended state, the video playback portion scrolls along with the messages in the UI. During the aforementioned continuous state, the video playback portion continues separately from the scrolling of the messages in the UI.

[0058] Figure 6 This is a flowchart of an example client method 600 for video playback in group communication according to certain embodiments of the present disclosure. Each of method 600 and its individual functions, routines, subroutines, or operations can be executed by one or more processing devices of a computer device performing the method. In some implementations, method 600 can be executed by a single processing thread. Alternatively, method 600 can be executed by two or more processing threads, each thread performing one or more individual functions, routines, subroutines, or operations of the method. In the illustrative example, the processing threads implementing method 600 can be synchronized (e.g., using semaphores, critical sections, and / or other thread synchronization mechanisms). Alternatively, the processes implementing method 600 can be executed asynchronously relative to each other. In one implementation, method 600 can be executed by an application 160 executed by one or more processing devices of a mobile device (client device 150).

[0059] Method 600 may begin at block 610 by a processing device presenting a graphical user interface (GUI) for a messaging application providing group communication between a first user and one or more other users in the group. In one implementation, the GUI includes a portion displaying messages shared by the first user or at least one of the one or more other users in the group communication. At least one of the messages may include a graphical representation of video shared in the group communication. In one implementation, the graphical representation of the video being displayed is referred to as the collapsed state described above.

[0060] At box 620, the processing device can receive a selection of a graphical representation of the video via the GUI during group communication. Then, at box 630, in response to the selection of the video, the processing device can provide video playback in the video playback section of the UI. In some implementations, this is referred to as the aforementioned inline extension state.

[0061] Subsequently, at box 640, the processing device can receive input of one or more other messages for group communication via the GUI during video playback. Finally, at box 650, while the first user scrolls through the group communication messages, the processing device can keep the video playback portion of the UI visible to the first user. During the aforementioned inline extended state, the video playback portion scrolls along with the messages in the UI. During the aforementioned continuous state, the video playback portion continues separately from the scrolling of the messages in the UI.

[0062] Both the client 150 and the content sharing service 100 are implemented using computers. Figure 7 This is a block diagram illustrating an example computer 700, an entity that can be used to implement a video sharing environment according to one embodiment. The example computer 700 has sufficient memory, processing power, network connectivity bandwidth, and other computing resources to enable video playback in group communications as described herein.

[0063] Computer 700 includes at least one processor 702 (e.g., a central processing unit, a graphics processing unit) coupled to chipset 704. Chipset 704 includes a memory controller center 720 and an input / output (I / O) controller center 722. Memory 706 and graphics adapter 712 are coupled to memory controller center 720, and display 718 is coupled to graphics adapter 712. Storage device 708, keyboard 710, pointing device 714, and network adapter 716 are coupled to I / O controller center 722. Other embodiments of computer 700 have different architectures.

[0064] Storage device 708 is a non-transitory computer-readable storage medium, such as a hard disk drive, optical disc read-only memory (CD-ROM), digital versatile disc (DVD), or solid-state storage device. Memory 706 stores instructions and data used by processor 702. Processor 702 may include one or more processors 702 having one or more cores that execute instructions. Pointing device 714 is a mouse, touchscreen, or other type of pointing device, and in some examples, pointing device 714 is used in conjunction with keyboard 710 to input data into computer 700. Graphics adapter 712 displays media and other images and information on display 718. Network adapter 716 couples computer 700 to one or more computer networks (e.g., network 105).

[0065] Computer 700 is adapted to execute computer program modules for providing the functions described herein, including media presentation and / or metadata generation. As used herein, the term "module" refers to computer program logic for providing a particular function. Thus, modules can be implemented in hardware, firmware, and / or software. In one embodiment of computer 700 implementing content sharing service 100 (illustrated as content sharing server 750), program modules such as video service module 115, video selection module 120, and server communication module 125 are included, which are stored on storage device 708, loaded into memory 706, and executed by processor 702.

[0066] The type of computer 700 used by the entities in the video sharing environment can vary depending on the embodiment and the processing power required by the entity. For example, client 150 is a smartphone, tablet, laptop, or desktop computer. As another example, content sharing service 100 may include multiple blade servers operating simultaneously to provide the functionality described herein. Computer 700 may include copies of certain components or may omit certain components described above (e.g., keyboard 710, graphics adapter 712, pointing device 714, and display 718). For example, content sharing service 100 may operate on a single computer 700 or multiple computers 700 communicating with each other via a network such as a server farm.

[0067] Various aspects of this disclosure have been described in considerable detail with respect to various embodiments, and those skilled in the art will understand that this disclosure may be practiced in other embodiments. Furthermore, those skilled in the art will understand the following aspects of this disclosure. First, specific naming of components, capitalization of terms, identifiers, data structures, or any other programming or structural aspects are not mandatory or essential, and mechanisms for implementing the disclosure or its features may have different names, formats, or protocols. Second, as described, the system may be implemented by a combination of hardware and software, or entirely by hardware elements. Third, the specific division of functions among the various system components described herein is merely exemplary and not mandatory; a function performed by a single system component may be performed alternatively by multiple components, and a function performed by multiple components may be performed alternatively by a single component.

[0068] Certain portions of this specification describe aspects of this disclosure based on algorithms and symbolic representations of operations on information. Those skilled in the art will commonly use these algorithms and representations to effectively convey the substance of their work to others skilled in the art. Although these operations are described functionally, computationally, or logically, they should be understood as being implemented by computer programs or equivalent circuit microcode, etc. Furthermore, it has sometimes proven convenient to refer to the arrangement of these operations as modules without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combination thereof, stored on a non-transitory computer-readable medium that causes a processor to perform the described functions.

[0069] The embodiments may also relate to means for performing the operations described herein. This means may be specifically constructed for the desired purpose and / or may include a general-purpose computing device selectively activated or reconfigured by a computer program stored in a computer. As described above, such a computer program may be stored in a non-transitory tangible computer-readable storage medium or any type of medium suitable for storing electronic instructions that can be coupled to a computer system bus. Furthermore, any computing system mentioned in the specification may include a single processor, or may be a structure employing multiple processors to enhance computing power. Thus, a general-purpose computer programmed as described above becomes a special-purpose computer suitable for performing the functions described herein.

[0070] This disclosure may also relate to products generated by the computational processes described herein. Such products may include information generated by the computational processes, which are stored on a non-transitory tangible computer-readable storage medium, and may include any embodiment of a computer program product or other combinations of data described herein.

[0071] Finally, the language used in this specification has been chosen primarily for readability and instructional purposes, and may not have been chosen to depict or limit the scope of the invention. Therefore, the scope of this disclosure is not intended to be limited by this detailed description, but rather by any of the claims made with respect to the application herein.

Claims

1. A method for video playback in group communication, comprising: A graphical representation of video is provided in the user interface (UI) of a messaging application during group communication by a processing device of a client device associated with a first user who participates in the group communication along with other users of a content sharing service. The graphical representation is used to scroll through messages in the group communication. In response to receiving a selection of the graphical representation of the video in the UI during the group communication, playback of the video is initiated in a video playback section of the UI, the video playback section scrolling along with the messages of the group communication; as well as In response to detecting that the video playback portion has at least partially scrolled out of the view of the UI, the video playback portion of the UI is kept in a continuous position within the UI visible to the first user, while the message scrolls separately from the video playback portion in the continuous position within the group communication.

2. The method of claim 1, wherein, The selection includes tapping gestures detected by the video in the UI for the group communication.

3. The method of claim 1, further comprising allowing input of other messages for the group communication via the UI during playback of the video.

4. The method according to claim 1, wherein, During the group communication, at least one of the vertical up swipe gesture or vertical down swipe gesture detected by the UI causes the video playback portion to scroll along with the message.

5. The method of claim 4, further comprising, in response to the vertical downward swipe gesture causing the video playback portion to scroll out of view at the bottom of the UI of the group communication, stopping the playback of the video.

6. The method of claim 1, further comprising: Receive user input, including tapping gestures for the video playback portion; as well as In response to the user input, the client device is instructed to display the graphical representation of the video in the UI.

7. The method of claim 1, further comprising: Receive user input including a second selection of folding control for the video; as well as In response to the user input, the client device is instructed to display the graphical representation of the video.

8. The method according to claim 1, wherein, The video playback section includes playback controls to allow pausing the playback of the video while keeping the video in the playback section of the UI.

9. The method according to claim 1, wherein, At least one of a vertical upward swipe gesture or a vertical downward swipe gesture detected at the sustained position of the video playback portion of the UI causes the message to scroll while the video playback portion remains at the sustained position in the UI.

10. The method of claim 9, further comprising, while the video is displayed in the persistent position, in response to a message including the video initially shared in the group communication that is fully displayed in a view in the UI during the group communication, instructing the client device to display the graphical representation of the video.

11. The method of claim 9, further comprising: Receive user input, the user input including a downward swipe gesture for the video playback portion displayed at the continuous position in the UI; as well as In response to the user input, the client device is instructed to display the graphical representation of the video.

12. The method according to claim 1, wherein, The shadow displayed below the video playback section in the UI during the group communication indicates that the video is displayed in the continuous position.

13. The method according to claim 1, wherein, The graphical representation of the video includes thumbnail images.

14. The method of claim 1, further comprising: Receive user input, the user input including the selection of another video in the UI of the group communication; as well as In response to the user input: Instruct the client device to display the graphical representation of the video; and The client device is instructed to begin playback of the other video in the video playback section of the UI.

15. A client device, comprising: Memory; as well as A processing device coupled to the memory, the processing device being used for: A graphical representation of video is provided in the user interface (UI) of a messaging application during group communication, the client device being associated with a first user who participates in the group communication along with other users of a content sharing service, the graphical representation being used to scroll through messages in the group communication; In response to receiving a selection of the graphical representation of the video in the UI during the group communication, playback of the video is initiated in a video playback section of the UI, the video playback section scrolling along with the messages of the group communication; as well as In response to detecting that the video playback portion has at least partially scrolled out of the view of the UI, the video playback portion of the UI is kept in a continuous position within the UI visible to the first user, while the message scrolls separately from the video playback portion in the continuous position within the group communication.

16. The client device according to claim 15, wherein, The video playback portion scrolls along with the message, and wherein at least one of a vertical up swipe gesture or a vertical down swipe gesture detected by the UI during the group communication causes the video playback portion to scroll along with the message.

17. The client device according to claim 15, wherein, At least one of a vertical upward swipe gesture or a vertical downward swipe gesture detected at the sustained position of the video playback portion of the UI causes the message to scroll while the video playback portion remains at the sustained position in the UI.

18. The client device of claim 17, further comprising, while the video is displayed in the persistent position, in response to a message including the video initially shared in the group communication that is fully displayed in a view in the UI during the group communication, instructing the client device to display the graphical representation of the video.

19. A non-transitory computer-readable medium storing computer-executable instructions, the instructions causing a device including a processor to perform operations in response to execution, the operations comprising: The processor of the client device provides a graphical representation of the video in the user interface (UI) of a messaging application during group communication, the client device being associated with a first user who participates in the group communication along with other users of the content sharing service, the graphical representation being used to scroll through messages in the group communication; In response to receiving a selection of the graphical representation of the video in the UI during the group communication, playback of the video is initiated in a video playback section of the UI, the video playback section scrolling along with the messages of the group communication; as well as In response to detecting that the video playback portion has at least partially scrolled out of the view of the UI, the video playback portion of the UI is kept in a continuous position within the UI visible to the first user, while the message scrolls separately from the video playback portion in the continuous position within the group communication.

20. The non-transitory computer-readable medium according to claim 19, wherein, The video playback portion scrolls along with the message, and wherein at least one of a vertical up swipe gesture or a vertical down swipe gesture detected by the UI during the group communication causes the video playback portion to scroll along with the message.

Citation Information

Patent Citations

  • Scrolling Control and Communication Control Applications and Methods

    US20110145757A1

  • System and Method for Multi-Device Video Image Display and Modification

    US20150350737A1