Patent Description:
At social gatherings, users often wish to share media content with friends, relatives, and new acquaintances. For example, a party host may access media content on a mobile device and present that media content through a media presentation system (e.g., play music on a speaker or stream video on a screen). Other users (e.g., guests) may wish to control the media presentation system, and the host may be willing to provide this access (e.g., to allow the other users to share in the selection of media content). Allowing other users access to the media presentation system on a one-by-one basis (e.g., connecting the other users' devices to the media presentation system one at a time) is slow and impedes the goal of sharing access to the media presentation system. Moreover, due to access or license restrictions, the party host's mobile device might be the only device authorized to control the media presentation system. Passing around the host's mobile device is also impractical and may be undesirable for privacy and security reasons. Thus, users are faced with the challenge of how to effectively, efficiently, and securely share access to media presentation systems.

An example is disclosed in the United States Patent Application Publication <CIT>, which is entitled "Systems, methods, apparatus, and articles of manufacture to provide a crowd-sourced playlist with guest access".

Accordingly, there is a need for systems and methods for sharing access to a media control system and controlling media presentation at a shared media presentation system. By authorizing a first electronic device to control a media presentation system and then allowing the first electronic device to indicate availability of the media presentation system for use by one or more other electronic devices, users are able to more efficiently, effectively, and securely share access to a media presentation system. Such systems and methods optionally complement or replace conventional methods for controlling media presentation systems.

One specific area where the disclosed systems and methods are implemented is creating hotspots for media control during social gatherings (e.g., parties, music festivals, etc.). For example, a host of a social gathering will use a device associated with the host to create a hotspot that allows guests to use the host's media presentation system(s) (e.g., one or more network-connected speakers). Such a request can be made in many ways, such as via a mobile phone (e.g., smart phone), a tablet computer, a laptop computer, another mobile device, a desktop computer, or other electronic device. For example, the host can use a smart phone to request to share access to a speaker located within the dining room via an application on the smart phone that communicates with a media content server. After connecting to the hotspot, including receiving an authentication token from the host's smart phone the host's guests are able to use the media presentation system. The guests are able to use their own electronic (e.g., mobile) devices to send media control requests (e.g., requests to stream music content) to the media presentation system (e.g., the media control requests are sent to the media content server and the media content server then sends a command corresponding to the media control request to the media presentation system). In this way, the host and his or her guests are able to collaborate on the presentation of content during the social gathering.

The above example represents one possible way of controlling media presentation at a shared media presentation system. Other implementations are also contemplated, however (as discussed in more detail below within the detailed description).

In accordance with some implementations, a method is performed at a server system (e.g., a media content server) having one or more processors and memory storing one or more programs for execution by the one or more processors. The method includes authorizing a first electronic device associated with a first user to control a media presentation system (e.g., a single speaker or a plurality of speakers that are associated with the first user); receiving, from the first electronic device, a request to indicate availability of the media presentation system for use by one or more other electronic devices; and sending, to the first electronic device, an authentication token for the media presentation system. The method further includes receiving, from a second electronic device, a media control request including the authentication token, wherein the second electronic device is one of the one or more other electronic devices. In accordance with a determination that the authentication token permits access to the media presentation system, the method further includes sending a command corresponding to the media control request to the media presentation system.

In accordance with some implementations, a server system for controlling media presentation includes one or more processors and memory storing one or more programs configured for execution by the one or more processors. The one or more programs include instructions for performing the operations of the server-side method described above. In accordance with some implementations, a non-transitory computer-readable storage medium is provided. The computer-readable storage medium stores one or more programs configured for execution by one or more processors of the server system; the one or more programs include instructions for performing the operations of the server-side method described above. In accordance with some implementations, a server system for controlling media presentation includes means for performing the operations of the server-side method described above.

Thus, users are provided with faster, more efficient methods for controlling media presentation at a shared media presentation system, thereby increasing the effectiveness, efficiency, and user satisfaction associated with media content delivery systems.

The implementations disclosed herein are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings. Like reference numerals refer to corresponding parts throughout the drawings.

Reference will now be made to implementations, examples of which are illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide an understanding of the various described implementations. However, it will be apparent to one of ordinary skill in the art that the various described implementations may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the implementations.

It will also be understood that, although the terms first, second, etc. are, in some instances, used herein to describe various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device, without departing from the scope of the various described implementations. The first device and the second device are both devices, but they are not the same device.

The terminology used in the description of the various implementations described herein is for the purpose of describing particular implementations only and is not intended to be limiting. As used in the description of the various described implementations and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "includes," "including," "comprises," and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

As used herein, the term "if' is, optionally, construed to mean "when" or "upon" or "in response to determining" or "in response to detecting" or "in accordance with a determination that," depending on the context.

As used herein, the term "exemplary" is used in the sense of "serving as an example, instance, or illustration" and not in the sense of "representing the best of its kind.

<FIG> is a block diagram illustrating an exemplary media content delivery system <NUM> in accordance with some implementations. The media content delivery system <NUM> includes one or more client devices <NUM> (e.g., client device <NUM>-<NUM> and client device <NUM>-<NUM>), one or more media content servers (e.g., media content server <NUM>), and one or more media presentation systems (e.g., media presentation systems <NUM>, including speaker <NUM>-<NUM>, television (TV) <NUM>-<NUM>, digital versatile disk (DVD) <NUM>-<NUM>, and/or other media presentation system <NUM>-n). One or more networks (e.g., network(s) <NUM>) communicably connect each component of the media content delivery system <NUM> with other components of the media content delivery system <NUM>. In some implementations, the one or more networks <NUM> include public communication networks, private communication networks, or a combination of both public and private communication networks. For example, the one or more networks <NUM> can be any network (or combination of networks) such as the Internet, other wide area networks (WAN), local area networks (LAN), virtual private networks (VPN), metropolitan area networks (MAN), peer-to-peer networks, and/or ad-hoc connections.

In some implementations, a client device (e.g. client device <NUM>-<NUM> and/or client device <NUM>-<NUM>) is a representative electronic device associated with one or more users. In some implementations, a client device is any of: a personal computer, a mobile electronic device, a wearable computing device, a laptop, a tablet computer, a mobile phone, a feature phone, a smart phone, a digital media player, or any other electronic device capable of sending media control requests. In some implementations, client device <NUM>-<NUM> and client device <NUM>-<NUM> are the same type of device (e.g., client device <NUM>-<NUM> and client device <NUM>-<NUM> are both mobile devices). Alternatively, client device <NUM>-<NUM> and client device <NUM>-<NUM> are different types of devices.

In some implementations, client devices <NUM>-<NUM> and <NUM>-<NUM> send and receive information through the networks <NUM>. For example, client devices <NUM>-<NUM> and <NUM>-<NUM>, in some implementations, send media control requests (e.g., requests to play music, movies, playlists, or other media content items) to media content server <NUM> through network(s) <NUM>. Additionally, client devices <NUM>-<NUM> and <NUM>-<NUM>, in some implementations, also receive authentication tokens from the media content server <NUM> through network(s) <NUM>. For example, client device <NUM>-<NUM> initially sends media control requests for a particular media presentation system <NUM>, and client device <NUM>-<NUM> subsequently may also send media control requests for the media presentation system <NUM> after receiving an authentication token corresponding to the media presentation system <NUM>.

In some implementations, client device <NUM>-<NUM> and client device <NUM>-<NUM> may also communicate with each other through network(s) <NUM>. For example, client device <NUM>-<NUM> may notify client device <NUM>-<NUM> that access to a media presentation system <NUM> is available and/or send an authentication token to client device <NUM>-<NUM> using any suitable networking protocol, as described in more detail below.

In some implementations, client device <NUM>-<NUM> communicates directly with media presentation systems <NUM>. As pictured in <FIG>, client device <NUM>-<NUM> is able to communicate directly (e.g., through a wired connection or through a short-range wireless signal, such as those associated with BLUETOOTH / BTLE communication technologies, radio-frequency-based near field communication technologies, infrared communication technologies, etc.) with media presentation systems <NUM>, while client device <NUM>-<NUM> only communicates with the media presentation systems <NUM> through network(s) <NUM>. In some implementations, client device <NUM>-<NUM> uses the direct connection with media presentation systems <NUM> in order to complete initial setup and configuration operations on the media presentation systems <NUM>. For example, media presentation systems <NUM> include TV <NUM>-<NUM> and, in some implementations, the client device <NUM>-<NUM> uses the direct connection to configure TV <NUM>-<NUM> to connect to a local wireless (e.g., WiFi) network (e.g., provide TV <NUM>-<NUM> with a network identifier and username and password details for the network).

In some implementations, client device <NUM>-<NUM> and client device <NUM>-<NUM> each include a media application <NUM> (as shown in <FIG> and described in more detail below) that allows a user of the client device to browse media content and request media content for presentation at a media presentation system (e.g., speaker <NUM>-<NUM>, TV <NUM>-<NUM>, DVD <NUM>-<NUM>,. Media Presentation System <NUM>-n) associated with the client device. The media presentation system, in some implementations, may be part of the client device <NUM>, such as built-in speakers or a screen, or may be separate from the client device <NUM>, such as a wirelessly coupled speaker (e.g., speaker <NUM>-<NUM>).

In some implementations, the client device <NUM>-<NUM> further includes a media presentation sharing module <NUM> of media application <NUM> (as shown in <FIG> and described in more detail below). The media presentation sharing module <NUM> allows a user of client device <NUM>-<NUM>, in some implementations, to indicate availability of the media presentation system for use by one or more other electronic devices (e.g., client device <NUM>-<NUM>) and/or to provide access by the one or more other electronic devices to the media presentation system. In some implementations, the media presentation sharing module <NUM> allows the user of client device <NUM>-<NUM> to indicate availability of all or a portion of media presentation systems associated with the user (e.g., the user of client device <NUM>-<NUM> selects a single user interface element (such as share-all affordance <NUM> of <FIG>) to indicate availability of speaker <NUM>-<NUM>, TV <NUM>-<NUM>, DVD <NUM>-<NUM>, and/or media presentation system <NUM>-n for use by one or more other electronic devices).

In some implementations, the media content server <NUM> stores media content and provides the media content (e.g., media content requested by the media application <NUM> of client device <NUM>-<NUM> and/or <NUM>-<NUM>), via the network(s) <NUM>, to the media presentation systems <NUM>. Content stored and served by the media content server <NUM>, in some implementations, includes any appropriate content, including text (e.g., articles, blog posts, emails, etc.), images (e.g., photographs, drawings, renderings, etc.), videos (e.g., short-form videos, music videos, television shows, movies, clips, previews, etc.), audio (e.g., music, spoken word, podcasts, etc.), games (e.g., <NUM>- or <NUM>-dimensional graphics-based computer games, etc.), or any combination of content types (e.g., web pages that include any combination of the foregoing types of content or other content not explicitly listed). The description of the media content server <NUM> as a "server" is intended as a functional description of the devices, systems, processor cores, and/or other components that provide the functionality attributed to the media content server <NUM>. It will be understood that the media content server <NUM> may be a single server computer, or may be multiple server computers. Moreover, the media content server <NUM> may be coupled to other servers and/or server systems, or other devices, such as other client devices, databases, content delivery networks (e.g., peer-to-peer networks), network caches, and the like. In some implementations, the media content server <NUM> is implemented by multiple computing devices working together to perform the actions of a server system (e.g., cloud computing).

As described above, media presentation systems <NUM> (e.g., speaker <NUM>-<NUM>, TV <NUM>-<NUM>, DVD <NUM>-<NUM>,. Media Presentation System <NUM>-n) are capable of receiving media content (e.g., from the media content server <NUM>) and presenting the received media content. For example, in some implementations, speaker <NUM>-<NUM> is a component of a network-connected audio/video system (e.g., a home entertainment system, a radio/alarm clock with a digital display, or an infotainment system of a vehicle). In some implementations, media presentation systems thus are devices to which the media content server <NUM> can send media content. For example, media presentation systems include computers, dedicated media players, network-connected stereo and/or speaker systems, network-connected vehicle media systems, network-connected televisions, network-connected DVD players, and universal serial bus (USB) devices used to provide a playback device with network connectivity, and the like.

In some implementations, each media presentation system <NUM> is associated with an identifier (e.g., a unique hardware or application identifier, a network address, etc.) that the media content server <NUM> uses to uniquely identify and/or establish communications with the media presentation system. As described herein, in some implementations, client device <NUM>-<NUM> sends, through network(s) <NUM>, a media control request (e.g., a request to play a new song) including an authentication token to media content server <NUM>. After verifying that the authentication token is valid (described in more detail below with reference to <FIG> and <FIG>), the media content server <NUM>, in some implementations, retrieves an identifier of a particular media presentation system <NUM> (e.g., TV <NUM>-<NUM>) that is associated with the authentication token (e.g., an MPS ID from the MPS IDs field of media account data structure <NUM>, <FIG>, where MPS stands for media presentation system). Accordingly, in some implementations, the media content server <NUM> can first verify that client device <NUM>-<NUM> is authorized to send media control requests to a media presentation system <NUM> (e.g., TV <NUM>-<NUM>) and can then send a command corresponding to the media control request to the media presentation system <NUM> (e.g., TV <NUM>-<NUM>), even though the client device <NUM>-<NUM> is not otherwise associated with the media presentation system <NUM> (e.g., TV <NUM>-<NUM>). A user of client device <NUM>-<NUM> thus can control media presentation at a shared media presentation system.

<FIG> is a block diagram illustrating an exemplary client device <NUM> (e.g., client device <NUM>-<NUM> and/or client device <NUM>-<NUM> of <FIG>) in accordance with some implementations. The client device <NUM> typically includes one or more central processing units (CPU(s), i.e., processors or cores) <NUM>, one or more network (or other communications) interfaces <NUM>, memory <NUM>, and one or more communication buses <NUM> for interconnecting these components. The communication buses <NUM> optionally include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.

As also shown in <FIG>, the client device <NUM> includes a user interface <NUM>, including output device(s) <NUM> and input device(s) <NUM>. In some implementations, the input devices include a keyboard, mouse, or track pad. Alternatively, or in addition, in some implementations, the user interface <NUM> includes a display device that includes a touch-sensitive surface, in which case the display device is a touch-sensitive display. In client devices that have a touch-sensitive display, a physical keyboard is optional (e.g., a soft keyboard may be displayed when keyboard entry is needed). The output devices (e.g., output device(s) <NUM>) also optionally include speakers or an audio output connection connected to speakers, earphones, or headphones. Furthermore, some client devices <NUM> use a microphone and voice recognition device to supplement or replace the keyboard. Optionally, the client device <NUM> includes an audio input device (e.g., a microphone) to capture audio (e.g., speech from a user). Optionally, the client device <NUM> includes a location-detection device, such as a GPS (global positioning satellite) or other geo-location receiver, and/or location-detection software for determining the location of the client device <NUM>.

Memory <NUM> includes high-speed random-access memory, such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory <NUM> may optionally include one or more storage devices remotely located from the CPU(s) <NUM>. Memory <NUM>, or alternately, the non-volatile memory solid-state storage devices within memory <NUM>, includes a non-transitory computer-readable storage medium. In some implementations, memory <NUM> or the non-transitory computer-readable storage medium of memory <NUM> stores the following programs, modules, and data structures, or a subset or superset thereof:.

<FIG> is a block diagram illustrating an exemplary media content server <NUM> in accordance with some implementations. The media content server <NUM> typically includes one or more central processing units/cores (CPUs) <NUM>, one or more network interfaces <NUM>, memory <NUM>, and one or more communication buses <NUM> for interconnecting these components.

Memory <NUM> includes high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid-state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. Memory <NUM>, optionally, includes one or more storage devices remotely located from one or more CPUs <NUM>. Memory <NUM>, or, alternatively, the non-volatile solid-state memory device(s) within memory <NUM>, includes a non-transitory computer-readable storage medium. In some implementations, memory <NUM>, or the non-transitory computer-readable storage medium of memory <NUM>, stores the following programs, modules and data structures, or a subset or superset thereof:.

In some implementations, the media content server <NUM> includes web or Hypertext Transfer Protocol (HTTP) servers, File Transfer Protocol (FTP) servers, as well as web pages and applications implemented using Common Gateway Interface (CGI) script, PHP Hyper-text Preprocessor (PHP), Active Server Pages (ASP), Hyper Text Markup Language (HTML), Extensible Markup Language (XML), Java, JavaScript, Asynchronous JavaScript and XML (AJAX), XHP, Javelin, Wireless Universal Resource File (WURFL), and the like.

Each of the above identified modules stored in memory <NUM> and <NUM> corresponds to a set of instructions for performing a function described herein. The above identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of these modules may be combined or otherwise re-arranged in various implementations. In some implementations, memory <NUM> and <NUM> optionally store a subset or superset of the respective modules and data structures identified above. Furthermore, memory <NUM> and <NUM> optionally store additional modules and data structures not described above.

Although <FIG> illustrates the media content server <NUM> in accordance with some implementations, <FIG> is intended more as a functional description of the various features that may be present in one or more media content servers than as a structural schematic of the implementations described herein. In practice, and as recognized by those of ordinary skill in the art, items shown separately could be combined and some items could be separated. For example, some items shown separately in <FIG> could be implemented on single servers and single items could be implemented by one or more servers. The actual number of servers used to implement the media content server <NUM>, and how features are allocated among them, will vary from one implementation to another and, optionally, depends in part on the amount of data traffic that the server system must handle during peak usage periods as well as during average usage periods.

In some implementations, the media content server <NUM> uses tables, databases, or other appropriate data structures (e.g., authentication module <NUM> and/or media content database <NUM>) to associate respective users with respective media presentation systems and to manage authentication tokens (i.e., access tokens) associated with respective media presentation systems.

<FIG> is a block diagram illustrating an authentication data structure <NUM> in the authentication module <NUM> and an exemplary media account data structure <NUM> in the media account database <NUM>, in accordance with some implementations. The authentication data structure <NUM>, in some implementations, contains fields (e.g., each field within header <NUM>-<NUM>) for "token ID" (e.g., an identifier to uniquely identify each record <NUM>-<NUM>, <NUM>-<NUM>, etc. contained within the authentication data structure <NUM>), "MPS ID" (e.g., an identifier corresponding to a respective media presentation system or to a plurality of media presentation systems), "access token" (e.g., an authentication token used to provide client devices with access to media presentation systems that correspond to the authentication token), and "is valid?" (e.g., an indication as to whether a respective access token is still valid). The media account data structure <NUM>, in some implementations, contains fields (e.g., each field within header <NUM>-<NUM>) for media acct ID (e.g., a unique identifier for each record <NUM>-<NUM>, <NUM>-<NUM>, etc. in the media account data structure <NUM>), media user ID (e.g., an identifier associated with a user, which could be a user-created username or some other appropriate identifier), and MPS IDs (e.g., a set of identifiers corresponding to media presentation systems that are associated with the user).

In some implementations, a content provider may require that a respective media presentation system be associated with a particular user account (or user accounts) before it will allow that device to receive content from the content provider. In some implementations, a user must provide login credentials (e.g., a username and password) to a media presentation system so that the media presentation system can, in turn, authenticate itself and/or the user to the content provider (e.g., through media content server <NUM>). (Alternatively, the user provides login credentials to the media content server <NUM>. ) After authenticating, the user can direct media content associated with his or her account to the media presentation system.

Moreover, by ensuring that respective media presentation systems <NUM> are associated with at least one particular user account, the media content provider can implement rules and policies relevant to the particular user account, and allow access to account-specific data that is associated with the particular user account. For example, the media content provider can enforce access limits that apply to that particular account as it would with any other media presentation system associated with that user and/or user account. Thus, if a user has already consumed a maximum allotment of media content, the user will be unable to send additional media content to media presentation systems. Also, account-specific data, such as stored playlists, "favorite" content items, currently playing content, and the like, are all available through the media content server <NUM>.

As a specific example, a user may setup a network-connected television (e.g., television <NUM>-<NUM> of <FIG>) as a media presentation system. The media content provider can then associate the television with the account of a user in the media content server <NUM>, by adding or updating a record (e.g., record <NUM>-<NUM>) in the media account data structure <NUM>. For example, if User <NUM> is not yet associated with any media presentation systems, then the media content server <NUM> (or a component of media content server <NUM>, e.g., authentication module <NUM>) adds record <NUM>-<NUM> to the media account data structure <NUM> (in this example, the television <NUM>-<NUM> has an MPS ID of TV_13, so record <NUM>-<NUM> of media account data structure <NUM> contains an MPS ID of TV_13 in the MPS IDs field). By way of general illustration, in some implementations, if User <NUM> shares access to TV_13, but then the access token associated with TV_13 is later invalidated, authentication module <NUM> updates a record in authentication data structure <NUM> to reflect invalidation of the access token (e.g., record <NUM>-<NUM> indicates that the access token for TV _13 is not valid).

As an additional example, User <NUM> may decide to allow other users to access media presentation systems associated with User <NUM>. For example, if User <NUM> shares access to the speaker associated with MPS ID of Spk_0 (e.g., creates a hotspot associated with Speaker <NUM>-<NUM> of <FIG>), then the authentication module <NUM> communicates with media account database <NUM> (e.g., sends a SQL query to media account database <NUM>, or a component thereof, and receives a record based on the query in response) to verify that User <NUM> is associated with Spk_0 (e.g., checking that record <NUM>-<NUM> associated with User <NUM> has an entry in the MPS IDs field for Spk_0). In accordance with a determination that User <NUM> is authorized to use Speaker <NUM>-<NUM>, the authentication module <NUM> accesses the token generating module <NUM>, in order to create an access token corresponding to Speaker <NUM>-<NUM>. In accordance with some implementations, the authentication module <NUM> adds a new record (e.g., record <NUM>-<NUM>) to authentication data structure <NUM> including the MPS ID (e.g., Spk_0), the generated access token, and an indication that the token is valid.

Although <FIG> illustrates data structures <NUM> as tables, the data structures <NUM> may include a SQL database, a spreadsheet, an XML file, a desktop database, a flat file, a CSV file, and/or other organized data source. Some implementations support combined or blended sources for each data structure, with data from two or more distinct sources.

<FIG> are flow diagrams illustrating a method <NUM> of controlling media presentation in accordance with some implementations.

The method <NUM>, in accordance with some implementations, is performed by a server system (e.g., media content server <NUM>, <FIG> and <FIG>). <FIG> correspond to instructions stored in a computer memory or other computer-readable storage medium (e.g., memory <NUM> of the media content server <NUM>, <FIG>).

Referring now to <FIG>, the server system (e.g., media content server <NUM>) authorizes (<NUM>) a first electronic device associated with a first user (e.g., client device <NUM>-<NUM>) to control a media presentation system (e.g., speaker <NUM>-<NUM>). This authorization occurs, for example, when the first user first sets up the media presentation system or when the first user logs into the media content provider associated with the media content server <NUM>. In some implementations, control of the media presentation system is through the media content server <NUM> (e.g., client device <NUM>-<NUM> controls speaker <NUM>-<NUM> by sending media control requests to the media content server <NUM> and a command corresponding to each media control request is later sent, by media content server <NUM> or a component thereof, to speaker <NUM>-<NUM>). If client device <NUM>-<NUM> and speaker <NUM>-<NUM> are on (e.g., connected to) the same network (e.g., WiFi network) the client device <NUM>-<NUM>, in some implementations, can send a media control request both to the media content server <NUM> and directly to the speaker <NUM>-<NUM>, since this allows for faster response times (e.g., the delay time between sending the media control request and playback of a requested new song or other content included in the media control request is reduced). In some implementations, however, the client device <NUM>-<NUM> is not on the same network (e.g., WiFi) as the speaker <NUM>-<NUM>. For example, a guest may not have access to the wireless (e.g., WiFi) network of a party host. As such, the client device <NUM>-<NUM>, in these implementations, only sends media control requests to the media content server <NUM> and does not send media control requests directly to the speaker <NUM>-<NUM>.

The media presentation system, in some implementations, includes (<NUM>) a speaker, a plurality of speakers, a television, a digital versatile disc (DVD) player, a personal computing device, a wireless music streaming device, or a television media streaming device. The media presentation system, in some implementations, includes more than one type of component media presentation system (e.g., a plurality of speakers, a television, and a DVD player, as shown in media presentation systems <NUM> of <FIG>). As an additional example, in some implementations, the media presentation system may include a USB device enabling wireless connectivity for a television (or for any other type of media presentation system) or a device (e.g., light emitting diode (LED) lamp) with a built-in network-compatible (e.g., WiFi) speaker.

In some implementations, the server system receives (<NUM>), from the first electronic device, a request to indicate availability of the media presentation system (e.g., a single speaker or a plurality of speakers) for use by one or more other electronic devices. Indicating availability of the media presentation system for use by one or more other electronic devices is referred to as creating a hotspot for control of the media presentation system. In some implementations, the request from the first electronic device is generated after the first user of the first electronic device selects (e.g., with a touch-based gesture such as a drag, an extended tap, or a momentary tap on user interface <NUM> of client device <NUM>, <FIG>) an affordance (e.g., an icon, slide bar, etc.) displayed on the first electronic device (e.g., displayed by media presentation sharing module <NUM> of media application <NUM>, <FIG>). The affordance in these implementations may contain text indicating that selecting the affordance will create a hotspot for media control that will allow other users to use the media presentation system (e.g., a "share" button for requesting to indicate availability of a single media presentation system (such as hotspot activation affordances <NUM>, <FIG>) and/or a "Share All" button for requesting to indicate availability of a plurality of media presentation systems (such as share-all affordance <NUM>, <FIG>)). Consistent with these implementations, the first user may be asked to affirmatively agree (e.g., click or tap on a displayed "I agree" button on user interface <NUM> of client device <NUM>) to allow other users to use the media presentation system.

As a specific example, with reference to <FIG>, the first user clicks on a respective hotspot activation affordance <NUM>, in order to create a hotspot for the corresponding media presentation system (in this example, speaker <NUM>-<NUM>). After the hotspot has been created, media application <NUM> of user interface <NUM> (or a component of media application <NUM>, such as media presentation system sharing module <NUM>), in some implementations, is updated to indicate that a hotspot has been created for speaker <NUM>-<NUM> (e.g., media application <NUM> removes the hotspot activation affordance <NUM> corresponding to speaker <NUM>-<NUM> and displays an active hotspot indicator <NUM> (e.g., a highlighted button with the text "Sharing"), as shown in <FIG>). In some implementations, media application <NUM>, as displayed on user interface <NUM>, also includes a share-all affordance <NUM> that allows the first user to create a hotspot for all of the first user's available media presentation systems. In some implementations, if the first user selects (e.g., taps on) the displayed "Share All" affordance <NUM> then client device <NUM>-<NUM> (or in some implementations media content server <NUM>) creates a hotspot that includes all of the first user's available media presentation systems (e.g., the hotspot and the associated token that permits access to the hotspot, in this example, would correspond to speaker <NUM>-<NUM>, television <NUM>-<NUM>, DVD <NUM>-<NUM>, and media presentation system <NUM>-n).

Turning now to <FIG> and continuing with the specific example, after the first user creates a hotspot, other users are able to use the media presentation systems associated with the first user's created hotspot. For example, after the first user creates a hotspot including speaker <NUM>-<NUM>, then when another user (e.g., a second user of client device <NUM>-<NUM>) accesses media application <NUM> of client device <NUM>-<NUM>, the displayed interface (e.g., on user interface <NUM> of client device <NUM>-<NUM>) includes a join hotspot affordance <NUM> corresponding to another user's media presentation system(s) (e.g., user <NUM>'s speaker <NUM>-<NUM>, as pictured in <FIG>). In some implementations, the join hotspot affordance <NUM> is not associated with a single media presentation system, but is instead associated with all of the media presentation systems associated with a user (e.g., if the hotspot associated with join hotspot affordance <NUM> was created using a share-all affordance (such as share-all affordance <NUM>, <FIG>), then instead of displaying "User <NUM>'s Speaker <NUM>-<NUM>," the descriptive text next to the join hotspot affordance <NUM> displays, for example, "User <NUM>'s Hotspot" or "Share Control of all of User <NUM>'s Media Presentation Systems"). In some implementations, the client device <NUM>-<NUM> transmits (e.g., broadcasts) a message indicating availability of the created hotspot and the client device <NUM>-<NUM> detects the created hotspot (or the transmitted message) through a wireless networking technology (e.g., Bluetooth, Bluetooth Low Energy, WiFi, Multicast DNS, or Apple Multipeer connectivity). After the client device <NUM>-<NUM> detects the created hotspot, in some implementations, the user interface <NUM> of client device <NUM>-<NUM> is updated (e.g., by user interface module <NUM>) to display the join hotspot affordance <NUM> (e.g., within media application <NUM>). Alternatively, the client device <NUM>-<NUM>, in some implementations, displays a QR code associated with the created hotspot on the user interface <NUM> of client device <NUM>-<NUM> and the client device <NUM>-<NUM> scans the code in order to receive the authentication token (e.g., as described in more detail with respect to <FIG>) and begin using the media presentation system (e.g., speaker <NUM>-<NUM>).

The second user of client device <NUM>-<NUM> is able to select (e.g., tap on) the join hotspot affordance <NUM> in order to send a request to client device <NUM>-<NUM>, media content server <NUM>, or some other device responsible for managing requests to join hotspots. In some implementations, as discussed in more detail with reference to <FIG>, the request is sent to client device <NUM>-<NUM> and, after a user of client device <NUM>-<NUM> approves the request to join the hotspot, client device <NUM>-<NUM> sends an authentication token to client device <NUM>-<NUM>. After receiving the authentication token, in some implementations, the client device <NUM>-<NUM> is able to use the media presentation system(s) associated with the hotspot (e.g., client device <NUM>-<NUM> is able to send media control requests including the authentication token to media content server <NUM>, and then media content server <NUM> generates a command corresponding to the media control request which is then sent to speaker <NUM>-<NUM>).

In some implementations, the server system receives (<NUM>) from the first electronic device one or more access-control settings corresponding to the media presentation system. The one or more access-control settings specify access limitations for the one or more other electronic devices with respect to the media presentation system. The one or more access control settings may include restrictions on changing audio output parameters (e.g., volume, bass, or equalizer settings), turning off the media presentation system, or restrictions on sending certain types of media content to the media presentation system (e.g., media items containing vulgar content). For example, the one or more access-control settings may prohibit the one or more other electronic devices from shutting off the media presentation system, adjusting volume of the media presentation system beyond a predefined threshold volume, and/or violating restrictions on media content (e.g., playing media content with vulgar language, etc.). The one or more access-control settings, in some implementations, are selected by the first user of the first electronic device. In some implementations, as part of creating the hotspot, the first user of the first electronic device selects the one or more access-control settings from a menu that is displayed (on user interface <NUM> of client device <NUM>) by the media presentation sharing module <NUM> of media application <NUM> (<FIG>). In some implementations, the access-control settings are selected before the first user creates a hotspot for media control at the media presentation system (e.g., the access-control settings could be selected automatically by media application <NUM> based on a usage pattern associated with the first user). In some embodiments, the access-control settings are determined by the server system (e.g., based on a usage pattern associated with the first user).

In some implementations, the server system sends (<NUM>), to the first electronic device, an authentication token for the media presentation system (e.g., token generating module <NUM> of authentication module <NUM> generates a unique authentication token for the media presentation system that is then sent to the first electronic device). In some implementations, sending the authentication token to the first electronic device is performed in response to the request to indicate availability of the media presentation system for use by the one or more other electronic devices (<NUM>). Alternatively, the authentication token was previously sent to the first electronic device (e.g., during the authorization <NUM>). The first electronic device (e.g., client device <NUM>-<NUM>) generates the authentication token (e.g., using authentication module <NUM>) for the media presentation system and sends the authentication token to the media content server <NUM> for storage in authentication data structure <NUM>.

Referring now to <FIG>, in some implementations, the server system receives (<NUM>), from a second electronic device (e.g., client device <NUM>-<NUM> of <FIG>), a media control request including the authentication token, wherein the second electronic device is one of the one or more other electronic devices. The second electronic device received the authentication token from the first electronic device after requesting access to the media presentation system (i.e., after requesting access to the hotspot). The authentication token is transmitted from the first electronic device to the second electronic device using, for example, a website link, a social-networking link, Quick Response (QR) codes, Bluetooth, Wireless Fidelity (WiFi), Multicast DNS (mDNS), or Apple Multipeer Connectivity.

In some implementations, prior to transmitting the authentication token from the first electronic device to the second electronic device, the first user of the first electronic device approves requests from the one or more other electronic devices (e.g., the second electronic device) to access the media presentation system. For example, the second electronic device transmits a request to the first electronic device, which the first user accepts or denies. Approving requests, in some implementations, may include granting each device a different level of access to the media presentation system and/or defining access-control settings applicable for each approved device/ request.

The media control request may include (<NUM>) a request to perform one of the following functions at the media presentation system: modify audio output parameters, play a song, play a video, play all songs within a playlist, play a movie, or modify video output parameters. In some implementations, audio output parameters include volume, bass, treble, equalizer settings (for various frequency ranges), settings for transitioning between songs, and others. In some implementations, video output parameters include refresh rate, aspect ratio, resolution, brightness, contrast, and others.

In some implementations, the server system verifies (<NUM>) that one or more access criteria are satisfied. More specifically, in some implementations, the server system verifies one or more of the following: <NUM>) verifies (<NUM>) that the media control request complies with the received one or more access-control settings; <NUM>) verifies (<NUM>) that the second electronic device is within a predefined distance of the first electronic device (or within a predefined region that includes the first electronic device); and <NUM>) verifies (<NUM>) that the second electronic device is within a predefined (e.g., a threshold) distance of the media presentation system (or within a predefined region that includes the media presentation system). In some implementations, the command corresponding to the media control request is sent (<NUM>, below) in response to satisfying one or more of the above verifications.

In some implementations, the predefined distance used in the above verifications is defined by the first user of the first electronic device. In some implementations, a default value for the predefined distance is retrieved by the server system. In some implementations, the server system retrieves the default value for the predefined distance and modifies the default value in accordance with a usage pattern associated with the first user (e.g., based on distances between the first electronic device and other electronic devices that previously connected to the media presentation system or based on distances between the media presentation system and other electronic devices that previously connected to the media presentation system).

Any device or combination of devices can be used to determine whether the first electronic device (e.g., client device <NUM>-<NUM>) and the second electronic device (e.g., client device <NUM>-<NUM>) are within the predefined distance of one another. For example, in some implementations, the first electronic device and the second electronic device each send their respective location information to the media content server <NUM>, and the media content server <NUM> determines whether the first electronic device and the second electronic are within the predefined distance (e.g., within <NUM>, <NUM>, <NUM>, or <NUM> feet, or any other appropriate distance) of one another.

In other implementations, the first electronic device and the second electronic device communicate with one another to determine whether they are within the predefined distance of one another. Once it is determined, by either device, that they are within the predefined distance of one another, the second electronic device is then able to send media control requests to the media presentation system (these media control requests, in some implementations, are sent to the media content server <NUM> and the media content server <NUM> then sends a command corresponding to the media control request to the media presentation system).

In some implementations, the communication between the first electronic device and the second electronic includes one or both devices exchanging location information (e.g., based on GPS coordinates, triangulation in accordance with wireless signal strengths, or the like). Accordingly, the devices determine their relative proximity (and, thus, whether they are within the predefined distance) based on their detected geographic locations.

Referring now to <FIG>, in some implementations, the server system, in accordance with a determination (e.g., by the server system) that the authentication token permits access to the media presentation system, sends (<NUM>) a command corresponding to the media control request to the media presentation system. In some implementations, the media request processing module <NUM> of media content server <NUM> receives the media control request and then determines, selects, or generates a command corresponding to the media control request.

The determination that the authentication token permits access to the media presentation system, in some implementations, includes verifying (<NUM>) that the token is valid and verifying that the first electronic device is authorized to control the media presentation system. In some implementations, the server system adds (<NUM>) the command to a queue of pending commands for the media presentation system.

In some implementations, the queue of pending commands is maintained and managed by the media content server <NUM>. In alternative implementations, the queue is maintained and managed by the first electronic device, and in still other implementations, the queue is maintained and managed by the media presentation system. In some implementations, the media content server <NUM> determines which device is capable of managing and maintaining the queue (e.g., based on bandwidth constraints, CPU resources available, etc). In yet other implementations, the queue of pending commands is jointly maintained and managed by the media content server <NUM>, the first electronic device, and the media presentation system (e.g., portions of the queue are managed and maintained by each device).

In some implementations, the server system sends (<NUM>) at least a portion of a media item to the media presentation system. The media item is identified in accordance with activity of the second user on the second device but is not requested in the media control request. In some implementations, the portion of the media item is sent after the second user of the second electronic device hovers over (e.g., with a touch-based gesture, a stylus, or with a cursor) the media item for more than a predefined amount of time (e.g., <NUM> seconds, <NUM> seconds, etc.). For example, the media content server <NUM> (or, alternatively the second electronic device) determines or is informed that the second user of the second electronic device is likely to select a particular media item for playback (e.g., based on a determination that the second user has been browsing the particular media item for more than a threshold amount of time), and, in response, sends at least a portion (e.g., a pre-fetched, cached portion, or preview portion) of the particular media item to the media presentation system. In some implementations in which the media presentation includes a plurality of media presentation systems (e.g., because a user created a hotspot using share-all affordance <NUM>, <FIG>), then the portion of the particular media item is sent to each respective media presentation system within the plurality of media presentation systems. Accordingly, in some implementations, user behavior and/or interactions with client device <NUM> (e.g., the second electronic device) cause the media content server <NUM> to pre-fetch media content that may be played back at a later time and/or in response to another media control request (which may be generated without user input or in response to a user input). The prefetched content is sent to the media presentation system, where it is cached.

In some implementations, the server system invalidates (<NUM>) the authentication token after a predefined period of time (e.g., <NUM> hour, <NUM> hours, <NUM> day, <NUM> days, <NUM> week, etc.). The predefined period of time, in some implementations, is calculated (by media content server <NUM> or by client device <NUM>) based on usage history or stored preferences of a particular user (e.g., the first user of the first electronic device). For example, if a usage history (e.g., an additional field in media account data structure <NUM>) associated with the first user of the first electronic device indicates that the authentication token should expire within two hours (e.g., the usage history could be used to calculate an average length of time for the first user's social gatherings or an average or maximum amount of time that the first user has left a media control hotspot open for), then the predefined period of time is set as two hours. In other implementations, the predefined period of time is configured by the first user of the first electronic device (e.g., using an interface presented by the media presentation system sharing module <NUM> of media application <NUM>). Additionally, in some implementations, the first user of the first electronic device destroys a hotspot associated with the authentication token (e.g., by interacting with the media presentation sharing module <NUM> of media application <NUM>) and thus revokes sharing of a media presentation system (e.g., at the end of a party). For example, with reference to <FIG>, a tap by the first user on the "Sharing" button associated with the hotspot for speaker <NUM>-<NUM> destroys the hotspot and initiates the process for invalidating the authentication token associated with speaker <NUM>-<NUM> (e.g., the client device <NUM>-<NUM> sends a message to the media content server <NUM> indicating that the hotspot has been destroyed and, in response to receiving the message, the media content server <NUM> updates the "Is Valid?" field of an appropriate record in authentication data structure <NUM> to reflect invalidation of the authentication token).

In some implementations, the server system revokes authorization of the first electronic device to control the media presentation system and, in response to revoking authorization, invalidates the authentication token. For example, the account of the first user may expire or the first user may transfer ownership of the media presentation system. The server system will revoke authorization because the first user of the first electronic device is no longer associated with the media presentation system. In this example, after revoking authorization of the first electronic device to control the media presentation system, the server system also invalidates the authentication token (if the authentication token for the media presentation is still valid), in order to make sure that any other devices possessing the authentication token cannot continue to send media control requests to the transferred media presentation system.

After invalidating the authentication token (<NUM>), the server system performs one or more of the following: <NUM>) receives a media control request including the invalidated authentication token and forgoes sending a command corresponding to the media control request to the media presentation system; and <NUM>) the server system notifies (<NUM>) the first electronic device and the second electronic device that the access to the media presentation system is revoked.

Although some of various drawings illustrate a number of logical stages in a particular order, stages which are not order dependent may be reordered and other stages may be combined or broken out. Furthermore, in some implementations, some stages may be performed in parallel and/or simultaneously with other stages (e.g., operations <NUM>, <NUM>, and <NUM> in <FIG> may all be performed together or substantially in parallel). While some reordering or other groupings are specifically mentioned, others will be apparent to those of ordinary skill in the art, so the ordering and groupings presented herein are not an exhaustive list of alternatives. Moreover, it should be recognized that the stages could be implemented in hardware, firmware, software, or any combination thereof.

The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain the principles and their practical applications, to thereby enable others skilled in the art to best utilize the implementations and various implementations with various modifications as are suited to the particular use contemplated within the scope of the appended claims.

The technology described in this disclosure thus encompasses without limitation the following numbered example embodiments (E). It should be appreciated that the numbered example embodiments are listed for the purpose of facilitating the understanding of various aspects and embodiments of this disclosure. The numbered example embodiments are not claims that define the scope of protection conferred. The appended claims of the disclosure define the invention and, accordingly, the scope of protection conferred.

A method of controlling media presentation, performed at a server system with one or more processors and memory storing instructions for execution by the one or more processors, the method comprising:.

The method of embodiment E1, wherein the media presentation system comprises a speaker, a plurality of speakers, a television, a digital versatile disc (DVD) player, a personal computing device, a wireless music streaming device, or a television media streaming device.

The method of embodiment E1, wherein the determination that the authentication token permits access to the media presentation system includes verifying that the token is valid and verifying that the first electronic device is authorized to control the media presentation system.

The method of embodiment E1, further comprising invalidating the authentication token after a predefined period of time.

The method of embodiment E4, further comprising after invalidating the authentication token, receiving a media control request including the invalidated authentication token and forgoing sending a command corresponding to the media control request that includes the authentication token to the media presentation system.

The method of embodiment E4, further comprising after invalidating the authentication token, notifying the first electronic device and the second electronic device that the access to the media presentation system is revoked.

The method of embodiment E1, further comprising revoking authorization of the first electronic device to control the media presentation system and, in response to revoking authorization, invalidating the authentication token.

The method of embodiment E1, wherein sending the command corresponding to the media control request comprises adding the command to a queue of pending commands for the media presentation system.

The method of embodiment E1, further comprising, after the determination that the authentication token permits access to the media presentation system, sending a portion of a media item to the media presentation system, wherein the media item is identified in accordance with activity of a second user on the second electronic device but is not requested in the media control request.

The method of embodiment E1, wherein receiving the request to indicate availability of the media presentation system for use by the one or more other electronic devices includes receiving one or more access-control settings corresponding to the media presentation system, wherein the one or more access-control settings specify access limitations for the one or more other electronic devices with respect to the media presentation system.

The method of embodiment E10, further comprising verifying, before sending the command corresponding to the media control request, that the media control request complies with the received one or more access-control settings.

The method of embodiment E1, further comprising verifying, before sending the command corresponding to the media control request to the media presentation system, that the second electronic device is within a predefined distance of the first electronic device, wherein the command is sent in response to the verifying.

The method of embodiment E1, further comprising verifying, before sending the command corresponding to the media control request to the media presentation system, that the second electronic device is within a predefined distance of the media presentation system, wherein the command is sent in response to the verifying.

The method of embodiment E1, wherein the media control request comprises a request to perform one of the following functions at the media presentation system: modify audio output parameters, play a song, play a video, play all songs within a playlist, play a movie, or modify video output parameters.

The method of embodiment E1, wherein the received request to indicate availability of the media presentation system for use by the one or more other electronic devices is sent by the first electronic device after receiving user input requesting to indicate availability of the media presentation system for use by the one or more other electronic devices.

The method of embodiment E15, wherein the first electronic device sends the authentication token to the second electronic device in response to a request from the second electronic device for access to the media presentation system.

A server system for controlling media presentation, comprising:.

A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a server system, the one or more programs comprising instructions for:.

A method of controlling media presentation at a media presentation system, the method being performed by a server system which is distinct from the media presentation system, wherein the server system comprises one or more processors and memory storing instructions for execution by the one or more processors, and the method comprising:.

The method according to embodiment E19, further comprising, prior to sending (<NUM>) the command corresponding to the media control request to the media presentation system:
verifying (<NUM>) that one or more access criteria are satisfied.

The method according to embodiment E20, wherein the command is sent (<NUM>) in response to satisfying the one or more access criteria.

The method according to embodiment E20 or E21, comprising:.

The method according to any one of the embodiments E20-E22, comprising:
verifying (<NUM>) that that the second electronic device is within a predefined distance of the first electronic device.

The method according to any one of the embodiments E20-E23, comprising:
verifying (<NUM>) that the second electronic device is within a predefined distance of the media presentation system.

The method according to embodiment E23 or E24, comprising:
retrieving a default value for the predefined distance.

The method according to embodiment E25, further comprising:
modifying the default value in accordance with a usage pattern based on distances between the first electronic device and other electronic devices that previously connected to the media presentation system.

The method according to embodiment E25, further comprising:
modifying the default value in accordance with a usage pattern based on distances between the media presentation system and other electronic devices that previously connected to the media presentation system.

The method according to any one of the embodiments E23-E27, comprising:.

The method according to any one of the embodiments E23-E27, comprising:.

The method according to any one of the embodiments E19-E29, further comprising:.

The method according to embodiment E30, further comprising, after invalidating (<NUM>) the authentication token: notifying (<NUM>) the first electronic device and the second electronic device that the access to the media presentation system is revoked.

The method according to any one of the embodiments E19-E31, further comprising revoking authorization of the first electronic device to control the media presentation system and, in response to revoking authorization, invalidating the authentication token.

A server system for controlling media presentation, comprising:.

A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a server system, the one or more programs comprising instructions for performing the method according to any one of the embodiments E19-E33.

A method of controlling media presentation at a media presentation system, the method being performed by a first electronic device which is distinct from the media presentation system and a server system, wherein the first electronic device comprises one or more processors and memory storing instructions for execution by the one or more processors, and wherein the method comprises:.

The method according to embodiment E35, wherein the first electronic device is authorized to control the media presentation system.

The method according to embodiment E36, comprising receiving authorization, from the server system, to control the media presentation system.

The method according to any one of the embodiments E35-E37, wherein transmitting the request to indicate availability of the media presentation system for use by one or more other electronic devices occurs after receiving user input at the first electronic device requesting to indicate availability of the media presentation system for use by the one or more other electronic devices.

The method according to embodiment E38, wherein receiving user input comprises receiving user input in the form of a user selection of an affordance displayed at a user interface of the first electronic device.

The method according to embodiment E39, wherein the affordance contains text indicating that selecting the affordance will create a hotspot for media control that will allow other electronic devices to use the media presentation system.

The method according to embodiment E39 or E40, wherein the affordance is an icon or a slide bar, a "share" button, or a hotspot activation affordance.

A first electronic device, comprising:
one or more processors; and
memory storing one or more programs, which when executed by the one or more processors cause the first electronic device to perform the method according to any one of the embodiments E35-E41.

A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a first electronic device, the one or more programs comprising instructions for performing the method according to any one of the embodiments E35-E41.

A method of controlling media presentation at a media presentation system, the method being performed by a second electronic device of one or more electronic devices which are distinct from the media presentation system and a server system, wherein the second electronic device comprises one or more processors and memory storing instructions for execution by the one or more processors, and wherein the method comprises:.

The method according to embodiment E44, wherein transmitting the second media control request occurs in response to determination by either the first electronic device or the second electronic device that the first and second electronic devices are within a predefined distance of one another.

A second electronic device, comprising:.

A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a second electronic device, the one or more programs comprising instructions for performing the method according to embodiment E44 or E45.

A method performed by a first client device, comprising:.

The method according to embodiment E48, comprising:
receiving the first authentication token from the server system.

The method according to embodiment E49, comprising:
receiving the first authentication token in response to the first user input.

The method according to embodiment E48, comprising:
generating the first authentication token.

The method according to embodiment E48, comprising:
in response to detecting the first user input, updating a media-application user interface of the first client device to indicate that the first media presentation system is available for use by the one or more other client devices.

The method according to embodiment E48, wherein the first user input specifies one or more access-control settings corresponding to the first media presentation system, and wherein the one or more access-control settings specify access limitations for the one or more other client devices with respect to the first media presentation system.

The method according to embodiment E48, comprising:.

The method according to embodiment E48, comprising:.

The method according to embodiment E55, comprising:
sending a message to a server system indicating that the first media presentation system is no longer available for use by the one or more other client devices.

The method according to embodiment E48, comprising:
specifying a period of time after which the first authentication token is to expire.

The method according to embodiment E48, comprising:
initiating invalidation of the first authentication token.

The method according to embodiment E58, comprising:
after initiating invalidation of the first authentication token, notifying the second client device that access to the first media presentation system is revoked.

The method according to embodiment E48, wherein the media control request is a first media control request and the method comprises:.

The method according to embodiment E48, wherein the media control request comprises a request to perform one of the following functions at the first media presentation system: modify audio output parameters, play a song, play a video, play all songs within a playlist, play a movie, or modify video output parameters.

The method according to embodiment E48, comprising:
broadcasting the indication of availability.

A non-transitory computer-readable storage medium, storing one or more programs configured for execution by one or more processors of a second electronic device, the one or more programs comprising instructions for performing the method according to any one of the embodiments E48-E62.

Claim 1:
A method of controlling media presentation at a media presentation system, the method being performed by a server system which is distinct from the media presentation system, wherein the server system comprises one or more processors and memory storing instructions for execution by the one or more processors, and the method comprising:
authorizing (<NUM>) a first electronic device associated with a first user to control the media presentation system;
receiving (<NUM>), from the first electronic device, an authentication token for the media presentation system, wherein the authentication token is generated by the first electronic device;
receiving (<NUM>), from a second electronic device that received the authentication token from the first electronic device in response to a request from the second electronic device for access to the media presentation system, a media control request including the authentication token; and
in accordance with a determination that the authentication token permits access to the media presentation system, sending (<NUM>) a command corresponding to the media control request to the media presentation system.