Context card for media supplementation

By using the Instrumental User Interface Elements in the interactive system to automatically identify and associate supplementary contents of media content items, the convenience and speed of users' consumption of enhanced content in the interactive system are solved, and more efficient content generation and creative expression are achieved.

CN119278428APending Publication Date: 2025-01-07SNAP INC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202380041915.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-23
Filing Date
2023-05-19
Publication Date
2025-01-07

AI Technical Summary

Technical Problem

The prior art is difficult to improve the convenience and speed of users consuming enhanced or supplementary content in interactive systems, especially in identifying and locating specific supplementary content applied to publishing users' media content items.

Method used

By introducing the Instruction User Interface elements, the association between the main media content items in the interactive application and the supplementary media content items is detected and automatically identified, relevant metadata is retrieved, and supplementary display is presented in the user interface, allowing users to choose to call the supplementary function to Applied to other media content items to achieve automatic association and improve efficiency.

Benefits of technology

Simplifies content generation and interaction, reduces the demand for computing resources, improves users' creative expression capabilities in the interactive system, and optimizes the user interface through automatic navigation and automatic call, improving the efficiency of content items generation and use. .

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119278428A_ABST
    Figure CN119278428A_ABST
Patent Text Reader

Abstract

In some examples, a method of presenting an affordable user interface element within a user interface of an interactive application includes detecting an association of a primary media content item presented within the user interface with a supplemental media content item. A supplemental media content item is identified from a plurality of supplemental media content items supported by an interactive application. The method may include retrieving metadata related to a supplemental media content item and presenting a supplemental affordance within a user interface, the supplemental affordance presenting the metadata. In some examples, the supplemental affordance is selectable by a user via a user interface to invoke a supplemental function that enables the user to apply a supplemental media content item to another primary media content item. In response to detecting a user selection of a supplemental performance within the user interface, a supplemental function is invoked.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority declaration

[0002] This application claims the benefit of priority to U.S. Provisional Application Serial No. 63 / 365,160, filed on May 23, 2022, the entire contents of which are incorporated herein by reference. Technical Field

[0003] The present disclosure relates generally to electronic content sharing. More specifically, the subject matter disclosed herein relates to systems and methods for utilizing affordance user interface elements to facilitate content generation or user interaction. Background Art

[0004] The popularity of computer-implemented programs that allow users to access content online and interact with other users continues to grow. There are various computer-implemented applications that allow users to share content with other users through interactive applications such as messaging clients, media clients, or other content sharing clients. Some computer-implemented applications may be designed to run on mobile devices such as phones, tablets, or wearable devices, while having back-end services provided on a server computer system to perform specific operations, such as operations that may require more resources than can reasonably be performed on the user's device.

[0005] The interactive application may enable a publishing user to capture a photo or video and share the captured content to another device for viewing by a viewing user. The captured content may be enhanced or supplemented by the publishing user with items such as filters, media overlays, augmented reality effects, links, audio clips, locations, etc. The viewing user may interact with the publishing user or with the shared content via the interactive application. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] In the drawings, which are not necessarily drawn to scale, like reference numerals may describe similar components in different views. To easily identify the discussion of any particular element or action, the most significant digit or digits in a reference numeral refer to the reference numeral in which the element is first introduced. Some non-limiting examples are shown in the accompanying drawings, in which:

[0007] Figure 1 is a diagrammatic representation of a networked environment in which the present disclosure may be deployed, according to some examples.

[0008] Figure 2 is a diagrammatic representation of an interactive system having both client-side and server-side functionality according to some examples.

[0009] Figure 3 is a diagrammatic representation of data structures maintained in a database according to some examples.

[0010] Figure 4 is a user interface diagram showing a user interface presenting media content items and affordance user interface elements according to some examples.

[0011] Figure 5 is a user interface diagram showing a user interface presenting media content items and affordance user interface elements according to some examples.

[0012] Figure 6 is a flowchart illustrating a method suitable for presenting and implementing user selections of affordance user interface elements within a user interface of an interactive application according to some examples.

[0013] Figure 7 is a user interface diagram showing a lower portion of a user interface according to some examples, in which an affordance user interface element is overlaid on a media content item.

[0014] Figure 8 is a user interface diagram showing a lower portion of a user interface according to some examples, in which an affordance user interface element is overlaid on a media content item.

[0015] Fig. 9 is a user interface diagram illustrating camera functionality of an interactive application according to some examples.

[0016] Fig.10 is a graphical representation of messages according to some examples.

[0017] Fig.11 A system including a head wearable device according to some examples is shown.

[0018] Fig.12 is a block diagram illustrating a software architecture in which examples may be implemented.

[0019] Fig.13 is a diagrammatic representation of a machine in the form of a computer system according to some examples within which a set of instructions may be executed for causing the machine to perform any one or more of the methodologies discussed herein. DETAILED DESCRIPTION

[0020] In the context of an interactive system that enables users to create and share content, a viewing user may view a media content item shared by a publishing user. The media content item may be an image or video that has been supplemented with supplementary media content items, for example, by applying a content enhancement (e.g., a filter or media overlay) or a sound clip selected by the publishing user to the image or video. The viewing user may wish to create a new media content item using one or more of the supplements to the publishing user's media content item.

[0021] It is desirable to facilitate the ease of communication of messages and content items between users. In particular, it is desirable to facilitate the use of content enhancements or supplements supported by an interactive system. However, there are many technical challenges with respect to increasing the ease and speed with which a user can consume content that includes an enhancement or supplement and then create a new content item based on or associated with the enhancement or supplement. For example, it may be difficult for a viewing user to identify a particular supplement that applies to a publishing user's media content item, or a database of supported supplements may need to be searched in order to locate a desired supplement that applies to a third party's content item.

[0022] Affordance user interface elements can present visual cues that provide prompts about how a user can interact with a digital object, user, or feature. For example, when a user sees a receiver icon on a user interface, the icon provides a prompt that selects the icon to enable the user to initiate a call. Affordance user interface elements can present action possibilities or action options between a user and a media content item within the context of an interactive application. Therefore, the affordance presented by an affordance user interface element in an example as described herein can be an attribute or feature of an object (e.g., an attribute or feature of a media content item), which presents prompts about one or more ways in which a user can interact with an object.

[0023] In some examples, a method for presenting a supplemental affordance within a user interface of an interactive application is described. The supplemental affordance may be a context card, or may be included within a context card. The method includes detecting an association between a primary media content item (e.g., an image or video) displayed within the user interface of the interactive application and a supplemental media content item (e.g., a content enhancement, a media overlay, an audio file, or a location marker). Supplemental media content items are automatically identified from a plurality of supplemental media content items supported by the interactive application, and metadata (e.g., a title, creator, icon, or animation) associated with the supplemental media content item is automatically retrieved.

[0024] In some examples, the method includes presenting a context card within a user interface along with a first primary media content item published by a first user (publishing user). The context card presents metadata related to the supplementary media content item and can be user-selected by a second user (viewing user) via the user interface to invoke a supplementary function (e.g., an image enhancement function or an audio supplementary function). In response to detecting a user selection of the context card, the supplementary function is invoked within the interactive application. The supplementary function can cause the presentation of a related supplementary media content item (associated with the context card) for the second user to apply to another primary media content item (e.g., an image or video selected by the second user).

[0025] In some examples, the supplemental function enables the user to select additional primary media content items and automatically associate the supplemental media content items with the additional primary media content items. This provides improved efficiency, for example, by significantly reducing the selections required to associate the desired supplemental media content items with the additional primary media content items. For example, the supplemental function can automatically call a camera function of the interactive application that enables the user to capture the additional primary media content items in a manner that the supplemental media content items are automatically associated with or applied to the additional primary media content items.

[0026] In some examples, the contextual card is presented within the user interface along with the primary media content item.The contextual card can be superimposed on the primary media content item in a viewing user interface that enables a user to view the third-party content item.

[0027] A primary media content item may be associated with multiple supplementary media content items. For example, a primary media content item may be an image with image enhancements and sound clips applied thereto. In some examples, the method includes automatically retrieving metadata associated with each corresponding supplementary media content item detected to be associated with the primary media content item, and presenting supplementary affordances for each detected supplementary media content item. The examples described herein implement automatic navigation (e.g., automatic scrolling) to facilitate viewing of multiple supplementary affordances. The examples described herein also enable multiple supplementary affordances to be automatically arranged within a user interface based on contextual priorities.

[0028] Technical barriers to increasing the ease or speed of content item generation can be mitigated by providing affordance user interface elements and related functionality as described herein. Examples of the present disclosure can enable interactive systems to generate context-aware presentations of media content items and use technical tools to simplify or encourage creative expression.

[0029] In the case of considering the effects in the present disclosure as a whole, one or more of the methods described herein can eliminate the need for certain efforts or resources involved in executing interactive applications. For example, as a result of automatic presentation of context cards, automatic arrangement, navigation or sorting of supplementary affordances, automatic invocation of supplementary functions, or as a result of a reduction in the number of selections or user inputs required to achieve a desired result, the computing resources used by one or more machines, databases, or networks can be more efficiently utilized or even reduced. Examples of such computing resources may include processor cycles, network traffic, memory usage, graphics processing unit (GPU) resources, data storage capacity, power consumption, and cooling capabilities.

[0030] Networked computing environment

[0031] Figure 11 is a block diagram illustrating an example interactive system 100 for facilitating interactions over a network (e.g., exchanging text messages, conducting text audio and video calls, or playing games). The interactive system 100 includes multiple user systems 102, each of which hosts multiple applications including an interactive client 104 and other applications 106. Each interactive client 104 is communicatively coupled to other instances of the interactive client 104 (e.g., hosted on respective other user systems 102), an interactive server system 108, and a third-party server 110 via one or more communication networks including a network 112 (e.g., the Internet). The interactive client 104 can also communicate with the locally hosted application 106 using an application program interface (API).

[0032] Each user system 102 may include multiple user devices, such as mobile devices 128, head wearable devices 126, or computer client devices 130, which are communicatively connected to exchange data and messages. The interactive client 104 interacts with other interactive clients 104 and with the interactive server system 108 via the network 112. The data exchanged between the interactive clients 104 (e.g., interactions 124) and between the interactive clients 104 and the interactive server system 108 includes functions (e.g., commands for activating functions) and payload data (e.g., text, audio, video, or other multimedia data).

[0033] The interactive server system 108 provides server-side functions to the interactive clients 104 via the network 112. Although certain functions of the interactive system 100 are described herein as being performed by the interactive clients 104 or by the interactive server system 108, it may be a design choice whether certain functions are located within the interactive clients 104 or within the interactive server system 108. For example, it may be technically preferred to initially deploy certain technologies and functions within the interactive server system 108, but later migrate the technologies and functions to the interactive clients 104 where the user system 102 has sufficient processing power.

[0034] The interactive server system 108 supports various services and operations provided to the interactive clients 104. Such operations include sending data to the interactive clients 104, receiving data from the interactive clients 104, and processing data generated by the interactive clients 104. The data may include message content, client device information, geolocation information, media enhancements and overlays, message content persistence conditions, entity relationship information, and live event information. The data exchange within the interactive system 100 is activated and controlled by functions available through the user interface of the interactive client 104.

[0035] Turning now specifically to the interaction server system 108, the API server 114 is coupled to and provides a programming interface to the interaction server 118, making the functionality of the interaction server 118 accessible to the interaction clients 104, other applications 106, and third-party servers 110. The interaction server 118 is communicatively coupled to the database server 116, thereby facilitating access to a database 120 that stores data associated with interactions processed by the interaction server 118. Similarly, a web server 122 is coupled to the interaction server 118 and provides a web-based interface to the interaction server 118. To this end, the web server 122 handles incoming network requests via the Hypertext Transfer Protocol (HTTP) and several other related protocols.

[0036] The API server 114 receives and sends interaction data (e.g., commands and message payloads) between the interaction server 118 and the user system 102 (and, for example, the interaction client 104 and other applications 106) and the third-party server 110. Specifically, the API server 114 provides a set of interfaces (e.g., routines and protocols) that the interaction client 104 and other applications 106 can call or query to activate the functions of the interaction server 118. The API server 114 exposes various functions supported by the interaction server 118, including account registration; login functionality; creating new media content items; sending interaction data from a particular interaction client 104 to another interaction client 104 via the interaction server 118; transferring media files (e.g., images or videos) from the interaction client 104 to the interaction server 118; setting up a collection of media data (e.g., a story); retrieving a friend list of a user of the user system 102; retrieving information and content; adding and removing entities (e.g., friends) from an entity graph (e.g., an entity graph); locating friends within an entity graph; and opening application events (e.g., related to the interaction client 104).

[0037] The interactive server 118 hosts multiple systems and subsystems, as described below. Figure 2 Give a description.

[0038] System Architecture

[0039] Figure 2 1 is a block diagram showing additional details about the interactive system 100 according to some examples. Specifically, the interactive system 100 is shown to include an interactive client 104 and an interactive server 118. The interactive system 100 contains multiple subsystems that are supported on the client side by the interactive client 104 and on the server side by the interactive server 118.

[0040] In some examples, one or more subsystems are implemented as microservices. A microservice subsystem (e.g., a microservice application) can have components that enable the microservice subsystem to operate independently and communicate with other services. Example components of a microservice subsystem can include:

[0041] Functional logic: Functional logic implements the functionality of a microservice subsystem and represents the specific capabilities or functions provided by a microservice.

[0042] API interface: Microservices can communicate with each other through a well-defined API or interface using a lightweight protocol such as REST or messaging. The API interface defines the input and output of the microservice subsystem, and how the microservice subsystem interacts with other microservice subsystems of the interactive system 100.

[0043] Data storage: A microservice subsystem may be responsible for its own data storage, which may be in the form of a database, cache, or other storage mechanism (e.g., using database server 116 and database 120). This enables the microservice subsystem to operate independently of other microservices of interactive system 100.

[0044] Service discovery: A microservice subsystem can find and communicate with other microservice subsystems of the interactive system 100. The service discovery mechanism enables a microservice subsystem to locate and communicate with other microservice subsystems in a scalable and efficient manner.

[0045] Monitoring and logging: Microservice subsystems may need to be monitored and logged to ensure availability and performance. Monitoring and logging mechanisms enable tracking the health and performance of microservice subsystems.

[0046] Example subsystems are discussed below. First, the image processing system 202 of the interactive system 100 provides various functions that enable a user to capture and enhance (e.g., annotate or otherwise modify or edit) media content associated with a message (e.g., a "post", a direct message, or a group message). As mentioned above, the content can be enhanced or supplemented with items such as filters, media overlays, augmented reality effects, links, audio clips, positioning, etc.

[0047] The camera system 204 includes control software (e.g., in a camera application) that interacts with and controls the hardware camera hardware of the user system 102 (e.g., directly or via operating system control) to modify and enhance real-time images captured and displayed via the interactive client 104. The enhancement system 206 provides functionality related to the generation and publication of enhancements (e.g., media overlays) to images captured in real-time by the camera of the user system 102 or retrieved from the memory of the user system 102. For example, the enhancement system 206 is operable to select, present, and display media overlays (e.g., image filters or image lenses) to the interactive client 104 for enhancing real-time images received via the camera system 204 or stored images retrieved from the memory 1122 of the user system 102. These enhancements are selected and presented to the user of the interactive client 104 by the enhancement system 206 based on some input and data, such as:

[0048] The geolocation of the user system 102; and

[0049] Entity relationship information of users of the user system 102 .

[0050] Enhancement can include audio and visual content and visual effects. Examples of audio and visual content include pictures, text, logos, animations, songs, and sound effects. Examples of visual effects include color overlays. Audio and visual content or visual effects can be applied to media content items (e.g., photos or videos) at user system 102 for transmission in messages, or applied to video content such as video content streams or feeds sent from interactive client 104. Therefore, image processing system 202 can interact with various subsystems of communication system 210 and support various subsystems of communication system 210, such as messaging system 212 and video communication system 216.

[0051] Media overlays may include text or image data that can be superimposed on a photo taken by the user system 102 or a video stream produced by the user system 102. In some examples, the media overlay may be a location overlay (e.g., Venice Beach), the name of a live event, or a business name overlay (e.g., Beach Cafe). In other examples, the image processing system 202 uses the geographic location of the user system 102 to identify a media overlay that includes the name of a business at the geographic location of the user system 102. The media overlay may include other tags associated with the business. The media overlay may be stored in the database 120 and accessed by the database server 116.

[0052] In some examples where enhancement has been applied to an original content item (e.g., to an image or video), the original content item is referred to as a "primary media content item" and the enhancement is referred to as a "supplementary media content item". In some examples, a primary media content item may have multiple associated supplementary media content items. For example, a user may capture or select an image and apply a specific image filter to it. An image filter may be referred to as a supplementary media content item, while an image may be referred to as a primary media content item. For example, a user may also add an audio clip so that the audio clip plays when the image is viewed on an interactive client 104. Therefore, an audio clip may be considered as another supplementary media content item. It should be understood that in some cases, enhancement may be applied to an image or video in real time, thus resulting in no "original content item" existing alone. However, in the context of the present disclosure, the term "primary media content item" is still used to refer to a primary or basic item, such as the image itself, while the term "supplementary media content item" is used to identify a specific enhancement (or other supplement) applied by a user to generate a content item in real time. As described further below (with reference to context system 232), a "supplemental media content item" may also refer to another type of item, such as a request or a collection of content, that is associated with, but does not necessarily apply to, a primary media content item.

[0053] The image processing system 202 provides a user-based publishing platform that enables a user to select a geographic location on a map and upload content associated with the selected geographic location. The user can also specify situations in which a particular media overlay should be provided to other users. The image processing system 202 generates a media overlay that includes the uploaded content and associates the uploaded content with the selected geographic location.

[0054] The augmented creation system 208 supports an augmented reality developer platform and includes applications for content creators (e.g., artists and developers) to create and publish augmentations (e.g., augmented reality experiences) for interactive clients 104. The augmented creation system 208 provides content creators with a library of built-in features and tools, including, for example, custom shaders, tracking techniques, and templates.

[0055] In some examples, the enhancement creation system 208 provides a merchant-based publishing platform that enables merchants to select specific enhancements associated with a geographic location via a bidding process. For example, the enhancement creation system 208 associates the media overlay of the highest bidding merchant with the corresponding geographic location for a predefined amount of time.

[0056] The communication system 210 is responsible for enabling and processing various forms of communication and interaction within the interactive system 100, and includes a messaging system 212, an audio communication system 214, and a video communication system 216. In some examples, the messaging system 212 is responsible for implementing temporary or time-limited access to content by the interactive client 104. The messaging system 212 includes multiple timers that selectively enable access (e.g., for presentation and display) of messages and associated content via the interactive client 104 based on duration and display parameters associated with a message or a collection of messages (e.g., a story). The audio communication system 214 enables and supports audio communication (e.g., real-time audio chat) between multiple interactive clients 104. Similarly, the video communication system 216 enables and supports video communication (e.g., real-time video chat) between multiple interactive clients 104.

[0057] The user management system 218 is operationally responsible for managing user data and profiles, and includes an entity relationship system 220 that maintains information about relationships between users of the interactive system 100 .

[0058] The collection management system 222 is operationally responsible for managing a collection or collection of media (e.g., a collection of text, image video, and audio data). A collection of content (e.g., messages, including images, videos, text, and audio) can be organized into an "event gallery" or "event story". Such a collection can be made available within a specified time period (e.g., the duration of the event to which the content relates). For example, content related to a concert can be available as a "story" for the duration of the concert. The collection management system 222 can also be responsible for publishing an icon that provides a notification of a specific collection to the user interface of the interactive client 104. The collection management system 222 includes a curation function that enables collection managers to manage and curate specific content collections. For example, a curation interface enables event organizers to curate a collection of content related to a specific event (e.g., deleting inappropriate content or redundant messages). In addition, the collection management system 222 uses machine vision (or image recognition technology) and content rules to automatically curate content collections. In some examples, compensation can be paid to users for including user-generated content in a collection. In such a case, the collection management system 222 operates to automatically pay such users to use their content.

[0059] The mapping system 224 provides various geolocation functions and supports the presentation of map-based media content and messages by the interactive client 104. For example, the mapping system 224 enables the display of a user icon or avatar (e.g., stored in the profile data 316) on a map to indicate the current or past locations of the user's "friends" within the context of the map, as well as media content (e.g., a collection of messages including photos and videos) generated by these friends. For example, on the map interface of the interactive client 104, a message posted by the user to the interactive system 100 from a particular geographic location can be displayed to the "friends" of the particular user within the context of that particular location on the map. The user can also share his or her location and status information with other users of the interactive system 100 via the interactive client 104 (e.g., using an appropriate status avatar), where the location and status information is similarly displayed to the selected user within the context of the map interface of the interactive client 104.

[0060] The gaming system 226 provides various gaming functions within the context of the interactive client 104. The interactive client 104 provides a gaming interface that provides a list of available games that can be launched by a user within the context of the interactive client 104 and played with other users of the interactive system 100. The interactive system 100 also enables a particular user to invite other users to participate in playing a particular game by sending invitations to such other users from the interactive client 104. The interactive client 104 also supports audio, video, and text messaging (e.g., chatting) within the context of game play, provides leaderboards for games, and also supports the provision of in-game rewards (e.g., game coins and items).

[0061] The external resource system 228 provides an interface for the interactive client 104 to communicate with a remote server (e.g., a third-party server 110) to launch or access an external resource (i.e., an application or applet). Each third-party server 110 hosts, for example, an application or a small-scale version of an application based on a markup language (e.g., HTML5) (e.g., a game application, a utility application, a payment application, or a ride-sharing application). The interactive client 104 can launch a web-based resource (e.g., an application) by accessing an HTML5 file from a third-party server 110 associated with a web-based resource. The application hosted by the third-party server 110 is programmed in JavaScript using a software development kit (SDK) provided by the interactive server 118. The SDK includes an application program interface (API) with functions that can be called or activated by a web-based application. The interactive server 118 hosts a JavasScript library that provides a given external resource access to specific user data of the interactive client 104. HTML5 is an example of a technology for programming games, but applications and resources programmed based on other technologies can be used.

[0062] In order to integrate the functionality of the SDK into the web-based resource, the SDK is downloaded from the interactive server 118 by the third-party server 110, or the SDK is received by the third-party server 110 in other ways. Once downloaded or received, the SDK is included as part of the application code of the web-based external resource. The code of the web-based resource can then call or activate certain functions of the SDK to integrate the features of the interactive client 104 into the web-based resource.

[0063] The SDK stored on the interactive server system 108 effectively provides a bridge between external resources (e.g., applications 106 or applets) and the interactive client 104. This gives the user a seamless experience of communicating with other users on the interactive client 104 while also preserving the appearance of the interactive client 104. In order to bridge the communication between the external resources and the interactive client 104, the SDK facilitates the communication between the third-party server 110 and the interactive client 104. The WebViewJavaScriptBridge running on the user system 102 establishes two one-way communication channels between the external resources and the interactive client 104. Messages are sent asynchronously between the external resources and the interactive client 104 via these communication channels. Each SDK function activation is sent as a message and a callback. Each SDK function is implemented by constructing a unique callback identifier and sending a message with the callback identifier.

[0064] By using the SDK, not all information from the interactive client 104 is shared with the third-party server 110. The SDK limits which information is shared based on the needs of the external resource. Each third-party server 110 provides an HTML5 file corresponding to a web-based external resource to the interactive server 118. The interactive server 118 can add a visual representation (e.g., a box design or other graphics) of the web-based external resource in the interactive client 104. Once the user selects the visual representation or instructs the interactive client 104 to access the features of the web-based external resource through the GUI of the interactive client 104, the interactive client 104 obtains the HTML5 file and instantiates the resource for accessing the features of the web-based external resource.

[0065] The interactive client 104 presents a graphical user interface (e.g., a login page or title screen) for an external resource. During, before, or after presenting the login page or title screen, the interactive client 104 determines whether the launched external resource has been previously authorized to access the user data of the interactive client 104. In response to determining that the launched external resource has been previously authorized to access the user data of the interactive client 104, the interactive client 104 presents another graphical user interface of the external resource including the functions and features of the external resource. In response to determining that the launched external resource has not been previously authorized to access the user data of the interactive client 104, after displaying the login page or title screen of the external resource for a threshold period of time (e.g., 3 seconds), the interactive client 104 slides up a menu (e.g., animating the menu to emerge from the bottom of the screen to the middle or other part of the screen) for authorizing the external resource to access the user data. The menu identifies the type of user data that the external resource will be authorized to use. In response to receiving the user's selection of the acceptance option, the interactive client 104 adds the external resource to the list of authorized external resources and allows the external resource to access the user data from the interactive client 104. External resources are authorized by the interactive client 104 to access user data under the OAuth 2 framework.

[0066] The interaction client 104 controls the type of user data shared with the external resource based on the type of external resource that is authorized. For example, an external resource including a full-scale application (e.g., application 106) is provided with access to a first type of user data (e.g., a two-dimensional avatar of a user with or without different avatar characteristics). As another example, an external resource including a small-scale version of an application (e.g., a web-based version of the application) is provided with access to a second type of user data (e.g., payment information, a two-dimensional avatar of a user, a three-dimensional avatar of a user, and an avatar with various avatar characteristics). Avatar characteristics include different ways to customize the appearance of an avatar (e.g., different poses, facial features, clothing, etc.).

[0067] The advertising system 230 operatively enables third parties to purchase advertisements for presentation to end users via the interactive clients 104 and also handles the delivery and presentation of these advertisements.

[0068] Context system 232 provides various functionality for providing contextual content associated with a media content item (eg, a message with media content, a media collection, etc.). In some examples, context system 232 provides specified types of context that may be associated with a media content item.

[0069] For example, different types of contexts include, but are not limited to: a request (e.g., where the media content item corresponds to a request such as a friend request); an invitation to a group / event chat (e.g., where the media content item corresponds to an invitation); an invitation to a private media collection (e.g., where the media content item corresponds to an invitation); a business (e.g., where the media content item corresponds to a business, such as an online purchase); a non-sponsored attachment (e.g., where the media content item includes an attachment), a game (e.g., where the media content item corresponds to initiating / playing a game via the game system 226); a user profile (e.g., where the media content item references another user account via the user management system 218); music (e.g., where the media content item includes music or other audio content); augmented reality content (e.g., where the media content item includes an augmented reality content item, or has an application or augmentation overlaid thereon); a place (e.g., where the media content item references a place); a sponsored attachment (e.g., where the media content item includes an attachment); and / or a third-party application (e.g., where the media content item references content from a third-party application and / or links to a third-party application). As discussed above, in some examples, a main or underlying media content item is referred to as a "primary media content item," while contextual data added thereto or associated therewith may be referred to as a "supplemental media content item."

[0070] In addition to defining context items and context types, the context system 232 also provides for generating and displaying context information interfaces or context information elements (e.g., context cards). In some examples, each context card provides supplemental information about a context associated with a media content item. Using the context types listed above as examples, the supplemental information of a context card may relate to a corresponding request, an invitation to a group / event chat, an invitation to a private content collection, a business, an attachment, a game, a quoted user profile, music, an augmented reality content item, a specific enhancement applied to a content item, a place, a sponsored attachment, and / or a third-party application associated with a media content item.

[0071] Context system 232 is configured to identify a context type or multiple context types present in a media content item. For example, in the case where a publishing user publishes an image that has been enhanced with a selected content enhancement and is also supplemented with a selected audio item that is played when the image is viewed, context system 232 can detect the context in the media content item or the context associated with the media content item. In response to detecting the context, context system 232 can make appropriate supplementary affordances such as context cards appear, examples of which are included below. Context system 232 can detect the context type or context category of each "supplementary media content item" and display a context card based on the context type.

[0072] In some examples, the contextual cards may be presented with the display of a media content item (e.g., media content item 404). In addition, one or more contextual cards may be user-selectable (e.g., via a tap gesture or a press and hold gesture), for example, to access an image, video, sound, text, hyperlink, animation, third-party application, or any other suitable content associated with the selected contextual card.

[0073] Various functions or features of the interactive system 100 may combine or use artificial intelligence (AI) and machine learning (ML). Therefore, the interactive system 100 may include an AI / ML system 234. For example, the AI / ML system 234 operates with the image processing system 202 and the camera system 204 to analyze images and extract information such as objects, text, or faces. The image processing system 202 can then use this information to enhance, filter, or manipulate images. The AI / ML system 234 can be used by the enhancement system 206 to generate enhanced content and augmented reality experiences, such as adding virtual objects or animations to real-world images. The communication system 210 and the messaging system 212 can use the AI / ML system 234 to analyze communication patterns and provide insights into how users interact with each other, as well as provide intelligent message classification and tagging, such as classifying messages based on emotions or topics. The context system 232 can use the AI / ML system 234 to identify contexts in or related to a media content item or a collection of media content items. For example, the context system 232 can work with the AI / ML system 234 to analyze the primary media content item to determine the supplementary media content item associated with the primary media content item. The AI / ML system 234 can also provide chatbot functionality to the message interactions 124 between the user systems 102 and between the user systems 102 and the interactive server system 108. The AI / ML system 234 can also work with the audio communication system 214 to provide speech recognition and natural language processing capabilities, for example, enabling a user to interact with the interactive system 100 using voice commands.

[0074] Data Architecture

[0075] Figure 3 is a diagram illustrating a data structure 300 that may be stored in a database 318 of an interactive server system 108 according to some examples. Although the contents of the database 318 are illustrated as including a plurality of tables, it should be understood that data may be stored in other types of data structures (e.g., object-oriented databases).

[0076] Database 318 includes message data stored in message table 302. For any particular message, the message data includes at least message sender data, message recipient (or receiver) data, and payload. Fig.10 Additional details regarding information that may be included in a message and included within the message data stored in message table 302 are described.

[0077] The entity table 306 stores entity data and is linked (e.g., by reference) to the entity graph 308 and profile data 316. Entities for which records are maintained within the entity table 306 may include individuals, corporate entities, organizations, objects, places, events, etc. Regardless of the entity type, any entity about which the interactive server system 108 stores data may be an identified entity. Each entity is provided with a unique identifier as well as an entity type identifier (not shown). The entity graph 308 stores information about relationships and associations between entities. By way of example only, such relationships may be social relationships based on interests or based on activities, professional relationships (e.g., working at a common company or organization).

[0078] The profile data 316 stores multiple types of profile data about a particular entity. Based on the privacy settings specified by the particular entity, the profile data 316 can be selectively used and presented to other users of the interactive system 100. In the case where the entity is a person, the profile data 316 includes, for example, the user name, phone number, address, settings (e.g., notification and privacy settings), and an avatar representation (or a collection of such avatar representations) selected by the user. The particular user can then selectively include one or more of these avatar representations within the content of messages transmitted via the interactive system 100 and on a map interface displayed to other users by the interactive client 104. The collection of avatar representations can include a "status avatar" that presents a graphical representation of a status or activity that the user can choose to transmit at a particular time.

[0079] Where the entity is a group, profile data 316 for the group may similarly include one or more avatar representations associated with the group, in addition to the group name, members, and various settings for the relevant group (eg, notifications).

[0080] Database 318 also stores enhancement data, such as overlays or filters, in enhancement table 310. Enhancement data is associated with and applied to media content items, such as videos (data for videos is stored in video table 304) and images (data for images is stored in image table 312). Enhancement data may also include other types of supplemental data, such as audio or positioning data, with which videos or images may be supplemented.

[0081] In some examples, the filter is displayed as an overlay on an image or video during presentation to the recipient user. The filter can be of various types, including a user-selected filter from a set of filters presented to the sending user by the interactive client 104 when the sending user is composing a message. Other types of filters include geolocation filters (also referred to as geofilters), which can be presented to the sending user based on geolocation. For example, a geolocation filter specific to a nearby or special location can be presented by the interactive client 104 within the user interface based on geolocation information determined by a global positioning system (GPS) unit of the user system 102.

[0082] Another type of filter is a data filter, which can be selectively presented to the sending user by the interaction client 104 based on other input or information collected during the message creation process by the user system 102. Examples of data filters include the current temperature at a particular location, the current speed at which the sending user is traveling, the battery life of the user system 102, or the current time.

[0083] Other augmented data that may be stored in the image table 312 include augmented reality content items (eg, corresponding to a "lens" or augmented reality experience). Augmented reality content items may be real-time special effects and sounds that may be added to an image or video.

[0084] As described above, augmented data includes augmented reality (AR), virtual reality (VR) and mixed reality (MR) content items, overlays, image transformations, images, and modifications that can be applied to image data (e.g., videos or images). This includes real-time modifications that modify images when they are captured using the device sensors (e.g., one or more cameras) of the user system 102 and then display the modified images on the screen of the user system 102. This also includes modifications to stored content (such as video clips in a collection or group that can be modified). For example, in a user system 102 that can access multiple augmented reality content items, a user can use a single video clip with multiple augmented reality content items to see how different augmented reality content items will modify the stored clips. Similarly, real-time video capture can use modifications to show how the video image currently captured by the sensor of the user system 102 will modify the captured data. Such data can be displayed only on the screen without being stored in the memory, or the content captured by the device sensor can be recorded and stored in the memory with or without modification (or both). In some systems, the preview feature can simultaneously show how different augmented reality content items look in different windows in the display. This may enable, for example, multiple windows with different pseudo-random animations to be viewed simultaneously on the display.

[0085] Thus, data and various systems using augmented reality content items or other such transformation systems using the data to modify content may involve: detection of objects (e.g., faces, hands, bodies, cats, dogs, surfaces, objects, etc.) in video frames; tracking of such objects as they leave, enter, and move around the field of view; and modification or transformation of such objects as they are tracked. In various examples, different methods for implementing such transformations may be used. Some examples may involve: generating a three-dimensional mesh model of one or more objects; and using transformations and animated textures of the models within the video to implement the transformations. In some examples, tracking of points on the objects may be used to place an image or texture (which may be two-dimensional or three-dimensional) at the tracked location. In further examples, an image, model, or texture may be placed in content (e.g., an image or video frame) using neural network analysis of the video frame. Thus, augmented reality content items involve both: images, models, and textures used to create transformations in the content; and additional modeling and analysis information required to implement such transformations using object detection, tracking, and placement.

[0086] Real-time video processing can be performed using any type of video data (e.g., video streams, video files, etc.) stored in the memory of any type of computerized system. For example, a user can load a video file and save it in the memory of the device, or a sensor of the device can be used to generate a video stream. Additionally, computer animation models can be used to process any object, such as a human face and parts of a human body, an animal, or a non-living thing such as a chair, a car, or other objects.

[0087] In some examples, when a specific modification is selected together with the content to be transformed, the element to be transformed is identified by a computing device, and then if the element to be transformed is present in a frame of the video, it is detected and tracked. The elements of the object are modified according to the modification request, thereby transforming the frame of the video stream. For different types of transformations, the transformation of the frame of the video stream can be performed by different methods. For example, for the transformation of the frame that mainly refers to changing the form of the elements of the object, the characteristic points of each element of the object are calculated (for example, using an active shape model (ASM) or other known methods). Then, a grid based on the characteristic points is generated for each element of the object. The grid is used in a subsequent stage in which the elements of the object in the video stream are tracked. During the tracking process, the grid for each element is aligned with the position of each element. Then, additional points are generated on the grid.

[0088] In some examples, the transformation of some areas of the object using the elements of the object can be performed by calculating the characteristic points of each element of the object and generating a grid based on the calculated characteristic points. Points are generated on the grid, and then various areas based on these points are generated. Then, the elements of the object are tracked by aligning the area of ​​each element with the position of each element of at least one element, and the properties of the area can be modified based on the request for modification, thereby transforming the frame of the video stream. Depending on the specific request for modification, the properties of the mentioned area can be transformed in different ways. Such modifications may involve: changing the color of the area; removing at least part of the area from the frame of the video stream; including new objects in the area based on the modification request; and modifying or distorting the elements of the area or object. In various examples, any combination of such modifications or other similar modifications may be used. For certain models to be animated, some characteristic points can be selected as control points of the entire state space to be used to determine options for model animation.

[0089] In some examples of computer animation models for transforming image data using face detection, faces are detected on an image using a specific face detection algorithm (e.g., Viola-Jones). An active shape model (ASM) algorithm is then applied to the face region of the image to detect facial feature reference points.

[0090] Other methods and algorithms suitable for face detection may be used. For example, in some examples, landmarks are used to locate features, and landmarks represent distinguishable points that are present in most of the images considered. For example, for facial landmarks, the location of the left pupil can be used. If the initial landmarks are not recognizable (for example, if the person is wearing an eye patch), secondary landmarks can be used. Such a landmark identification procedure can be used for any such object. In some examples, a set of landmarks forms a shape. The shape can be represented as a vector using the coordinates of the points in the shape. One shape is aligned with another shape using a similarity transformation (allowing translation, scaling, and rotation) that minimizes the average Euclidean distance between the shape points. The average shape is the average of the aligned training shapes.

[0091] The transformation system can capture an image or video stream on a client device (e.g., user system 102) and perform complex image manipulations locally on the user system 102 while maintaining an appropriate user experience, computational time, and power consumption. Complex image manipulations can include size and shape changes, emotion transformations (e.g., changing a face from a frown to a smile), state transitions (e.g., aging a subject, reducing apparent age, changing gender), style transformations, application of graphical elements, and any other suitable image or video manipulations implemented by a convolutional neural network that has been configured to execute efficiently on the user system 102.

[0092] In some examples, a computer animation model for transforming image data may be used by a system in which a user may capture an image or video stream of the user (e.g., a selfie) using a user system 102 having a neural network operating as part of an interactive client 104 operating on the user system 102. The transformation system operating within the interactive client 104 determines the presence of a face within the image or video stream and provides a modification icon associated with the computer animation model to transform the image data, or the computer animation model may exist in association with an interface described herein. The modification icon includes changes as a basis for modifying the user's face within the image or video stream as part of the modification operation. Once the modification icon is selected, the transformation system initiates a process of transforming the user's image to reflect the selected modification icon (e.g., generating a smiley face on the user). Once the image or video stream is captured and the specified modification is selected, the modified image or video stream may be presented in a graphical user interface displayed on the user system 102. The transformation system may implement a complex convolutional neural network on a portion of the image or video stream to generate and apply the selected modification. That is, a user can capture an image or video stream, and once a modification icon is selected, the modified result can be presented to the user in real time or near real time. In addition, the modification can be persistent while the video stream is being captured and the selected modification icon remains toggled. Machine-taught neural networks can be used to implement such modifications.

[0093] The graphical user interface presenting the modifications performed by the transformation system can supply additional interactive options to the user. Such options can be based on an interface for initiating content capture and selection of a particular computer animation model (e.g., initiated from a content creator user interface). In various examples, the modification can persist after the initial selection of the modification icon. The user can turn the modification on or off by tapping or otherwise selecting a face modified by the transformation system, and store it for later viewing or browsing to other areas of the imaging application. In the case of multiple faces modified by the transformation system, the user can globally turn the modification on or off by tapping or selecting a single face modified and displayed within the graphical user interface. In some examples, a single face in a group of multiple faces can be individually modified by tapping or selecting a single face or a series of single faces displayed within the graphical user interface, or such modifications can be individually switched.

[0094] In some examples, the enhancement data in the enhancement table 310 includes metadata describing the corresponding enhancement or media content item to which it is applied. For example, in the case where the enhancement is an image filter or lens, an icon or other indicia may be included in the metadata. The metadata may also include a title for the associated enhancement and bibliographic details (e.g., name) of the creator and / or owner of the enhancement. This may enable the interactive system 100 to identify the enhancement that has been applied to the media content item (e.g., identifying a supplementary media content item linked to the primary media content item), for example using the context system 232, and to retrieve the enhanced metadata from the enhancement table 310 so as to expose some of the metadata to the user via the interactive client 104.

[0095] The collection table 314 stores data about a collection of messages and associated images, video or audio data that are compiled into a collection (e.g., a story or gallery). The creation of a particular collection can be initiated by a particular user (e.g., each user for whom a record is maintained in the entity table 306). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcasted by the user. To this end, the user interface of the interactive client 104 can include a user-selectable icon to enable the sending user to add specific content to his or her personal story.

[0096] The collection may also constitute a "live story", which is a collection of content from multiple users created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" may constitute a curated stream of user-submitted content from various locations and events. Users whose client devices have location services enabled and who are at a co-located event at a particular time may be presented with the option of contributing content to a particular live story, for example, via the user interface of the interactive client 104. Live stories may be identified to the user by the interactive client 104 based on his or her location. The end result is a "live story" told from a group perspective.

[0097] Another type of content collection is called a "location story" that enables users whose user system 102 is located within a specific geographic location (e.g., on a college or university campus) to contribute to a specific collection. In some examples, contributions to location stories may require secondary authentication to verify that the end user belongs to a specific organization or other entity (e.g., is a student on a university campus).

[0098] As mentioned above, video table 304 stores video data that, in some examples, is associated with messages for which records are maintained within message table 302. Similarly, image table 312 stores image data associated with messages whose message data is stored in entity table 306. Entity table 306 may associate various enhancements from enhancement table 310 with various images and videos stored in image table 312 and video table 304.

[0099] Figure 4 is a user interface diagram illustrating a user interface 402 that may be presented by the interactive system 100 on a display of a mobile device 128 (as an example of a user system 102) according to some examples. The user interface 402 may be a viewing user interface of an interactive client 104 that enables a viewing user to view content items, such as content items sent directly to the viewing user by a publishing user, or content items that form part of a public or shared content collection accessible to the viewing user.

[0100] It should be noted that although Figure 4 , Figure 5 and Figures 7 to 9 The example interfaces in are described and shown as being presented on a touch screen, such as the screen of the mobile device 128, but the interfaces according to some examples may also be presented using other types of devices that can provide a suitable user interface or display, such as an optical display of the head wearable device 126, a desktop computer, or via a smart contact lens. Therefore, the examples of the present disclosure are not limited to user interfaces that require touch-based gestures.

[0101] User interface 402 presents a viewing user with media content items 404 that may include, for example, images, videos, or audio tracks. User interface 402 also presents affordance user interface elements in the example form of contextual carousel 406, which presents a set of user interface elements as supplemental affordances in the example form of contextual cards 408 and 410. Figure 4 In the example of , contextual cards 408 and 410 are located in the lower portion of user interface 402 and are superimposed on media content item 404. For example, the contextual cards may be semi-transparent to provide a viewing user with a partial view of the portion of media content item 404 on which contextual carousel 406 is superimposed.

[0102] Each contextual card is associated with a corresponding supplemental media content item, such as, for example, an image enhancement (e.g., a lens or filter) or an audio file that has been associated with the displayed (primary) media content item 404. Each contextual card is user-selectable to invoke a function known as a supplemental function that enables the user to conveniently associate the relevant supplemental media content item with a primary media content item of their choice (e.g., a newly captured primary media content item).

[0103] For example, a first contextual card 408 may be associated with an image filter (an enhancement that changes the appearance of an image) applied to a media content item 404, and a second contextual card 410 may be associated with an audio track that is superimposed on the media content item 404 or linked to be played with the presentation of the media content item 404. By user selection of the contextual card 408 associated with the image filter, the user may conveniently invoke a supplementary function in the form of an example filter application function within the context of the interactive client 104 that enables the user to apply the same image filter directly to the user's selected primary media content item 404. Similarly, by user selection of the contextual card 410 associated with the audio track, the user may conveniently invoke a supplementary function in the form of an example audio application function within the context of the interactive client 104 that enables the user to conveniently apply the audio track to another primary media content item 404 of the user's selection. In other words, the viewing user does not have to search for these supplements because the interactive client 104 may be used to automatically apply them to new content.

[0104] During operation, as described above, the context system 232 can detect supplemental media content items associated with the media content item 404 and retrieve metadata for each supplemental media content item, for example, from the enhancement table 310. The metadata can include, for example, an icon identifying the supplemental media content item and text, such as the title of the associated enhancement or content or the name of its creator or owner. The metadata can also include visual cues about the associated context type, for example, an audio-related context card can present an audio content identifier, and an image filter context card can present an image filter identifier.

[0105] In some cases, the available area (space) within the user interface 402 may not be sufficient to display all context cards simultaneously. Although the user can scroll or otherwise manually navigate to view context cards that are not visible (or not fully visible), in some examples, the interactive client 104 can invoke an automatic scrolling function to better accommodate these context cards. Figure 5 is a diagram showing display of another media content item 502 Figure 4 A user interface diagram of user interface 402 .

[0106] Media content item 502 includes three supplementary media content items. For example, media content item 502 may include two image filters and an audio file selected by a publishing user. As described above, interactive system 100 detects relevant context information and displays context cards corresponding to each supplementary media content item: context card 506, context card 508, and context card 510. Interactive client 104 detects that there is not enough user interface area in user interface 402 for presenting three context cards, or detects that the number of context cards to be presented exceeds a threshold value (e.g., more than two context cards are to be presented). In response to the detection, interactive client 104 calls an automatic scrolling function that moves context cards 506, 508, and 510 relative to media content item 502. For example, interactive client 104 may gradually move context cards in scroll direction 504, wherein user interface 402 cycles through available context cards, for example, once context card 506 disappears from the view on the left side of user interface 402, it may reappear from the right side and advance in scroll direction 504.

[0107] This may make it easier or more convenient for the viewing user to view or access the contextual cards. The viewing user may manually stop the automatic scrolling, for example, by clicking within the contextual carousel 406. In response to detecting a user selection of one of the contextual cards, the interactive client 104 invokes a supplemental function associated with the contextual card. This may involve presenting a supplemental media content item (e.g., a related enhancement) for the user to apply within the context of the interactive client 104.

[0108] In some examples, the automatic scrolling function may be activated after a predefined period of time. For example, if the interactive client 104 detects that the user has viewed the media content item 502 for more than three seconds, the interactive client 104 may start automatic scrolling to enable the user to more easily view and interact with the context card.

[0109] In the event that multiple context cards are to be revealed, the context system 232 may automatically identify the context type for each supplemental media content item. Figure 4 , context system 232 may determine that context card 408 has a first context type and context card 410 has a second context type. The context cards may then be automatically arranged based on the context priorities. For example, context system 232 may determine or apply a context priority indicating that the image filter context card is to be presented “before” (e.g., to the left of) other context cards, and arrange context cards 408 and 410 accordingly.

[0110] Figure 61 is a flow chart illustrating a method 600 for enabling a user of an interactive client 104 to apply supplemental media (e.g., enhancements such as shots or audio files) to primary media content (e.g., photos or videos that the user may have created or selected from a storage component) on a user system 102, according to some examples. In some examples, the method 600 is performed by various subsystems of the interactive system 100, such as the messaging system 212, the enhancement system 206, and / or the context system 232.

[0111] The method 600 starts at an open-loop element 602 and proceeds to operation 604, where the context system 232 detects an association of a primary media content item (e.g., a photo or video) viewed by a user within a user interface of an interactive application (e.g., an interactive client 104) with a supplemental media content item (e.g., an enhancement or an audio file). At operation 606, the context system 232 automatically identifies one or more supplemental media content items (e.g., enhancements and audio files), such as from a library of supplemental media content items supported by the interactive system 100 or from an enhancement table 310. For example, the interactive client 104 may support thousands of different enhancements, and the interactive client 104 may identify relevant enhancements from all supported enhancements.

[0112] In some examples, the supplemental media content item may be identified using metadata linked to the primary media content item. For example, when a publishing user creates a primary media content item and adds related supplemental media content items to it, the metadata identifying the supplemental media content item may be stored in database 120 in association with an identifier of the primary media content item, or with a message including the content (see Fig.10 In some examples, the interactive system 100 may analyze or process the primary media content item to identify the supplemental media content item, for example using the AI / ML system 234. For example, the AI / ML system 234 may execute a "filter identification" ML model that uses computer vision to detect relevant enhancements.

[0113] Reference Figure 7 and Figure 8 , these user interface diagrams respectively show partial views of a viewing user interface 702 and a viewing user interface 802 according to some examples. The viewing user interface 702 presents a primary media content item 704, and the viewing user interface 802 presents a primary media content item 804. Figure 7 , as indicated by audio context card 706 and shot context card 708, respectively, media content item 704 is a video clip to which an audio file (e.g., a song) has been linked and to which image enhancements (e.g., image filters or modifications) have been applied. Figure 8, as indicated by audio context card 706, media content item 804 is an image to which an audio file has been linked.

[0114] Thus, the context system 232 can automatically determine that the primary media content item has been enhanced or supplemented, and identify each related supplemental media content item. Figure 6 At operation 608, context system 232 then automatically retrieves metadata associated with the identified supplemental media content item identified at operation 606, for example, from database 318. As described above, this metadata may include graphical elements (e.g., icons or other images) and textual information (e.g., titles or details and authors or creators).

[0115] At operation 610, context system 232 then presents an interface element in the form of a supplemental affordance within the user interface of interactive client 104 that presents metadata associated with the supplemental media content item. In some examples, the supplemental affordance is a context card presented within the context of context carousel 406. Each context card presented within context carousel 406 is also user-selectable to invoke a supplemental functionality, such as functionality provided by enhancement system 206. As described above, at operation 606, multiple supplemental media content items may be identified as being associated with (e.g., applied to) a primary media content item. In this case, metadata associated with the multiple supplemental media content items is automatically retrieved at operation 608, and at operation 610, as shown in FIG. Figure 7 As shown in , a plurality of context cards 410 including the retrieved metadata may be presented within the context carousel 406 .

[0116] exist Figure 7 , viewing user interface 702 is shown to include context carousel 406, which includes two context cards, namely audio context card 706 and lens context card 708. Audio context card 706 includes metadata of an audio file (as an example of a supplemental media content item) associated with media content item 704. Audio context card 706 includes metadata of a song, namely "Song A", and the name of the artist ("Band B"). Lens context card 708 includes metadata of a "butterfly effect" filter (e.g., where the "butterfly effect" filter is applied to a facial image included in media content item 704) also associated with media content item 704, and the name of the creator ("Amy Cole"). In each of these instances, the metadata therefore includes the title of the supplemental media content item and the artist (in the case of an audio file) or the creator (in the case of an image filter).

[0117] As mentioned above, context system 232 can be configured to automatically arrange supplemental affordances relative to each other within a user interface based on contextual priorities. Figure 7 , the context system 232 may determine a context priority indicating that audio files take precedence over other context types, and therefore cause the audio context card 706 to be presented to the left of the shot context card 708 .

[0118] Back to Figure 6 At operation 612, context system 232 detects a user selection of a supplemental affordance within the user interface (e.g., audio context card 706 or lens context card 708), and at operation 614, in response to detecting the user selection, context system 232 invokes a supplemental function (e.g., a function provided by augmentation system 206). In addition to invoking the supplemental function, context system 232 identifies the relevant supplemental media content item (e.g., an audio file or filter) to the invoked supplemental function (e.g., camera system 204), and the invoked supplemental function may then make the relevant supplemental media content item available to the user (operation 616) within the context of interactive system 100 for application to or association with an additional (second) primary media content item (e.g., making a "butterfly effect" filter available within the camera function for application to a photo or image selected by the user).

[0119] In reference Figure 7 In the context of the described example, this may involve making "Song A" available to the user within the creation interface to be superimposed on or linked to a video or image selected by the user in response to selection of the audio context card 706. Similarly, user selection of the lens context card 708 may invoke enhancement functionality provided by the enhancement system 206 within the context of the camera device and identify or present to the user a "butterfly effect" filter to modify / enhance the image selected by the user (see below). Fig. 9 An example of the camera functionality is described.) The method 600 terminates at closed-loop element 618.

[0120] Therefore, it should be appreciated that method 600 can provide a convenient way for users to use the same supplementary media content (e.g., images or videos) when viewing content that has been modified or supplemented with supplementary media items. In this way, users can conveniently draw inspiration from other users' enhancements or supplements to media and apply that inspiration to their own content (e.g., photos they may have taken or videos they may have captured) by using the improved user interface system and associated functionality.

[0121] In some examples, the metadata included in the supplemental affordances may include animations, such as animated audio representation user interface elements. For example, audio context card 706 may include not only the title of the song and the name of the artist, but also an animated audio representation user interface element in the form of an example icon of the audio file, such as Figure 7 and Figure 8 As shown, the animation is superimposed on the icon. Figure 7 and Figure 8 In the example of FIG. 7 , the icon may be presented so as to appear to have an animated “audio bar” superimposed on it. While the user is viewing the audio context card 706, an animation may be played to cause the bar to move dynamically, thereby providing the user with an additional visual cue that the audio context card 706 identifies a song that applies to the associated media content item and / or that the user may select the audio context card 706 to apply the song to their own content.

[0122] As mentioned, in some examples, the context card is user-selectable to invoke the supplemental functionality. Where the context card identifies an enhancement that can be applied using the camera functionality, activation of the supplemental functionality may include automatically launching the enhancement functionality, e.g., via the camera functionality of the interactive client 104, to enable the user to capture the second primary media content item in such a way that the supplemental media content item is automatically applied to the additional (second) primary media content item.

[0123] Fig. 9 is another user interface diagram illustrating a camera function user interface 902 according to some examples, wherein another primary media content item 904 is displayed. For example, a (first) primary media content item may include an image to which a "lip shot" is applied to enhance the lips of a person in the image, and the interactive client 104 may present a context card (not shown) identifying the "lip shot" to the viewing user. The viewing user then selects the context card representing the "lip shot" within the user interface displaying the (first) primary media content item. In response to the selection, the interactive client 104 initiates the camera function and presents the context card. Fig. 9 The camera function user interface 902 of the mobile device 128 can be used to enable the user to create an additional primary media content item 904. The camera function user interface 902 can provide a real-time camera feed (e.g., from a camera of the mobile device 128) to enable the user to capture a desired image or video.

[0124] The "lip shot" is automatically pre-selected so that the user can easily apply it once the camera function user interface 902 is presented. Fig. 9, lip enhancement 906 is automatically applied to the user's face within the camera function user interface 902. A capture button 908 is user-selectable to capture an additional primary media content item 904, including its supplemental media content item ("lip shot"). It should be understood that additional options, such as options for changing the enhancements applied to the image, may be included in the camera function user interface 902, such as by including a capture button 908 enhancement carousel.

[0125] In other examples, instead of using a live camera feed to capture new content, the user may select an image or video stored on the mobile device 128 (or in a cloud-based storage resource) so that the viewing user can conveniently apply the “lip lens” to the selected image or video that the user has accessed and selected.

[0126] It will therefore be appreciated that the techniques or interfaces described herein can simplify navigation and facilitate creative expression, for example, by automatically presenting or invoking “shortcuts” to generate new content inspired by viewed content.

[0127] Data communication architecture

[0128] Fig.10 is a schematic diagram illustrating the structure of a message 1000 according to some examples, the message 1000 being generated by an interactive client 104 for transmission to another interactive client 104 via an interactive server 118. The content of a particular message 1000 is used to populate a message table 302 stored in a database 318 accessible by the interactive server 118. Similarly, the content of the message 1000 is stored in memory as "in-transit" or "in-flight" data of the user system 102 or the interactive server 118. The message 1000 is shown as including the following example components:

[0129] Message identifier 1002 : a unique identifier that identifies the message 1000 .

[0130] Message text payload 1004 : Text to be generated by the user via the user interface of the user system 102 and included in the message 1000 .

[0131] Message image payload 1006 : Image data captured by the camera component of the user system 102 or retrieved from the memory component of the user system 102 and included in the message 1000 . The image data for a message 1000 sent or received may be stored in the image table 312 .

[0132] Message Video Payload 1008: Video data captured by the camera component or retrieved from the memory component of the user system 102 and included in the message 1000. The video data for the message 1000 sent or received may be stored in the video table 304.

[0133] Message audio payload 1010 : audio data captured by a microphone or retrieved from a memory component of the user system 102 and included in the message 1000 .

[0134] Message enhancement data 1012: Enhancement data (e.g., filters, stickers, or other annotations or enhancements) representing enhancements to be applied to the message image payload 1006, message video payload 1008, or message audio payload 1010 of the message 1000. The enhancement data for a sent or received message 1000 may be stored in the enhancement table 310.

[0135] Message duration parameter 1014: A parameter value indicating, for example, in seconds, the amount of time that the content of the message (e.g., message image payload 1006, message video payload 1008, message audio payload 1010) is to be presented to the user via the interactive client 104 or made accessible to the user.

[0136] Message geolocation parameters 1018: Geolocation data (e.g., latitude and longitude coordinates) associated with the content payload of the message. Multiple message geolocation parameter 1018 values ​​may be included in the payload, with each of these parameter values ​​being associated with a content item included in the content (e.g., a specific image within a message image payload 1006 or a specific video in a message video payload 1008).

[0137] Message collection identifier 1020: An identifier value that identifies one or more content collections (e.g., "Stories" identified in collection table 314) associated with a particular content item in message image payload 1006 of message 1000. For example, multiple images within message image payload 1006 may each be associated with multiple content collections using an identifier value.

[0138] Message tags 1022: Each message 1000 may be tagged with a plurality of tags, each of which indicates the subject of the content included in the message payload. For example, where a particular image included in the message image payload 1006 depicts an animal (e.g., a lion), a tag value may be included within the message tags 1022 indicating the relevant animal. The tag value may be manually generated based on user input, or may be automatically generated using, for example, image recognition.

[0139] • Message sender identifier 1024: An identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​that indicates the user of the user system 102 on which the message 1000 was generated and from which the message 1000 was sent.

[0140] • Message recipient identifier 1016: Indicates an identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​of the user of the user system 102 to which the message 1000 is addressed.

[0141] The content (e.g., value) of each component of message 1000 may be a pointer to a location in a table where the content data value is stored. For example, the image value in message image payload 1006 may be a pointer (or address) to a location in image table 312. Similarly, the value in message video payload 1008 may point to data stored in video table 304, the value stored in message enhancement data 1012 may point to data stored in enhancement table 310, the value stored in message set identifier 1020 may point to data stored in set table 314, and the values ​​stored in message sender identifier 1024 and message recipient identifier 1016 may point to user records stored in entity table 306.

[0142] System with head wearable device

[0143] Fig.11 A system 1100 including a head wearable device 126 is shown according to some examples. Fig.11 is a high-level functional block diagram of an exemplary head wearable device 126 communicatively coupled to a mobile user device 1102 and a server system 1132 via a network 1138.

[0144] The head wearable device 126 includes one or more cameras, each of which may be, for example, a visible light camera 1112, an infrared emitter 1114, and an infrared camera 1116. The user device 1102 is connected to the head wearable device 126 using a low power wireless connection 1134 and / or a high speed wireless connection 1136. The user device 1102 is also connected to a server system 1132 and a network 1138.

[0145] The head wearable device 126 also includes two image displays of the optical assembly's image displays 1104. The two optical assembly's image displays 1104 include an image display associated with a left lateral side of the head wearable device 126 and an image display associated with a right lateral side of the head wearable device 126. The head wearable device 126 also includes an image display driver 1108, an image processor 1110, low power circuits 1126, and high speed circuits 1118. The optical assembly's image displays 1104 are used to present images and videos to a user of the head wearable device 126, including images that may include a graphical user interface.

[0146] The image display driver 1108 commands and controls the image display 1104 of the optical assembly. The image display driver 1108 can deliver the image data directly to the image display 1104 of the optical assembly for presentation or can convert the image data into a signal or data format suitable for delivery to the image display device. For example, the image data can be video data formatted according to a compression format such as H.264 (MPEG-4 Part 10), HEVC, Theora, Dirac, RealVideo RV40, VP8, VP9, ​​etc., while the static image data can be formatted according to a compression format such as Portable Network Graphics Group (PNG), Joint Photographic Experts Group (JPEG), Tagged Image File Format (TIFF) or Exchangeable Image File Format (EXIF), etc.

[0147] The head wearable device 126 includes a frame and rods (or temples) extending from the outside of the frame. The head wearable device 126 also includes a user input device 1106 (e.g., a touch sensor or a push button), including an input surface on the head wearable device 126. The user input device 1106 (e.g., a touch sensor or a push button) is used to receive input selections from the user for manipulating the graphical user interface of the presented image.

[0148] Fig.11 The components of the head wearable device 126 shown in the figure are located on one or more circuit boards (e.g., PCBs or flexible PCBs) in the frame or temples. Alternatively or additionally, the depicted components may be located in chunks, frames, hinges, or nose bridges of the head wearable device 126. The left visible light camera and the right visible light camera 1112 may include digital camera elements, such as complementary metal oxide semiconductor (CMOS) image sensors, charge coupled devices, camera lenses, or any other corresponding visible light or light capturing elements that can be used to capture data (including images of scenes with unknown objects).

[0149] The head wearable device 126 includes a memory 1122 that stores instructions for performing a subset or all of the functions described herein. The memory 1122 may also include a storage device.

[0150] like Fig.11 As shown, the high-speed circuit 1118 includes a high-speed processor 1120, a memory 1122, and a high-speed wireless circuit 1124. In some examples, the image display driver 1108 is coupled to the high-speed circuit 1118 and is operated by the high-speed processor 1120 to drive the left image display and the right image display in the image display 1104 of the optical assembly. The high-speed processor 1120 can be any processor capable of managing high-speed communications and operations of any general computing system required by the head wearable device 126. The high-speed processor 1120 includes the processing resources required to manage high-speed data transmission to a wireless local area network (WLAN) on the high-speed wireless connection 1136 using the high-speed wireless circuit 1124. In some examples, the high-speed processor 1120 executes an operating system (e.g., a LINUX operating system) or other such operating system of the head wearable device 126, and the operating system is stored in the memory 1122 for execution. In addition to any other duties, the high-speed processor 1120 that executes the software architecture of the head wearable device 126 is used to manage data transmission with the high-speed wireless circuit 1124. In some examples, high-speed wireless circuit 1124 is configured to implement the Institute of Electrical and Electronics Engineers (IEEE) 802.11 communication standard, also referred to herein as Wi-Fi. In some examples, high-speed wireless circuit 1124 can implement other high-speed communication standards.

[0151] The low power wireless circuit 1130 and the high speed wireless circuit 1124 of the head wearable device 126 may include a short range transceiver (Bluetooth TM ) and a wireless wide area network transceiver, a wireless local area network transceiver, or a wide area network transceiver (e.g., cellular or WiFi). User device 1102, including a transceiver that communicates via a low power wireless connection 1134 and a high speed wireless connection 1136, can be implemented using details of the architecture of head wearable device 126, as can other elements of network 1138.

[0152] The memory 1122 includes any storage device capable of storing various data and applications, including camera data generated by the left and right visible light cameras 1112, the infrared camera 1116, and the image processor 1110, and the images generated to be displayed on the image display in the image display 1104 of the optical assembly through the image display driver 1108. Although the memory 1122 is shown as being integrated with the high-speed circuit 1118, in some examples, the memory 1122 can be a separate independent element of the head wearable device 126. In some such examples, electrical wiring can provide a connection from the image processor 1110 or the low-power processor 1128 to the memory 1122 through a chip including the high-speed processor 1120. In some examples, the high-speed processor 1120 can manage the addressing of the memory 1122 so that the low-power processor 1128 will start the high-speed processor 1120 at any time when a read or write operation involving the memory 1122 is required.

[0153] like Fig.11 As shown, the low-power processor 1128 or the high-speed processor 1120 of the head wearable device 126 can be coupled to a camera device (a visible light camera device 1112, an infrared emitter 1114 or an infrared camera device 1116), an image display driver 1108, a user input device 1106 (for example, a touch sensor or a push button), and a memory 1122.

[0154] The head wearable device 126 is connected to a host computer. For example, the head wearable device 126 is paired with the user device 1102 via a high-speed wireless connection 1136 or connected to a server system 1132 via a network 1138. The server system 1132 can be one or more computing devices as part of a service or network computing system, for example, including a processor, a memory, and a network communication interface to communicate with the user device 1102 and the head wearable device 126 through the network 1138.

[0155] The user device 1102 includes a processor and a network communication interface coupled to the processor. The network communication interface allows communication via a network 1138, a low-power wireless connection 1134, or a high-speed wireless connection 1136. The user device 1102 may also store at least some of the instructions to implement the functions described herein.

[0156] The output components of the head wearable device 126 include visual components, such as a display (e.g., a liquid crystal display (LCD), a plasma display panel (PDP), a light emitting diode (LED) display, a projector, or a waveguide). The image display of the optical component is driven by the image display driver 1108. The output components of the head wearable device 126 also include acoustic components (e.g., speakers), tactile components (e.g., vibration motors), other signal generators, etc. The input components of the head wearable device 126, the user device 1102, and the server system 1132 (e.g., user input device 1106) may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, tracking balls, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide the location and force of touch or touch gestures), audio input components (e.g., microphones), etc.

[0157] The head wearable device 126 may also include additional peripheral elements. Such peripheral elements may include biometric sensors, additional sensors, or display elements integrated with the head wearable device 126. For example, the peripheral elements may include any I / O components, including output components, motion components, position components, or any other such components described herein.

[0158] For example, the biometric component includes a component for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body gestures, or eye tracking), measuring biological signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), etc. The motion component includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. The position component includes a positioning sensor component for generating position coordinates (e.g., a global positioning system (GPS) receiver component), a Wi-Fi or Bluetooth receiver for generating positioning system coordinates, etc. TM transceiver, altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which altitude can be obtained), orientation sensor component (e.g., a magnetometer), etc. Such positioning system coordinates can also be received from the user device 1102 via the low power wireless circuit 1130 or the high speed wireless circuit 1124 through the low power wireless connection 1134 and the high speed wireless connection 1136.

[0159] Any biometrics collected by the biometric component are captured and stored only with the user's approval and are deleted upon the user's request. In addition, such biometric data may be used for very limited purposes, such as identity verification. In order to ensure limited and authorized use of biometric information and other personally identifiable information (PII), access to this data is limited to authorized personnel (if any). Any use of biometric data may be strictly limited to identity verification purposes, and biometric data will not be shared or sold to any third party without the user's explicit consent. In addition, appropriate technical and organizational measures are implemented to ensure the security and confidentiality of this sensitive information.

[0160] Software Architecture

[0161] Fig.12 1200 is a block diagram illustrating a software architecture 1204 that may be installed on any one or more of the devices described herein. The software architecture 1204 is supported by hardware, such as a machine 1202 including a processor 1220, a memory 1226, and an I / O component 1238. In this example, the software architecture 1204 may be conceptualized as a stack of layers, where each layer provides specific functionality. The software architecture 1204 includes layers such as an operating system 1212, a library 1210, a framework 1208, and an application 1206. In operation, the application 1206 invokes an API call 1250 through the software stack and receives a message 1252 in response to the API call 1250.

[0162] The operating system 1212 manages hardware resources and provides public services. The operating system 1212 includes, for example, a kernel 1214, services 1216, and drivers 1222. The kernel 1214 acts as an abstraction layer between the hardware and other software layers. For example, the kernel 1214 provides functions such as memory management, processor management (e.g., scheduling), component management, networking, and security settings. Services 1216 can provide other public services for other software layers. Drivers 1222 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1222 may include display drivers, camera drivers, Bluetooth drivers, etc. TM or Bluetooth TM Low-power drivers, flash drivers, serial communication drivers (e.g., USB drivers), Wi-Fi drivers, audio drivers, power management drivers, etc.

[0163] The libraries 1210 provide a common low-level infrastructure used by the applications 1206. The libraries 1210 may include system libraries 1218 (e.g., C standard libraries) that provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the libraries 1210 may include API libraries 1224, such as media libraries (e.g., libraries for supporting presentation and manipulation of various media formats, such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), graphics libraries (e.g., OpenGL framework for presentation in two dimensions (2D) and three dimensions (3D) in graphics content on a display), database libraries (e.g., SQLite for providing various relational database functions), web libraries (e.g., WebKit providing web browsing functions), etc. The library 1210 may also include a variety of other libraries 1228 to provide many other APIs to the application 1206 .

[0164] The framework 1208 provides a common high-level infrastructure used by the applications 1206. For example, the framework 1208 provides various graphical user interface (GUI) functions, high-level resource management, and high-level positioning services. The framework 1208 may provide a wide range of other APIs that can be used by the applications 1206, some of which may be specific to a particular operating system or platform.

[0165] In an example, applications 1206 may include a home application 1236, a contacts application 1230, a browser application 1232, a book reader application 1234, a positioning application 1242, a media application 1244, a messaging application 1246, a game application 1248, and various other applications such as third-party applications 1240. Application 1206 is a program that executes the functions defined in the program. Various programming languages ​​may be used to create one or more of the applications 1206 constructed in various ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C or assembly language). In a specific example, third-party application 1240 (e.g., a third-party application created by an entity other than a vendor of a particular platform using ANDROID TM or IOS TM Software Development Kit (SDK) can be used to develop applications on mobile operating systems such as IOS TM ANDROID TM 、WINDOWS TMMobile software running on the iPhone or other mobile operating system. In this example, third-party applications 1240 can activate API calls 1250 provided by the operating system 1212 to facilitate the functions described herein.

[0166] Machine Architecture

[0167] Fig.13 1300 within which instructions 1310 (e.g., software, programs, applications, applet, app, or other executable code) may be executed for causing the machine 1300 to perform any one or more of the methods discussed herein. For example, the instructions 1310 may cause the machine 1300 to perform any one or more of the methods described herein. The instructions 1310 convert a general purpose, unprogrammed machine 1300 into a specific machine 1300 that is programmed to perform the functions described and illustrated in the manner described. The machine 1300 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1300 may operate as a server machine or a client machine in a server-client network environment or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1300 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a web device, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing instructions 1310 specifying actions to be taken by the machine 1300. In addition, although only a single machine 1300 is shown, the term "machine" should also be taken to include a collection of machines that individually or jointly execute instructions 1310 to perform any one or more of the methods discussed herein. For example, the machine 1300 may include any of the user system 102 or a plurality of server devices forming part of the interactive server system 108. In some examples, the machine 1300 may also include both a client system and a server system, wherein certain operations of a particular method or algorithm are performed on the server side and certain operations of the particular method or algorithm are performed on the client side.

[0168] The machine 1300 may include a processor 1304, a memory 1306, and an input / output (I / O) component 1302 that may be configured to communicate with each other via a bus 1340. In an example, the processor 1304 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1308 that executes instructions 1310 and a processor 1312. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") that may execute instructions simultaneously. Although Fig.13 Multiple processors 1304 are shown, but the machine 1300 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.

[0169] The memory 1306 includes a main memory 1314, a static memory 1316, and a storage unit 1318, which are all accessible by the processor 1304 via the bus 1340. The main memory 1306, the static memory 1316, and the storage unit 1318 store instructions 1310 that implement any one or more of the methods or functions described herein. The instructions 1310 may also reside, completely or partially, within the main memory 1314, within the static memory 1316, within the machine-readable medium 1320 within the storage unit 1318, within at least one of the processors 1304 (e.g., within a cache memory of a processor), or within any suitable combination thereof during execution thereof by the machine 1300.

[0170] I / O components 1302 may include various components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific I / O components 1302 included in a particular machine will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine will be less likely to include such a touch input device. It should be appreciated that I / O components 1302 may include Fig.131302. In various examples, the I / O components 1302 may include a user output component 1326 and a user input component 1328. The user output component 1326 may include a visual component (e.g., a display such as a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)), an acoustic component (e.g., a speaker), a tactile component (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. The user input component 1328 may include an alphanumeric input component (e.g., a keyboard, a touch screen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input component), a point-based input component (e.g., a mouse, a touch pad, a trackball, a joystick, a motion sensor, or other pointing instrument), a tactile input component (e.g., a physical button, a touch screen or other tactile input component that provides the location and force of a touch or touch gesture), an audio input component (e.g., a microphone), etc.

[0171] In other examples, the I / O component 1302 may include a biometric component 1330, a motion component 1332, an environmental component 1334, or a position component 1336, as well as a wide range of other components. For example, the biometric component 1330 includes components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1332 includes an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, and a rotation sensor component (e.g., a gyroscope).

[0172] Environmental components 1334 include, for example, one or more cameras (with still image / photo and video capabilities), lighting sensor components (e.g., photometers), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometers), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors for detecting concentrations of hazardous gases for safety purposes or for measuring pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment.

[0173] With respect to cameras, user system 102 may have a camera system including, for example, a front-facing camera on a front surface of user system 102 and a rear-facing camera on a rear surface of user system 102. The front-facing camera may, for example, be used to capture still images and videos of a user of user system 102 (e.g., “selfies”), which may then be enhanced with the enhancement data (e.g., filters) described above. For example, the rear-facing camera may be used to capture still images and videos in a more conventional camera mode, which images are similarly enhanced with the enhancement data. In addition to the front-facing camera and the rear-facing camera, user system 102 may also include a 360° camera for capturing 360° photos and videos.

[0174] Additionally, the camera system of the user system 102 may include dual rear cameras (e.g., a main camera and a depth sensing camera), or even triple, quad, or quintuple rear camera configurations on the front and back sides of the user system 102. For example, these multi-camera systems may include a wide-angle camera, an ultra-wide-angle camera, a telephoto camera, a macro camera, and a depth sensor.

[0175] The location component 1336 includes a positioning sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects air pressure, from which the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), and the like.

[0176] Various technologies may be used to implement communications. I / O components 1302 also include communications components 1338 that are operable to couple machine 1300 to network 1322 or device 1324 via corresponding couplings or connections. For example, communications components 1338 may include a network interface component or another suitable device that interfaces with network 1322. In other examples, communications components 1338 may include wired communications components, wireless communications components, cellular communications components, near field communications (NFC) components, Bluetooth®, and the like. TM Components (e.g., Bluetooth TM Low energy consumption), Wi-Fi components, and other communication components for providing communication via other forms. Device 1324 can be another machine or any peripheral device among various peripheral devices (e.g., a peripheral device coupled via USB).

[0177] In addition, the communication component 1338 can detect the identifier, or include a component that is operable to detect the identifier. For example, the communication component 1338 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting a one-dimensional barcode such as a universal product code (UPC) barcode, a multi-dimensional barcode such as a quick response (QR) code, an Aztec code, a data matrix, a data symbol (Dataglyph), a maximum code (MaxiCode), PDF417, Ultra Code, UCC RSS-2D barcode, and other optical codes) or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information can be obtained via the communication component 1338, such as obtaining a location via Internet Protocol (IP) geolocation, obtaining a location via Wi-Fi signal triangulation, obtaining a location via detecting an NFC beacon signal that can indicate a specific location, etc.

[0178] Various memories (e.g., main memory 1314, static memory 1316, and memory of processor 1304) and storage unit 1318 may store one or more sets of instructions and data structures (e.g., software) implemented or used by any one or more of the methods or functions described herein. These instructions (e.g., instructions 1310) when executed by processor 1304 cause various operations to implement the disclosed examples.

[0179] The instructions 1310 may be sent or received via a network interface device (e.g., a network interface component included in the communication component 1338) using a transmission medium and using any of several well-known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)) over the network 1322. Similarly, the instructions 1310 may be sent or received via a coupling (e.g., a peer-to-peer coupling) with the device 1324 using a transmission medium.

[0180] Example

[0181] In view of the above-mentioned implementation methods of the subject matter, the present application discloses the following list of examples, wherein one feature of a separate example or more than one feature of an example, a combination, and optionally combined with one or more features of one or more other examples are other examples that also fall within the disclosure of the present application.

[0182] Example 1 is a method for presenting an enablement user interface element within a user interface of an interactive application, the method comprising: detecting an association between a first primary media content item and a supplementary media content item presented within the user interface of the interactive application; automatically identifying the supplementary media content item from a plurality of supplementary media content items supported by the interactive application; automatically retrieving metadata related to the supplementary media content item; causing a supplementary enablement to be presented within the user interface of the interactive application, the supplementary enablement presenting metadata related to the supplementary media content item and being selectable by a user via the user interface to invoke a supplementary function; detecting a user selection of the supplementary enablement within the user interface; and in response to detecting the user selection of the supplementary enablement: invoking the supplementary function and causing the supplementary media content item to be presented for application to a second primary media content item by a user of the interactive application.

[0183] In Example 2, the subject matter of Example 1 includes, wherein causing presentation of the supplemental affordance includes causing presentation of the supplemental affordance within a user interface along with the first primary media content item.

[0184] In Example 3, the subject matter of Example 2 includes, wherein the supplemental affordance is a context card superimposed on the first primary media content item.

[0185] In Example 4, the subject matter of Examples 1 to 3 includes: detecting an association of additional supplemental media content items with a first primary media content item; automatically retrieving additional metadata related to the additional supplemental media content items; and causing additional supplemental affordances to be presented within a user interface of an interactive application, the additional supplemental affordances presenting additional metadata related to the additional supplemental media content items and being user-selectable via the user interface to invoke additional supplemental functionality.

[0186] In Example 5, the subject matter of Example 4 includes, wherein causing presentation of additional supplemental affordances comprises: automatically identifying that a supplemental media content item has a first context type and that additional supplemental media content items have a second context type; automatically determining a context priority based on the first context type and the second context type; and causing the supplemental affordances to be arranged relative to the additional supplemental affordances within the user interface based on the context priority.

[0187] In Example 6, the subject matter of Examples 4 to 5 includes detecting a user selection of additional supplemental capabilities within a user interface; and in response to detecting the user selection of additional supplemental capabilities: invoking additional supplemental functionality and causing additional supplemental media content items to be presented for user application within the context of an interactive application.

[0188] In Example 7, the subject matter of Examples 4 to 6 includes, wherein causing presentation of additional supplemental affordances includes causing presentation of a contextual carousel including the supplemental affordances and the additional supplemental affordances within a user interface of the interactive application.

[0189] In Example 8, the subject matter of Example 7 includes detecting insufficient user interface area for presenting supplemental affordances and additional supplemental affordances; and in response to detecting insufficient user interface area, invoking an automatic scrolling function that causes the supplemental affordances and additional supplemental affordances to move within the user interface relative to the first primary media content item.

[0190] In Example 9, the subject matter of Examples 1 to 8 includes, wherein the supplemental functionality enables a user to select the second primary media content item and automatically associates the supplemental media content item with the second primary media content item.

[0191] In Example 10, the subject matter of Example 9 includes, wherein invoking the supplemental function comprises automatically launching a camera function of the interactive application to enable a user to capture a second primary media content item, the supplemental media content item being automatically applied to the second primary media content item.

[0192] In Example 11, the subject matter of Examples 1 to 10 includes, wherein the metadata includes an icon associated with the supplemental media content item.

[0193] In Example 12, the subject matter of Examples 1 to 11 includes, wherein the supplemental media content item is an enhancement applied to the first primary media content item.

[0194] In Example 13, the subject matter of Example 12 includes, wherein the first primary media content item includes an image, and the enhancement is an image enhancement applied to the image.

[0195] In Example 14, the subject matter of Example 13 includes, wherein the metadata comprises at least one of a title of the image enhancement or an identification of a creator of the image enhancement.

[0196] In Example 15, the subject matter of Examples 1 to 14 includes, wherein the supplemental media content item is an audio file applied to the first primary media content item.

[0197] In Example 16, the subject matter of Example 15 includes, wherein the metadata comprises at least one of: a title of the audio file; an identification of a creator of the audio file; or an animated audio representation user interface element.

[0198] In Example 17, the subject matter of Examples 1 to 16 includes, wherein the first primary media content item includes at least one of image content or video content.

[0199] In Example 18, the subject matter of Examples 1 to 17 includes, wherein the second primary media content item includes at least one of image content or video content.

[0200] Example 19 is a computing device comprising: at least one processor; and a memory storing instructions, which, when executed by the at least one processor, configure the computing device to perform operations, the operations comprising: detecting an association between a first primary media content item and a supplementary media content item presented in a user interface of an interactive application; automatically identifying the supplementary media content item from a plurality of supplementary media content items supported by the interactive application; automatically retrieving metadata related to the supplementary media content item; causing a supplementary affordance to be presented in the user interface of the interactive application, the supplementary affordance presenting metadata related to the supplementary media content item and being selectable by a user via the user interface to invoke a supplementary function; detecting a user selection of the supplementary affordance in the user interface; and in response to detecting the user selection of the supplementary affordance: invoking the supplementary function and causing the supplementary media content item to be presented for application to a second primary media content item by a user of the interactive application.

[0201] Example 20 is a non-transitory computer-readable storage medium comprising instructions that, when executed by at least one processor, cause the at least one processor to perform operations, the operations comprising: detecting an association between a first primary media content item and a supplementary media content item presented within a user interface of an interactive application; automatically identifying the supplementary media content item from a plurality of supplementary media content items supported by the interactive application; automatically retrieving metadata associated with the supplementary media content item; causing a supplementary affordance to be presented within the user interface of the interactive application, the supplementary affordance presenting metadata associated with the supplementary media content item and being selectable by a user via the user interface to invoke a supplementary function; detecting a user selection of the supplementary affordance within the user interface; and in response to detecting a user selection of the supplementary affordance: invoking the supplementary function and causing the supplementary media content item to be presented for application to a second primary media content item by a user of the interactive application.

[0202] Example 21 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any of Examples 1 to 20.

[0203] Example 22 is an apparatus comprising means for implementing any of Examples 1 to 20.

[0204] Example 23 is a system for implementing any of Examples 1 to 20.

[0205] Example 24 is a method for implementing any of Examples 1 to 20.

[0206] As used in this disclosure, phrases of the form "at least one of A, B, or C," "at least one of A, B, or C," "at least one of A, B, and C," etc., should be interpreted as selecting at least one from the group consisting of "A, B, and C." Unless otherwise expressly stated in connection with a specific example in this disclosure, this wording does not mean "at least one of A, at least one of B, and at least one of C." As used in this disclosure, the example "at least one of A, B, or C" would encompass any of the following selections: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, and {A, B, C}.

[0207] Unless the context clearly requires otherwise, throughout the specification and claims, the words "include", "comprises", etc. should be interpreted as having an inclusive meaning, rather than an exclusive or exhaustive meaning, for example, in the sense of "including but not limited to". As used herein, the term "connected", "coupled" or any variation thereof means any connection or coupling between two or more elements, whether direct or indirect; the coupling or connection between elements can be physical, logical, or a combination thereof. In addition, when used in this application, the words "herein", "above", "below" and words with similar meanings refer to this application as a whole rather than to any particular part of this application. Where the context permits, words using the singular or plural may also include the plural or singular, respectively. With respect to a list of two or more items, the word "or" covers all the following interpretations of the word: any item in the list, all items in the list, and any combination of items in the list. Similarly, with respect to a list of two or more items, the term "and / or" covers all the following interpretations of the word: any item in the list, all items in the list, and any combination of items in the list.

[0208] The various features, steps or processes described herein can be used independently of each other, or can be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of the present disclosure. In addition, certain methods or processing blocks can be omitted in some implementations.

[0209] Although some examples, such as those depicted in the accompanying drawings, include a specific sequence of operations, the sequence may be changed without departing from the scope of the present disclosure. For example, some of the operations described may be performed in parallel or in a different order that does not substantially affect the functions described in the examples. In other examples, different components of the example devices or systems that implement the example methods may perform functions substantially simultaneously or in a specific order.

[0210] Glossary

[0211] "Carrier signal" refers to any intangible medium that can store, encode or carry instructions for execution by a machine and includes digital or analog communications signals or other intangible media that facilitates communication of such instructions. Instructions may be sent or received over a network using a transmission medium via a network interface device.

[0212] "Client device" or "user equipment" refers to any machine that interfaces with a communications network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a laptop computer, a multiprocessor system, a microprocessor-based or programmable consumer electronics product, a game console, a set-top box, or any other communications device that a user may use to access a network.

[0213] "Communications network" means one or more parts of a network, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a part of the Internet, a part of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, A network, other type of network, or a combination of two or more such networks. For example, the network or a portion of the network may include a wireless network or a cellular network, and the coupling may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rate for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) network, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other data transmission technologies defined by various standard setting organizations, other long distance protocols, or other data transmission technologies.

[0214] "Component" refers to a logic or device, a physical entity with the following boundaries, which is defined by a function or subroutine call, a branch point, an API, or other technical definitions that provide partitioning or modularization for a specific processing or control function. A component can be combined with other components via its interface to perform machine processing. A component can be a packaged functional hardware unit designed for use with other components, and a part of a program that generally performs a specific function of a related function. A component can constitute a software component (e.g., a code implemented on a machine-readable medium) or a hardware component. A "hardware component" is a tangible unit that can perform certain operations and can be configured or arranged in a certain physical manner. In various examples, one or more computer systems (e.g., an independent computer system, a client computer system, or a server computer system) or one or more hardware components (e.g., a processor or a processor group) of a computer system can be configured by software (e.g., an application or an application part) to operate to perform certain operations as described herein. Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component may include a dedicated circuit or logic that is permanently configured to perform certain operations. The hardware component may be a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The hardware component may also include a programmable logic or circuit that is temporarily configured to perform certain operations by software. For example, the hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or a specific component of a machine), which is uniquely customized to perform the function of the configuration and is no longer a general-purpose processor. It will be recognized that it can be determined for cost and time considerations whether to mechanically implement the hardware component in a dedicated and permanently configured circuit or in a temporarily configured (e.g., configured by software) circuit to implement the hardware component. Therefore, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity, that is, an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in some way or perform certain operations described herein. Considering an example in which a hardware component is temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware component in the hardware component at any one time. For example, where a hardware component includes a general purpose processor that is configured by software to be a special purpose processor, the general purpose processor may be configured at different times to be respectively different special purpose processors (e.g., including different hardware components). The software configures a specific one or more processors accordingly, for example, to constitute a specific hardware component at one time and to constitute different hardware components at different times. Hardware components may provide information to other hardware components and receive information from other hardware components. Thus, the described hardware components may be considered to be communicatively coupled.In the case of multiple hardware components being present at the same time, communication can be achieved by signal transmission between or among two or more hardware components (e.g., by appropriate circuits and buses). In examples where multiple hardware components are configured or instantiated at different times, communication between such hardware components can be achieved, for example, by storing information in a memory structure accessible to multiple hardware components and retrieving information in the memory structure. For example, a hardware component can perform an operation, and the output of the operation is stored in a memory device coupled to it in communication. Then, other hardware components can access the memory device at a subsequent time to retrieve the stored output and process it. The hardware component can also initiate communication with an input device or an output device, and can operate on resources (e.g., a collection of information). The various operations of the example methods described in this article can be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform related operations. Whether it is temporarily configured or permanently configured, such a processor can constitute a processor-implemented component that operates to perform one or more operations or functions described herein. As used herein, "processor-implemented components" refer to hardware components implemented using one or more processors. Similarly, the method described in this article can be implemented at least in part by a processor, wherein one or more specific processors are examples of hardware. For example, at least some of the operations in the operation of the method can be performed by one or more processors or the parts implemented by the processor. In addition, one or more processors can also operate to support the execution of related operations in a "cloud computing" environment or as a "software as a service" (SaaS) operation. For example, at least some of the operations in the operation can be performed by a computer group (as an example of a machine including a processor), wherein these operations can be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., API). The execution of certain operations can be distributed between processors, not only resident in a single machine, but deployed across multiple machines. In some examples, a processor or a part implemented by a processor can be located in a single geographic location (e.g., in a home environment, an office environment, or a server cluster). In other examples, a processor or a part implemented by a processor can be distributed across multiple geographic locations.

[0215] "Computer-readable storage media" refers to both machine storage media and transmission media. Therefore, these terms include both storage devices / media and carrier waves / modulated data signals. The terms "machine-readable medium", "computer-readable medium" and "device-readable medium" mean the same thing and may be used interchangeably in this disclosure.

[0216] “Machine storage media” refers to a single or multiple storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Thus, the term should be considered to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGA, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms “machine storage media,” “device storage media,” and “computer storage media” mean the same thing and may be used interchangeably in this disclosure. The terms “machine storage media,” “computer storage media,” and “device storage media” explicitly exclude carrier waves, modulated data signals, and other such media, at least some of which are encompassed by the term “signal media.”

[0217] “Non-transitory computer-readable storage medium” refers to tangible media capable of storing, encoding, or carrying instructions to be executed by a machine.

[0218] "Signal medium" refers to any intangible medium that is capable of storing, encoding or carrying instructions executed by a machine and includes digital or analog communication signals or other intangible media that facilitate the communication of software or data. The term "signal medium" should be deemed to include any form of modulated data signals, carrier waves, etc. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure.

Claims

1. A method for presenting an affordance user interface element in a user interface of an interactive application, the method comprising: detecting an association of a first primary media content item with a supplemental media content item presented within the user interface of the interactive application; automatically identifying the supplemental media content item from a plurality of supplemental media content items supported by the interactive application; automatically retrieving metadata associated with the supplemental media content item; causing presentation of a supplemental affordance within the user interface of the interactive application, the supplemental affordance presenting metadata related to the supplemental media content item and being selectable by a user via the user interface to invoke supplemental functionality; detecting a user selection of the supplemental affordance within the user interface; as well as In response to detecting a user selection of the supplemental affordance: calling the supplementary function, and The supplemental media content item is caused to be presented for application to a second primary media content item by a user of the interactive application.

2. The method according to claim 1, wherein: Causing presentation of the supplemental affordance includes causing the supplemental affordance to be presented within the user interface along with the first primary media content item.

3. The method according to claim 2, wherein: The supplemental affordance is a context card superimposed on the first primary media content item.

4. The method according to claim 1, further comprising: detecting an association of a further supplementary media content item with the first primary media content item; automatically retrieving further metadata associated with the further supplemental media content item; as well as Enabling presentation of additional supplementary affordances within the user interface of the interactive application, the additional supplementary affordances presenting the additional metadata associated with the additional supplementary media content items and being user-selectable via the user interface to invoke additional supplementary functionality.

5. The method according to claim 4, wherein: Such that presenting the additional supplemental affordances comprises: automatically identifying that the supplemental media content item has a first context type and that the further supplemental media content item has a second context type; automatically determining a context priority based on the first context type and the second context type; and The supplemental affordances are arranged within the user interface relative to the additional supplemental affordances based on the contextual priority.

6. The method according to claim 4, further comprising: detecting a user selection of the additional supplemental affordance within the user interface; as well as In response to detecting a selection by the user of the additional supplemental affordance: calling said further supplementary function, and The additional supplemental media content items are caused to be presented for application by the user within the context of the interactive application.

7. The method according to claim 4, wherein: Causing presentation of the additional supplemental affordance includes causing presentation of a contextual carousel including the supplemental affordance and the additional supplemental affordance within the user interface of the interactive application.

8. The method according to claim 7, further comprising: detecting insufficient user interface area for presenting the supplemental affordance and the further supplemental affordance; as well as In response to detecting that the user interface area is insufficient, an automatic scrolling function is invoked, the automatic scrolling function causing the supplemental affordances and the further supplemental affordances to move within the user interface relative to the first primary media content item.

9. The method according to claim 1, wherein: The supplemental functionality enables a user to select the second primary media content item and automatically associates the supplemental media content item with the second primary media content item.

10. The method according to claim 9, wherein: Invoking the supplementary function includes automatically activating a camera function of the interactive application to enable the user to capture the second primary media content item, the supplementary media content item being automatically applied to the second primary media content item.

11. The method according to claim 1, wherein: The metadata includes an icon associated with the supplemental media content item.

12. The method according to claim 1, wherein: The supplemental media content item is an enhancement applied to the first primary media content item.

13. The method according to claim 12, wherein: The first primary media content item comprises an image, and the enhancement is an image enhancement applied to the image.

14. The method according to claim 13, wherein: The metadata includes at least one of a title of the image enhancement or an identification of a creator of the image enhancement.

15. The method according to claim 1, wherein: The supplemental media content item is an audio file that applies to the first primary media content item.

16. The method according to claim 15, wherein: The metadata includes at least one of: a title of the audio file; an identification of a creator of the audio file; or an animated audio representation user interface element.

17. The method according to claim 1, wherein: The first primary media content item includes at least one of image content or video content.

18. The method according to claim 1, wherein: The second primary media content item includes at least one of image content or video content.

19. A computing device comprising: at least one processor; as well as a memory storing instructions that, when executed by the at least one processor, configure the computing device to perform operations comprising: detecting an association of a first primary media content item with a supplemental media content item presented within a user interface of an interactive application; automatically identifying the supplemental media content item from a plurality of supplemental media content items supported by the interactive application; automatically retrieving metadata associated with the supplemental media content item; causing presentation of a supplemental affordance within the user interface of the interactive application, the supplemental affordance presenting metadata related to the supplemental media content item and being selectable by a user via the user interface to invoke supplemental functionality; detecting a user selection of the supplemental affordance within the user interface; and In response to detecting a user selection of the supplemental affordance: calling the supplementary function, and The supplemental media content item is caused to be presented for application to the second primary media content item by a user of the interactive application.

20. A non-transitory computer-readable storage medium comprising instructions that, when executed by at least one processor, cause the at least one processor to perform operations comprising: detecting an association of a first primary media content item with a supplemental media content item presented within a user interface of an interactive application; automatically identifying the supplemental media content item from a plurality of supplemental media content items supported by the interactive application; automatically retrieving metadata associated with the supplemental media content item; causing presentation of a supplemental affordance within the user interface of the interactive application, the supplemental affordance presenting metadata related to the supplemental media content item and being selectable by a user via the user interface to invoke supplemental functionality; detecting a user selection of the supplemental affordance within the user interface; as well as In response to detecting a user selection of the supplemental affordance: calling the supplementary function, and The supplemental media content item is caused to be presented for application to a second primary media content item by a user of the interactive application.

Citation Information

Cited By

  • Context cards for media supplementation

    US12360649B2