Systems and methods of associating media content with contexts

Systems, devices, apparatuses, components, methods, and techniques for saving media content to a context for later playback are provided. An example media-playback device for identifying and playing media content for a user traveling in a vehicle includes a context detecting device, a context-driven playback engine, and a media playback engine. Contexts are established by parameters that can be detected by a media-playback device. Contexts are situations that are defined by one or more locations, times, events, activities, people, and devices. Media content is saved to the contexts for later playback. The contexts are detected by the context detecting device, the associated media content is identified by the context-driven playback engine, and the media content is automatically played through the media playback engine, without additional input required by the user.

BACKGROUND

Many people enjoy consuming media content while travelling, exercising, or during other activities. The media content can include audio content, video content, or other types of media content. Examples of audio content include songs, albums, podcasts, audiobooks, etc. Examples of video content include movies, music videos, television episodes, etc. Using a mobile phone or other media-playback device, such as a vehicle-integrated media playback device, a person can access large catalogs of media content. For example, a user can access an almost limitless catalog of media content through various free and subscription-based streaming services. Additionally, a user can store a large catalog of media content on his or her mobile device.

This nearly limitless access to media content introduces new challenges for users. Users often have different listening preferences depending on when or where they are listening to media content or based on which activity they are engaged in at the time. Additionally, users may discover or receive new media content that they wish to listen to at a later time. However, it is difficult to save that media content in such a way as to be able to access the media content for listening at a time that would be most appropriate or desirable for that user.

SUMMARY

In general terms, this disclosure is directed to saved media content for playback in a particular context or situation. In one possible configuration and by non-limiting example, a media-playback device is configured to save media content to a context and later detect that context and automatically play the saved media content. Various aspects are described in this disclosure, which include, but are not limited to, the following aspects.

In one aspect, a media playback device comprises: a context determining device; a content output device; a processing device; a memory device encoding instructions that, when executed by the processing device, cause the media playback device to: receive a selection of media content, receive a selection of a context for playback of the media content, detect an occurrence of the context, and automatically play the saved media content after detecting the occurrence of the context.

In another aspect, a method of saving media content to a context for later playback on a media playback device comprises: receiving a selection of media content to save for later playback; receiving a selection of a context in which the media content will be played; detecting that the media playback device is in the selected context; and automatically playing the saved media content after detecting that the media playback device is in the selected context.

In yet another aspect, a system for saving media content to a context comprises: a mobile media playback device comprising a processing device and a memory device, the memory device storing a context application configured to receive inputs to link media content identifiers to a context for playback, record links made between contexts and the media content identifiers, and access the media content items identified by the media content identifiers when determined that the mobile media playback device is in the context for playback; and a media server comprising a processing device and a memory device, the memory device of the server storing an application configured to access the media content from a media content database and communicate the related media content to a mobile device.

In another aspect, one or more computer-readable media have computer-executable instructions embodied thereon that, when executed by one or more computing devices, cause the computing devices to: receive a selection of a first media content item; present to a user a plurality of contexts for playback, the plurality of contexts for playback including a first context for playback; receive a selection of the first context for playback; associate the first media content item with the first context for playback; detect an occurrence of the first context for playback; and automatically play the first media content item after detecting the occurrence of the first context for playback.

DETAILED DESCRIPTION

Users of media-playback devices often consume different types of media content during various activities, at different times, and in different places. For example, one user might listen to jazz music during a morning commute in his car, classical music at work on his desktop computer, a sports podcast during the commute home in his car, rock music during a running workout on his headphones, and then fall asleep to nature sounds on speakers in his bedroom. Another user might wake up to pop music in her bedroom playing on Bluetooth speakers, listen to a news podcast on her headphones during a train commute while using a mobile device, listen to electronica music on her headphones using a laptop while studying during the day, then play a playlist for a birthday party that night through Bluetooth speakers in her living room. There are a multitude of different ways to experience media content and most people have different preferences for consuming media content depending on the situation.

It can be a challenge for users to quickly find and select the type of media content that they wish to consume at a given moment. For example, when a user finds new media content or is sent new media content, he or she may not wish to consume the media content at that particular time. For example, a user may be introduced to a new podcast while he is at work, but may wish to listen to the podcast on his commute home instead. Similarly, a user might discover a new artist that she likes and wants to be able to listen to that artist whenever she is running. It is desirable for users to be able to save media content for later playback in a more appropriate context or situation.

Embodiments disclosed herein address the challenges associated with finding, saving, and later playing back particular media content in the desired context for a user. In many instances, the media content is music content that is streamed on a media-playback device for a user to listen to. The media-playback device could be a mobile device or other computing device.

For example, in some embodiments, the media-playback device includes a context-driven playback engine. This context-driven playback engine can be useful to a user who receives or discovers new media content that the user wishes to listen to at a later time in a particular context. The context-driven playback engine allows the user to label or save the media content to a particular context so that the media content will automatically play for the user when the user in that particular context. For example, the user may save an album of music that the user finds while browsing at night that he or she wishes to listen to during his or her morning commute the next day. He or she could save the media content to the context of “driving” and the album will automatically play when the user is driving in his or her car the next day.

Consuming media content may include one or more of listening to audio content, watching video content, or consuming other types of media content. For ease of explanation, the embodiments described in this application are presented using specific examples. For example, audio content (and in particular music) is described as an example of one form of media consumption. However, it should be understood that the same concepts are similarly applicable to other forms of media consumption.

FIG. 1illustrates an example media-playback system100for saving media content to a context for later playback. The example system100includes a media-playback device102being used by the user U. The media-playback device102includes a context-driven playback engine108and a user interface112. In the scene on the left, the user U has found a song that he or she wishes to save for later playback. By selecting the drive icon114, the user U saves the song to be played later in the user's vehicle V.

The dotted line104with the clock dividing the figure signifies the passage of time. The amount of time that passes between the scene on the left where the user is saving media content and the scene on the right where the user is playing back the saved media content could be any length of time. In some embodiments, the amount of time that passes is from 1 second to 10 years, from 5 seconds to 1 year, from 10 seconds to 1 month, from 30 seconds to 1 week, from 1 minute to 1 day, from 5 minutes to 10 hours, from 10 minutes to 2 hours, or from 15 minutes to 45 minutes. In some embodiments the length of time is greater than 1 minute, 5 minutes, or 1 hour.

The media-playback device102plays back media content items to produce media output110. In some embodiments, such as the example shown in the scene on the right inFIG. 1, the media output110is played through another device such as vehicle-media playback system116that utilizes a wireless connection to communicate with the media-playback device102. A media content item is an item of media content, including audio, video, or other types of media content, which may be stored in any format suitable for storing media content. Non-limiting examples of media content items include songs, albums, audiobooks, music videos, movies, television episodes, podcasts, other types of audio or video content, and portions or combinations thereof.

The media-playback device102plays media content for the user during various situations. The media content that is played back may be selected based on user input or may be selected without user input. The media content may be selected for playback with the aid of the context-driven playback engine108or by user selection. Although the media-playback device102is shown as a separate device inFIG. 1, the media-playback device102can also be integrated with the vehicle V (e.g., as part of a dash-mounted vehicle infotainment system).

A user interface112is generated for selecting and playing back media content items. In at least some embodiments, such as that shown in the scene on the left, the user interface112allows a user U to prompt the context-driven playback engine108to save media content for playback in particular contexts. The context-driven playback engine108then functions to recognize when the media-playback device102is in a particular context, such as a driving context as shown in the scene at the right. Upon detecting the driving context, the context-driven playback engine108causes the media-playback device102to play the saved media content as media output110.

FIG. 2is a schematic illustration of the example media-playback system100ofFIG. 1. InFIG. 2, the media-playback device102, a media-delivery system104, and a network106are shown. Also shown are the user U and satellites S. The media-playback device102communicates with the media-delivery system104through the network106.

As noted above, the media-playback device102plays media content items. In some embodiments, the media-playback device102plays media content items that are provided (e.g., streamed, transmitted, etc.) by a system external to the media-playback device102such as the media-delivery system104, another system, or a peer device. Alternatively, in some embodiments, the media-playback device102plays media content items stored locally on the media-playback device102. Further, in at least some embodiments, the media-playback device102plays media content items that are stored locally as well as media content items provided by other systems.

In some embodiments, the media-playback device102is a computing device, handheld entertainment device, smartphone, tablet, watch, wearable device, or any other type of device capable of playing media content. In yet other embodiments, the media-playback device102is an in-dash vehicle computer, laptop computer, desktop computer, television, gaming console, set-top box, network appliance, Blu-Ray™ or DVD player, media player, stereo, or radio.

In at least some embodiments, the media-playback device102includes a location-determining device150, a touch screen152, a processing device154, a memory device156, a content output device158, a movement-detecting device160, a network access device162, a sound-sensing device164, and an optical-sensing device166. Other embodiments may include additional, different, or fewer components.

The location-determining device150is a device that determines the location of the media-playback device102. In some embodiments, the location-determining device150uses one or more of the following technologies: Global Positioning System (GPS) technology which may receive GPS signals174from satellites S, cellular triangulation technology, network-based location identification technology, Wi-Fi positioning systems technology, and combinations thereof. The location-determining device150may detect a context in instances where a physical location is used to describe a particular context. For example, in some embodiments, a context may have a particular geographic location associated with the context such as a particular address.

The touch screen152operates to receive an input176from a selector (e.g., a finger, stylus, etc.) controlled by the user U. In some embodiments, the touch screen152operates as both a display device and a user input device. In some embodiments, the touch screen152detects inputs based on one or both of touches and near-touches. In some embodiments, the touch screen152displays a user interface112for interacting with the media-playback device102. In some embodiments, inputs received through the touch screen152are utilized to detect a context. For example, user input may be utilized to distinguish between two different contexts that otherwise have the same criteria for detection. In other embodiments, user input through the user interface112may be the only criteria for a context. Some embodiments do not include a touch screen152. Some embodiments include a display device and one or more separate user interface devices. Further, some embodiments do not include a display device.

In some embodiments, the processing device154comprises one or more central processing units (CPU). In other embodiments, the processing device154additionally or alternatively includes one or more digital signal processors, field-programmable gate arrays, or other electronic circuits. The processing device154executes instructions stored in the memory device156.

The memory device156operates to store data and instructions. In some embodiments, the memory device156encodes instructions for a media-playback engine170that includes the context-driven playback engine108. In some embodiments, the media-playback engine170selects and plays back media content and generates interfaces for selecting and playing back media content items. In some embodiments, the media-playback engine170works with the context-driven playback engine108to select and play media content items. As described above, the context-driven playback engine108saves media content to particular contexts and initiates playback of saved media content through the media-playback engine170when the media-playback device102has detected the desired context.

In at least some embodiments, the context-driven playback engine108saves media content to play back later in a particular situation. The user U selects one or more media content items to save and selects a particular context in which the user U wishes to access the media content later. The context-driven playback engine108detects when the media-playback device102is in a particular context by using the context-detecting device171. The context-detecting device171may utilize input received through one or more of the location-determining device150, touch screen152, movement-detecting device158, network access device162, sound-sensing device164, and optical-sensing device166to determine that the media-playback device102is in a particular context. Upon detecting a context, the context-driven playback engine108initiates playback of the saved media content automatically. No additional interaction from the user U is required to play the media content. The context-driven playback engine108may access the media content from the media-delivery system104which is then played by the media-playback engine170.

Some embodiments of the memory device also include a media content cache172. The media content cache172stores media-content items, such as media content items that have been previously received from the media-delivery system104. The media content items stored in the media content cache172may be stored in an encrypted or unencrypted format. The media content cache172can also store decryption keys for some or all of the media content items that are stored in an encrypted format. The media content cache172can also store metadata about media-content items such as title, artist name, album name, length, genre, mood, era, etc. The media content cache172can also store playback information about the media content items, such as the number of times the user has requested to playback the media content item or the current location of playback (e.g., when the media content item is an audiobook, podcast, or the like for which a user may wish to resume playback).

The memory device156typically includes at least some form of computer-readable media. Computer readable media includes any available media that can be accessed by the media-playback device102. By way of example, computer-readable media include computer readable storage media and computer readable communication media.

The content output device158operates to output media content110. In some embodiments, the content output device158generates media output110for the user U. In some embodiments, the media output110is directed into an interior cabin of the vehicle V. Examples of the content output device158include a speaker assembly comprising one or more speakers, an audio output jack, a Bluetooth transmitter, a display panel, and a video output jack. Other embodiments are possible as well. For example, the content output device158may transmit a signal through the audio output jack or Bluetooth transmitter that can be used to reproduce an audio signal by a connected or paired device such as headphones, speaker system, or vehicle head unit.

The movement-detecting device160senses movement of the media-playback device102. In some embodiments, the movement-detecting device160also determines an orientation of the media-playback device102. In at least some embodiments, the movement-detecting device160includes one or more accelerometers or other motion-detecting technologies or orientation-detecting technologies. As an example, the movement-detecting device160may determine an orientation of the media-playback device102with respect to a primary direction of gravitational acceleration. The movement-detecting device160may detect changes in the determined orientation and interpret those changes as indicating movement of the media-playback device102. The movement-detecting device160may also detect other types of acceleration of the media-playback device and interpret the acceleration as indicating movement of the media-playback device102too. Detection of movement could indicate that the user is traveling in a vehicle or engaging in physical activity such as running. Detection of particular movement can indicate that a user is in a particular context, in some embodiments.

The network access device162operates to communicate with other computing devices over one or more networks, such as the network106. Examples of the network access device162include one or more wired network interfaces and wireless network interfaces. Examples of wireless network interfaces include infrared, BLUETOOTH® wireless technology, 802.11a/b/g/n/ac, and cellular or other radio frequency interfaces. The network access device162can detect contexts by detecting particular networks or devices that can connect to the media-playback device. For example, the network access device162can detect Wi-fi networks or Bluetooth devices.

The network106is an electronic communication network that facilitates communication between the media-playback device102and the media-delivery system104. The media-playback device102can also communicate with other devices through the network106. An electronic communication network includes a set of computing devices and links between the computing devices. The computing devices in the network use the links to enable communication among the computing devices in the network. The network106can include routers, switches, mobile access points, bridges, hubs, intrusion detection devices, storage devices, standalone server devices, blade server devices, sensors, desktop computers, firewall devices, laptop computers, handheld computers, mobile telephones, vehicular computing devices, and other types of computing devices.

In various embodiments, the network106includes various types of links. For example, the network106can include wired and/or wireless links, including Bluetooth, ultra-wideband (UWB), 802.11, ZigBee, cellular, and other types of wireless links. Furthermore, in various embodiments, the network106is implemented at various scales. For example, the network106can be implemented as one or more vehicle are networks, local area networks (LANs), metropolitan area networks, subnets, wide area networks (such as the Internet), or can be implemented at another scale. Further, in some embodiments, the network106includes multiple networks, which may be of the same type or of multiple different types.

The sound-sensing device164senses sounds proximate the media-playback device102(e.g., ambient sounds within the environment in which the media-playback device102is located). In some embodiments, the sound-sensing device164comprises one or more microphones. For example, the sound-sensing device164may capture a recording of audio external to the media-playback device102that indicates the context of the device. For example, background sounds of the ocean can indicate that the media-playback device is in a beach context.

These recordings may also be analyzed by the media-playback device102using speech-recognition technology to identify words spoken by the user. The words may be recognized as commands from the user that alter the behavior of the media-playback device102and the playback of media content by the media-playback device102. The words and/or recordings may also be analyzed by the media-playback device102using natural language processing and/or intent-recognition technology to determine appropriate actions to take based on the spoken words. In some embodiments, recordings captured by the sound-sensing device164are transmitted to media-delivery system104(or another external server) for analysis using speech-recognition and/or intent-recognition technologies.

The optical-sensing device166senses optical signals proximate the media-playback device102. In some embodiments, the optical-sensing device166comprises one or more light sensors or cameras. For example, the optical-sensing device166may capture images or videos. The captured images can be processed (by the media-playback device102or an external server such as the media-delivery system104to which the images are transmitted) to detect gestures, which may then be interpreted as commands to change the playback of media content. Similarly, a light sensor can be used to determine various properties of the environment proximate the user computing device, such as the brightness and primary frequency (or color or warmth) of the light in the environment proximate the media-playback device102. These properties of the sensed light may then be used to infer whether the media-playback device102is in an indoor environment, an outdoor environment, a private vehicle, public transit, etc. In some embodiments, these inferences are used to detect if the media-playback device102is in a particular context.

The media-delivery system104comprises one or more computing devices and provides media content items to the media-playback device102and, in some embodiments, other media-playback devices as well. The media-delivery system104includes a media server180. AlthoughFIG. 2shows a single media server180, some embodiments include multiple media servers. In these embodiments, each of the multiple media servers may be identical or similar and may provide similar functionality (e.g., to provide greater capacity and redundancy, or to provide services from multiple geographic locations). Alternatively, in these embodiments, some of the multiple media servers may perform specialized functions to provide specialized services (e.g., services to enhance media content playback during travel or other activities, etc.). Various combinations thereof are possible as well.

The media server180transmits stream media218to media-playback devices such as the media-playback device102. In some embodiments, the media server180includes a media server application184, a media playback context application186, a processing device188, a memory device190, and a network access device192. The processing device188, memory device190, and network access device192may be similar to the processing device154, memory device156, and network access device162respectively, which have each been previously described.

In some embodiments, the media server application184streams music or other audio, video, or other forms of media content. The media server application184includes a media stream service194, a media data store196, and a media application interface198. The media stream service194operates to buffer media content such as media content items206,208, and210, for streaming to one or more streams200,202, and204.

The media application interface198can receive requests or other communication from media-playback devices or other systems, to retrieve media content items from the media server180. For example, inFIG. 2, the media application interface198receives communication234from the media playback engine170.

In some embodiments, the media data store196stores media content items212, media content metadata214, and playlists216. The media data store196may comprise one or more databases and file systems. As noted above, the media content items212may be audio, video, or any other type of media content, which may be stored in any format for storing media content.

The media content metadata214operates to provide various information associated with the media content items212. In some embodiments, the media content metadata214includes one or more of title, artist name, album name, length, genre, mood, era, etc. In some embodiments, the media content metadata214indicates whether a particular user likes a particular media content item212or whether that media content item212is similar to other media content items212that a particular user likes or dislikes. The playlists216operate to identify one or more of the media content items212and assemble them into a programmed list. In some embodiments, the playlists216identify a group of the media content items212in a particular order. In other embodiments, the playlists216merely identify a group of the media content items212without specifying a particular order. Some, but not necessarily all, of the media content items212included in a particular one of the playlists216are associated with a common characteristic such as a common genre, mood, or era. The playlists216may include user-created playlists, which may be available to a particular user, a group of users, or to the public.

The media playback context application186operates to record associations made between media content items and a context created by a user. In some embodiments, the context-driven playback engine108receives inputs from a user to establish the parameters for a context and communicates those parameters to the media context association engine220. The media context association engine220communicates the context parameters to the context data store222for storage. The context-driven playback engine108can also communicate inputs from a user to save one or more media content items to an established context. The media context association engine220receives these inputs and records the associations between the media content items and the contexts in the context data store222. The associations are recorded as metadata which links a media content item's identifying information with a tag or label for a particular context.

When a context is detected by the context-driven playback engine108, the inputs received at the context-detecting device171are communicated to the media context association engine220. The media context association engine220compares the inputs with the criteria stored in the context data store222. The context with the matching criteria is identified as the detected context. The corresponding media content associated with the context is identified. The media context association engine220then communicates with the media data store196to access the media content associated with the context. The media stream service194then communicates the media content back to the media-playback engine170for playback.

Each of the media-playback device102and the media-delivery system104can include additional physical computer or hardware resources. In at least some embodiments, the media-playback device102communicates with the media-delivery system104via the network106.

Although inFIG. 2only a single media-playback device102and media-delivery system104are shown, in accordance with some embodiments, the media-delivery system104can support the simultaneous use of multiple media-playback devices, and the media-playback device can simultaneously access media content from multiple media-delivery systems. Additionally, althoughFIG. 2illustrates a streaming media based system for media playback during travel, other embodiments are possible as well. For example, in some embodiments, the media-playback device102includes a media data store196and the media-playback device102is configured to select and playback media content items without accessing the media-delivery system104. Further, in some embodiments, the media-playback device102operates to store previously streamed media content items in a local media data store (e.g., the media content cache172).

FIG. 3illustrates an example method300of saving media content to a context and later playing back the saved media content in the detected context performed by some embodiments of the context-driven playback engine108. Such a method can be used, for example, when a user identifies media content that he or she wishes to consume at a later time in a particular situation. He or she can save the media content to a context using, for example, a media-playback device, such as the media-playback device102ofFIG. 1. Later, when the user and the media-playback device102are in the selected context, the context-driven playback engine108will detect the context and automatically initiate playback of the saved media content through the media-playback device102. In the example ofFIG. 1, the saved context is “driving,” so when the media-playback device102detects the Bluetooth connection to the vehicle media-playback system116, the saved media content is automatically played as media output110.

At operation302, parameters for the context are established. In some embodiments, a user can establish the parameters for a context in advance of saving media content. In other embodiments, the user can set up a new context upon finding media content that the user wishes to save. Parameters for the context are described further with respect toFIGS. 5-11and can include one or more locations, times, devices, people, activities, and events. The criteria may be automatically detected by the media-playback device102or may require some input from the user. This detection process is further described with respect toFIGS. 28-30.

At operation304, the media content is saved to a context. A user identifies media content that the user wishes to save for later playback. The user inputs which context to link or associate the media content identifying information with. The media content identifying information and the context information are recorded together to save the media content to the context. In some embodiments, the information is recorded in the context data store222of the media-delivery system104. In other embodiments, the information is recorded in the memory device156of the media-playback device102. This process is further described with respect toFIG. 23.

At operation306, the media content is automatically played upon detection of the context. The context-detecting device171of the media-playback device102detects the context based on the parameters established in operation302. In some embodiments, the context-driven playback engine108communicates the detected parameters to the media playback context application186to determine which media content to play. The media context association engine220references the detected parameters with the saved contexts in the context data store222and then communicates the identifying information for the corresponding media content to the media server application184which then streams the media content back to the media-playback engine170. The media content is automatically delivered to the user U as media output110without additional interaction from the user. This process is further described with respect toFIGS. 25-30.

FIG. 4illustrates an example method302of establishing criteria for a new context. At operation402, parameters are selected for the new context. The parameters define the way in which the context-driven playback engine108will establish that the media-playback device102is in a particular context. At operation404, input for the context description is received. The context description is used to distinguish between contexts for the purpose of saving and accessing contexts. At operation406the context is saved. The context parameters and description are stored either in the media-playback device102or the media-delivery system104. The method302ofFIG. 4is described in greater detail with respect toFIGS. 5-14).

FIG. 5illustrates an example method402of selecting parameters for a new context. At operation502, a command is received to establish a new context. In some embodiments, the media-playback device102receives input from the user U through the user interface112in the form of gestures or typing on the touch screen152. In the example shown inFIG. 6, the user U has opened a settings menu on the user interface112. The settings menu offers the option to edit an existing context by selecting the “Edit Contexts” button602or to establish a new context by selecting the “Add New Context” button604. The user U may provide inputs in other ways such as through a keyboard, a mouse, and a voice command. The command to establish a new context is communicated to the context-driven playback engine108by selecting “Add New Context”604.

At operation504, a prompt is displayed to select a parameter type for the context. In some embodiments, the context-drive playback engine108generates a prompt that is displayed to the user U on the user interface112. In the example shown inFIG. 7, the user interface112displays options for types of parameters including “Add Device”702, “Add Event”704, “Add Person”706, “Add Time”708, “Add Location”710, and “Add Activity”712. The parameter types categorize various criteria that may be utilized to detect and identify a particular context.

Devices include the media-playback device102as well as external devices to the media-playback device102that communicate with the media-playback device102through a wireless or wired connection. In some embodiments, the user can specify a particular media-playback device which the media content will be played from as a parameter for a context. For example, a user could establish one context for a mobile phone and a different context for a laptop computer, both of which function as media-playback devices. External devices may include speakers, headphones, vehicle media-playback systems, and other media-playback devices that connect to the media-playback device102through Bluetooth, Wi-Fi, and other wireless connections. The external devices can also connect to the media-playback device102through a wired connection.

Events are situations having a particular purpose and a particular date. In some embodiments, the events have a particular date and time. In some embodiments, the events may be defined by connecting to the user's online calendar. Examples of events can include birthday parties, holidays, dinner parties, and other events having a defined time and purpose. Selecting an event as a parameter for a context will provide date and time limitations on the context detection. In some embodiments, the event can have a defined location. Event parameters may be combined with other parameters to more accurately define a context.

Adding a person for context parameters limits playback of media content to when that person is nearby the media-playback device102. The parameters for determining when the person is present can include wireless or wired connections between the media-playback device102and a device operated by the person. In other embodiments, selecting a person as a parameter allows a user to save media content to listen to with the person and the context is detected by user input that indicates that the selected person is present.

Time parameters typically defined by selecting a time range. In some embodiments, only a start time is required. In some embodiments, the time can be a repeating occurrence on a daily, weekly, or monthly basis. For example, a context could be established for a single date and time in the future or to recur every date at a particular time. Time parameters can be combined with other parameters to more accurately define a context.

Location parameters are defined by inputting a particular location such as GPS coordinates or an address. In some embodiments, location is detected by GPS or other location-detecting means such as connections to particular Wi-Fi networks. For example, the media-playback device102can determine that you are in your home either by GPS or by detecting your home Wi-Fi connection.

Activities are particular movements or tasks that are taking place around the media-playback device102. Typically, the user is engaging in an activity that involves movement of some sort that can be detected by the media-playback device through the movement-detecting device160. In some embodiments, an accelerometer determines if the media-playback device102is moving in a certain way or at a certain speed. For example, the accelerometer can determine if the user is running or walking. In another example, the accelerometer can detect if the user is traveling in a vehicle to detect driving or commuting activities.

At operation506ofFIG. 5, a selection of a parameter type is received. In the example ofFIG. 7, the user selects “Add Device”702.

InFIG. 9, the user interface displays options for available Bluetooth devices that the media-playback device102has connections with. In this example, the possible options include “Sport Headphones”902, “Fitness Tracker”904, “Dining Room Speakers”906, and “Desk Speakers”908. The user selects “Dining Room Speakers”906to set up a device in the user's dining room by detecting its Bluetooth connection.

In some embodiments, the method402can loop back to operation504if additional parameters are desired to define the context. For example, as shown inFIG. 10, the user is prompted to provide another parameter type. Here, “Add Time”708is selected and the user interface112then prompts the user inFIG. 11to provide time parameters for the context. The user is prompted to enter a time range in which the context will be active.

FIG. 12illustrates an example method404of receiving input to describe a context that is performed by some embodiments of the context-driven playback engine108and the media playback context application186. At operation1202, a prompt is displayed to input a title and image for the context. In some embodiments, the prompt is displayed on the user interface112of the media-playback device102.FIG. 13shows one example of such a display.FIG. 13displays a title field1302and a plurality of images or icons1304are displayed for the user to choose from. In some embodiments, the icons1304are representative of activities and situations in which a user may desire to consumer particular media content. For example, a user may want an icon to represent showering, eating, lifting weights, drinking wine, a romantic situation, barbecuing, sailing, gaming, or biking, as represented by the icons1304inFIG. 13.

At operation1204, title input is received. In the example ofFIG. 13, the user has entered “Dining” to describe the context that was set up inFIGS. 6-11.

At operation1206, a selection of an image is received. In the example ofFIG. 13, the user selects the eating icon1306to represent the “Dining” context.

At operation1208, the completed context description is optionally displayed. In the example ofFIG. 14, the eating icon1306is displayed below the title1402, “Dining,” of the context. Also displayed are the first parameter1404and second parameter1406that were chosen for the context inFIGS. 6-11. In some embodiments, when media content has been added to the context, the media content identifying information may be displayed below the context description.

In some embodiments, the context description can be edited by selecting the context from a menu in a settings display, such as the settings display inFIG. 6. The user could select the “Edit Contexts” button602to change the criteria or description for existing contexts.

FIG. 15illustrates an example method304of saving media content to a context performed by some embodiments of the context-driven playback engine108. In some embodiments, the method is performed in conjunction with the media playback context application186.

At operation1502, a selection of media content to save is received. At operation1504, a selection of a context in which the media content is to be played later is received. At operation1506, the media content is saved to the context. The method304is described further with respect toFIGS. 16-23.

FIG. 16illustrates an example method1502of receiving a selection to save media content to a context. As was discussed earlier, selections can be received from a user through a user interface112displayed on a touch screen152. The media content can be an individual media content item such as a song or an episode of a podcast. The media content can also be a collection of media content items such as a playlist of songs, a genre of music, or a series of podcasts.

At operation1602, input is received from a user selecting media content. In the example ofFIG. 17, a user is browsing playlists within the mood of music titled “Chill.” Various playlists including “The Piano Bar” playlist1702are displayed on the user interface112of the media-playback device. The user can simply touch the image associated with “The Piano Bar” playlist1702to select the playlist.

At operation1604, options for further actions for the media content are displayed. In some embodiments, after the media content is selected, a menu will be displayed on the user interface112offering options of various actions that can be performed with the media content. In the example ofFIG. 18, options to “Save to Context”1802, “Download”1804, and “Share”1806the playlist “The Piano Bar” are displayed. Selecting “Save to Context”1802will result in options for selecting a context to be displayed, as described inFIG. 22. Selecting “Download”1804will download the media content items within the playlist to the memory device156of the media-playback device102. Selecting “Share”1806will prompt the user to choose a person to share the media content identifying information with.

At operation1606, a selection to save the media content to a context is received. The context-driven playback engine108receives the input from a user and communicates the media context association engine220to access information about available contexts from the context data store222.

FIGS. 19-20illustrate another example of selecting media content to save to a context.FIG. 19shows an example display of the user interface112when a song is being played on the media-playback device102. To select the media content item “String Quartet No. 8,” a user selects the song1902.

FIG. 20shows an example display of the user interface112after the song1902was selected. Options for further actions for the song1902are presented including “Save to Context”1802and “Add to Playlist”2004. By selecting “Save to Context”1802, the user interface112will proceed to the display described inFIG. 22. By selecting “Add to Playlist”2004, the user will then be prompted to choose an existing playlist to add the song to.

FIG. 21illustrates an example method1504of receiving a selection of a context in which media content will be played. At operation2102, context options are displayed.FIG. 22shows an example user interface112displaying options of contexts to which media content can be saved. In this example, various icons2202are displayed representing contexts such as “Driving,” “Running,” and “Studying.” Context options for people are displayed as names2204including “Jackson” and “Mom” in the example ofFIG. 22. An option to “Add New”2206context is also displayed. Selecting this option will initiate the method402described inFIGS. 5-14.

At operation2104, a selection of a context is received from the user. Upon receiving the selection, the context-driven playback engine108initiates the method1506described inFIG. 23.

FIG. 23illustrates an example method1506of saving media content to a context. In this method, the media content identifying information is saved in connection with the context information. In some embodiments, this information is saved at the media-playback device102in the memory device156. In other embodiments, the information is saved in the context data store222of the media-delivery system104.

At operation2302, the context selection is communicated. In some embodiments, the context selection is communicated from the context-driven playback engine108to the media context association engine220.

At operation2304, the information linking the selected media content to the selected context is stored. In some embodiments, the linking information is stored at the context data store222of the media-delivery system104. In other embodiments, the linking information is stored in the memory device156of the media-playback device. The linking information can be a tag or other metadata that labels the identifying information for one or more media content items to indicate their association with a particular context. In another embodiment, the links between media content and contexts can be recorded as lists associated with each context wherein the media content is listed according to its identifying information, such as a song ID.

FIG. 24illustrates an example method306of automatically playing saved media content upon detection of a context that is performed by some embodiments of the context-driven playback engine108. In some embodiments, a context is detected after a period of time has passed after saving media content to a context, as was described in relation toFIGS. 15-23. Preferably, playback of the saved media content initiates immediately and automatically upon detection of the context, based on the parameters established by a user.

At operation2402, context parameters are detected. At operation2402, the media content linked to the context is automatically played. This method is described further inFIGS. 25-30.

FIG. 25illustrates an example method2402of detecting parameters associated with a particular context. Parameters include external input that is received by the media-playback device102such as location, time, devices, and activities. These parameters are the same criteria that were established when the context was set up as was described with respect toFIGS. 4-14. In some embodiments, the context detecting device171operates in conjunction with one or more of the location-determining device150, touch screen152, movement-detecting device160, network access device162, sound-sensing device164, and optical-sensing device166to detect the context parameters established by the user.

At operation2502parameters of a context are detected. In the example ofFIG. 26, the user U and his or her media-playback device102, which in this example is a laptop computer, are at a desk. A pair of Bluetooth speakers2602are present and are detected by establishing a connection with the network access device162of the media-playback device102. Therefore, in this situation, the context parameter that is detected is the connection with the Bluetooth speakers2602. In some embodiments, one of the context parameters could be to determine which media-playback device the user U is using to play media content. In this example, the user U could have specified that when the user's laptop is being utilized to play media content and when the laptop is connected to the user's Bluetooth speakers, media content appropriate for the context of “Studying” should be played. In some embodiments, upon detecting the selected context, the user interface112displays a confirmation message2902. In the example ofFIG. 26the confirmation message2902reads “Desk Bluetooth Speakers Detected” to indicate that criteria for a context has been detected.

At operation2504, the detected parameters are communicated. In some embodiments, the parameters are communicated from the context-driven playback engine108to the media playback context application186.

At operation2506the context associated with the detected parameters is determined. In some embodiments, the detected parameters are communicated to the media context association engine220which compares the parameters with those stored in the context data store222. One or more matching contexts are identified.

At operation2508, the user is optionally prompted to provide input if more than one context matches the detected parameters. In some instances, the same context parameters may be provided for more than one context. For example, the parameter of detecting a home Wi-Fi connection could apply to a kitchen context or a bedroom context. In such instances, the user may be prompted to provide input to distinguish between the two contexts.

FIG. 27illustrates another example of the method2402of detecting parameters associated with a particular context. In this example, the user U is driving his or her vehicle V and his or her media-playback device102has connected to the vehicle media-playback system116via Bluetooth. Detecting the vehicle media-playback system116via Bluetooth as a context parameter leads the media context association engine220to determine that the user U and the media-playback device102are in the context of “Driving” by matching the parameter with contexts stored in the context data store222.

FIG. 28illustrates an example method2404of automatically playing media content linked to a context. At operation2802, media content linked to the detected context is determined. After determining which context the media-playback device102is in, the media context association engine220references the context data store222to determine which media content is associated with the context. In some embodiments, each context is associated with a list of media content identification information for media content items that the user previously saved to the context.

At operation2804, the media content identified in operation2802is streamed from the media server application184to the media-playback engine170. In some embodiments, the media stream service194is utilized to communicate stream media218through the network106to the media-playback engine170. In other embodiments, the media content is accessed from the media content cache172of the media-playback device102.

At operation2806the media content is played as media output. In some embodiments, the content output device158of the media-playback device102plays the media content as media output110for the user U to consume in the specified context. In the example ofFIG. 29, which follows in sequence fromFIG. 26, the user U is still at a desk with the laptop102. The user interface112indicates that media content for the context of “Studying”2902is being played through the Bluetooth speakers2602as media output110. The song “String Quartet No. 8,” which was saved inFIGS. 19-20is now being played in the preferred setting for the user U, which is for the activity of studying.

FIG. 30illustrates another example of the method2404of automatically playing media content linked to a context.FIG. 30follows in sequence fromFIG. 27where the user U is driving in the vehicle V. The user interface112indicates that media content for the context of “Driving”3002is being played through the vehicle media-playback system116as media output110. The podcast “Stuff You Should Know” is being played in the preferred setting for the user U, which is for the activity of driving.

Multiple combinations of contexts, context parameters, detection methods, devices, and media content are possible. The examples provided herein are merely illustrative. Other embodiments and variations are possible. The various embodiments described above are provided by way of illustration only and should not be construed to limit the claims attached hereto. Those skilled in the art will readily recognize various modifications and changes that may be made without following the example embodiments and applications illustrated and described herein, and without departing from the true spirit and scope of the following claims.