As digital media technologies have advanced, personal digital media collections have grown in size and popularity. A typical personal digital media collection, which may include numerous photos, songs, e-books, audio books, movies, videos, and/or other forms of media content, may be stored locally on a user's device (e.g., a personal computer or portable media player device) or hosted at a remote data center.
Typically, a user utilizes a software application known as a media player to manage and play back media content included in the user's personal digital media collection (e.g., to manage and play back songs in the user's personal digital music library). Using a media player, the user is able add, delete, and/or organize media content in the user's personal digital media collection. For example, a conventional media player provides functionality that allows the user to create a playlist by selecting desired media content from the user's personal digital media collection for inclusion in the playlist. The media player is able to play back the playlist for experiencing by the user. Certain media players provide functionality for randomizing the playback of the playlist such that media content instances included in the playlist are randomly selected for playback. Such randomized playback is commonly referred to as “random” or “shuffle” playback.
There remains room to improve conventional media players and other tools for managing and playing back media content included in a personal digital media content library. For example, new and/or improved services, features, functions, and/or user interfaces related to managing personal digital media content libraries, managing media content playlists, and/or controlling playback of media content are desired. To illustrate just one example, conventional media players do not provide a user with functionality to control how media content included in a playlist is selected for playback during “random” or “shuffle” playback of the playlist. To illustrate another example, conventional media players do not provide a user with robust and/or useful media content management functionality that can be accessed and used “on the fly” in the context of media content playback.
The accompanying drawings illustrate various embodiments and are a part of the specification. The illustrated embodiments are merely examples and do not limit the scope of the disclosure. Throughout the drawings, identical or similar reference numbers designate identical or similar elements.
Exemplary media content management and presentation systems and methods are described herein. In certain examples, the media content management and presentation systems and methods may provide new and/or improved services, features, functions, and/or user interfaces related to managing digital media content libraries, managing media content playlists, and/or controlling playback of media content.
As an example, exemplary media content management and presentation systems and methods may provide services, features, functions, and/or user interfaces related to linking together multiple discrete media content instances (e.g., digitally represented songs) included in a media content library and/or playlist and processing the linked media content instances as an indivisible block of linked media content instances in one or more media content management and/or playback operations. To illustrate, an exemplary method includes a media content presentation system linking together multiple media content instances, playing back or managing a playlist that includes the linked media content instances, and processing the linked media content instances as a block of linked media content instances within the playing back or managing of the playlist. Another exemplary method may include a media content presentation system linking together multiple media content instances, randomizing a playback of a playlist that includes the linked media content instances, and processing the linked media content instances as an indivisible block of linked media content instances within the randomizing of the playback of the playlist.
As another example, exemplary media content management and presentation systems and methods may provide services, features, functions, and/or user interfaces related to managing media content within a digital media content library and/or playlist “on the fly” within a context of a playback of media content (e.g., during playback of media content and/or by way of a playback user interface presented during playback of media content). To illustrate, an exemplary method may include a media content presentation system playing back a media content instance for experiencing by a user, presenting a playback user interface during the playing back of the media content instance, and providing, within the playback user interface, one or more media management tools (e.g., playlist management tools) configured for use by the user to manage the media content instance during the playing back of the media content instance.
These and/or other services, features, functions, user interfaces and/or benefits provided by the disclosed exemplary media content management and presentation systems and methods will be made apparent herein.
As used herein, “media content” refers to any digitally represented content capable of being included in a digital media content library and played back by a computing device (e.g., a media player device) for experiencing by a user. “Media content instance” refers to any digitally represented discrete instance of media content such as an audio program (e.g., a song, an audio book, a radio program, an audio recording, etc.), a video program (e.g., a television program, a movie, etc.), a multimedia program, a digital image (e.g., a still-shot image, a photograph, etc.), and any other discrete instance of media content that is capable of being included in a digital media content library and played back by a computing device.
Examples of media content management and presentation systems and methods will now be described in reference to the accompanying drawings.
Data generated and/or used by system 100 may be stored in storage facility 108. For example, storage facility 108 may store media content data 110 representative of and/or otherwise related to media content, library data 112 representative of a library of media content, playlist data 114 representative of one or more playlists of media content, and linking data 116 representative of links between linked media content instances included in a digital media content library and/or playlist. Examples of media content, digital media content libraries, media content playlists, and linked media content instances are described herein. Additional and/or alternative data may be stored by storage facility 108 in other embodiments.
Management facility 102 may be configured to perform one or more operations related to management of media content included in a digital media content library and/or playlist. For example, management facility 102 may create a digital media content library and/or playlist, add media content to a digital media content library and/or playlist, delete media content from a digital media content library and/or playlist, organize media content within a digital media content library and/or playlist, and/or otherwise manage media content included in a digital media content library and/or playlist. To this end, management facility 102 may generate and maintain library data 112 representative of a media content library and playlist data 114 representative of one or more playlists.
Songs 206 may be organized in any suitable way within media content library 202. For example, songs 206 may be sorted, filtered, and/or organized by one or more song attributes such as album, artist, title, genre, etc., which attributes may be specified in song metadata included in media content data 110.
Management facility 102 may maintain data representative of playlist 204, which may include one or more songs 206 selected from media content library 202. For example, a user may provide input to create and define playlist 204 to include a specific arrangement of songs (i.e., specific songs arranged in a specific user-defined order) selected from media content library 202. In the example shown in
Management facility 102 may be further configured to link together discrete media content instances included in a media content library and/or playlist and to maintain linking data 116 representative of the link(s) between the linked media content instances. To illustrate,
Management facility 102 may be configured to link together media content instances in any suitable way. For example, management facility 102 may generate linking data 116 representative of a link (e.g., link 208) between media content instances. The linking data 116 may be in any suitable format and may be stored at any location and/or associated with any other data that allows the linking data 116 to be accessed and used to identify the link between the media content instances. In certain embodiments, linking data 116 representative of the link may be appended to one or more data records that contain information about the media content instances (e.g., as one or more pointers appended to data records representative of the media content instances). In certain embodiments, a link data record representative of the link may be created and the linked media content instances wrapped within the link data record, which wrapping and/or link data record indicates a link between the media content instances. In certain embodiments, a linking data table may be created and may represent the link.
In certain embodiments, management facility 102 may be configured to form a one-way link or a two-way link between media content instances. To illustrate, table 300 represents a one-way link in a single direction from song 206-2 to song 206-8 for an embodiment in which link 208 is a one-way link. For an embodiment in which link 208 is a two-way link, management facility 102 may generate a different table representative of the two-way link. To illustrate,
Management facility 102 may be configured to generate and maintain data representative of links having various scopes. In certain embodiments, for example, the scope of a link may be limited to a specific playlist. Returning to
As another example, the scope of a link may be global across system 100. To illustrate,
As described in more detail herein, a link between multiple media content instances may represent a desired grouping of media content instances that is to be processed as a media content block for one or more operations of system 100. For example, a user may want two particular songs within the user's personal digital music library to always be played back-to-back as a block of two songs. The user may provide input that directs system 100 to link together those two songs within the library. Thereafter, system 100 may process the linked songs as a block for certain operations of system 100. The block may be indivisible for certain operations of system 100.
As another example, a user may want two songs within the user's personal digital music library to always be played back-to-back as a block of two songs within a particular playlist. The user may provide input that directs system 100 to link together those two songs within the playlist. Thereafter, system 100 may process the linked songs as a block for certain operations of system 100 associated with the playlist. The block may be indivisible for certain operations of system 100 associated with the playlist.
A link may represent a block relationship between any media content instances included in a media content library and/or playlist. Linked media content instances may be otherwise discrete and related or unrelated by shared metadata attributes. By providing a user with functionality for linking together media content instances for block processing, system 100 may provide the user with increased control over media content management and playback operations compared to conventional media players.
Management facility 102 may link together discrete media content instances in response to any predetermined event. For example, management facility 102 may link together discrete media content instances in response to receipt of a user input command to link together the media content instances. To illustrate, a user may manually provide user input that is configured to initiate a linking together of certain media content instances identified by the user. Exemplary user input that may be provided to initiate a linking operation is described further below.
As another example, management facility 102 may automatically link together discrete media content instances in response to a detected satisfaction of a predefined linking trigger condition. In certain embodiments, the predefined linking trigger condition may include a performance of a particular operation by management facility 102. To illustrate, management facility 102 may be configured to perform one or more optimization operations to optimize media content instances in association with an addition of the media content instances to a media content library. An example of such operations includes management facility 102 detecting certain attributes of media content instances being ingested into the library and, based on the attributes, optimizing the media content instances for gapless playback such that when the media content instances are played back, a transition from playback of one of the media content instance to playback of another of the media content instances is gapless (i.e., does not contain a noticeable playback transition, silence, or a blank pause during the transition). Accordingly, management facility 102 may be configured to automatically link together media content instances that are optimized for gapless playback. In certain embodiments, such automatic linking may be enabled or disabled by a user selecting whether to enable or disable automatic linking in settings for management facility 102.
Management facility 102 may be further configured to delink linked media content instances. The delinking may be performed in any suitable way, such as by deleting linking data 116 representative of a link between media content instances. For example, management facility 102 may delete linking table 300 shown in
Management facility 102 may delink linked media content instances in response to any predetermined event. For example, management facility 102 may delink linked media content instances in response to receipt of a user input command to delink the media content instances. To illustrate, a user may manually provide user input that is configured to initiate a delinking of linked media content instances identified by the user.
After linked media content instances are delinked, the media content instances will no longer be processed as a block of media content instances. For example, system 100 may process the delinked media content instances individually for operations of system 100, such as in any of the ways described herein.
Playback facility 104 may be configured to play back media content for experiencing by a user. For example, playback facility 104 may play back an individual media content instance. The playback may be on an individual basis or part of a playback of a digital media content library or playlist. During playback of media content included in a digital media content library, playback facility 104 selects and plays back media content instances included in the library. During playback of a playlist, playback facility 104 selects and plays back media content instances included in the playlist.
In certain examples, playback of a media content library or playlist may be sequential in that the selection and playback of media content instances included in the media content library or playlist is governed by and temporally follows the same order of the media content instances defined by the media content library or playlist (e.g., sequentially from the first media content instance to the last media content instance in the library or playlist). In certain other examples, playback of a media content library or playlist may be randomized by playback facility 104 in that the media content instances and/or an order of the media content instances selected for playback is randomly selected by playback facility 104. Because the playback is randomized, the selection and playback of media content instances (e.g., the order in which the media content instances are selected and played back) is not dictated or influenced by the order of the media content instances defined by the library or playlist.
User interface facility 106 may be configured to provide one or more user interfaces configured to facilitate user interaction with one or more services, features, and/or functions of system 100. Through a user interface, a user may provide input to manage media content and/or control playback of media content. In certain embodiments, user interface facility 106 may present certain user interfaces in conjunction with playback of media content by playback facility 104. Such user interfaces may be referred to as “playback user interfaces.” Additionally or alternatively, user interface facility 106 may present certain user interfaces to facilitate user management of media content. Such user interface may be referred to as “management user interfaces.” Exemplary graphical user interfaces (“GUIs”) that may be presented by user interface facility 106 are described further below.
Certain operations performed by system 100 may process unlinked media content instances individually and linked media content instances as a block of linked media content instances. For example, certain playback operations may be performed by playback facility 104 in a way that processes linked media content instances as an indivisible block of linked media content instances. To illustrate, during playback of playlist 204 shown in
The linked songs 206-2 and 206-8 may be treated as an indivisible block for sequential or randomized playback of playlist 204. In the case of randomized playback of playlist 204, linked songs 206-2 and 206-8 may be processed as an indivisible block of linked media content instances within the randomizing of the playback of playlist 204. In certain examples, each time song 206-2 is randomly selected for playback, song 206-8 will be automatically selected for playback immediately following the playback of song 206-2. In other examples, songs 206-2 and 206-8 will be grouped and processed as a block within the random selection of songs within playlist 204 to be played back. In this case, playback facility 104 may randomly select from a group consisting of song 206-7, song 206-3, song 206-4, and the block of linked songs that includes songs 206-2 and 206-8 to determine which individual song or block of linked songs will be played back next in the random playback.
In the case of sequential playback of playlist 204, playback facility 104 may process linked songs 206-2 and 206-8 as an indivisible block of linked media content instances within the sequential playback of playlist 204. For example, playback facility 104 may select song 206-2 for playback based on the ordered position of song 206-2 within playlist 204. Playback facility 104 may detect a link between song 206-2 and 206-8 and, in response to this detection and based on the link, may select song 206-8 for playback immediately following the playback of song 206-2 in the sequential playback of playlist 204. After playback of song 206-8, playback facility 104 may select song 206-7, based on the list order defined by playlist 204, as the next sequential song for playback and may continue down the list of songs included in playlist 204 for the sequential playback. After playback of song 206-4 based on its sequential order in playlist 204, playlist facility 104 may be configured to either play back song 206-8 as the next sequential song in playlist 204 or to ignore and not play back song 206-8 based on its ordered position following song 206-4 in playlist 204 because song 206-8 was already played back immediately following the playback of song 206-2 based on the link between songs 206-2 and 206-8. Playlist facility 104 may be configured to make this determination based on predefined settings of playback facility 104.
As another example, certain media content management operations may be performed by management facility 102 in a way that processes or at least facilitates processing of linked media content instances as an indivisible block of linked media content instances. To illustrate, a user may provide input to define a new playlist of songs selected from media content library 202 shown in
To illustrate another example, a user may provide input indicating that song 206-2 is to be removed from playlist 204. Management facility 102 may detect the request, detect a link between song 206-2 and song 206-8, and in response to and based on the detected link, facilitate removal of song 206-8 along with song 206-2. For example, management facility 102 may automatically remove song 206-8 from playlist 204 in response to song 206-2 being removed from playlist 204 and based on the link between songs 206-2 and 206-8. As another example, management facility 102 may provide a prompt to a user that facilitates convenient removal of song 206-8 from playlist 204 along with song 206-2. For instance, the prompt may notify the user that song 206-8 is linked to song 206-2 and prompt the user to provide input indicating whether the user would like song 206-8 to follow song 206-2 in removal from playlist 204.
To further illustrate one or more of the media content linking services, features, functions, and/or user interfaces that may be associated with the methods and systems described herein,
GUI 500 may include one or more media management tools configured to facilitate linking together of one or more of the songs included in the playlist. In certain embodiments, for example, a user may provide input to select one or more of the songs included in the playlist and to indicate that the user would like to link together the selected songs. The user input may be provided in any suitable way, such as by the user touching screen areas that are proximate to visual data representative of one or more songs on a touch screen for a predetermined length of time (e.g., by pressing and holding for a predetermined duration). For instance, a user may touch two songs titled “Forbidden Colors” and “Secret Crowds.” The touch selection may be concurrent or sequential. In certain embodiments, the sequence in which the songs are selected may be used by management facility 102 to determine a direction of linking to be generated between the songs.
The touch selection of the songs may be visually indicated in GUI 500, such as by highlighting the data representative of the selected songs and/or areas of the screen that are proximate the data representative of the selected songs, as shown in
While the above example describes touch screen “press and hold” input to select songs to be linked together, this is illustrative only. Any suitable form of user input may be used, including selection of a linking icon to indicate a desire to link together selected songs and/or any other suitable form of user input.
In certain embodiments, management facility 102 may detect that the user has provided input indicative of a desire for songs to be linked together. In response, management facility 102 may automatically link together the selected songs in any of the ways described herein. In other examples, management facility 102 may prompt the user to provide additional input to confirm whether the user would like the selected songs to be linked together. For example,
While
User interface facility 106 may provide, within a user interface, an indication that media content instances are linked. For example,
As another example of a user interface that may be provided by user interface facility 106,
If a user provides a user input command to add a selected song to the playlist (e.g., by selecting add tool 806) and the selected song is included in a block of linked songs in the music library, system 100 may detect the user input command and the link and, in response, facilitate processing of the selected song as part of a block. In certain embodiments, for example, management facility 102 may automatically add the selected song and any other songs linked to the selected song to the playlist as a block of linked songs. In other embodiments, user interface facility 106 may provide a prompt notifying the user that the selected song is linked to one or more other songs and prompting the user to provide additional input indicating whether the other songs are to be added to the playlist together with the selected song. For example,
In some examples, processing of linked media content instances as blocks of linked media content instances may create potential conflicts between different blocks of linked media content instances. To illustrate, within playback of a playlist, a first song selected for playback may be part of two different blocks of linked songs. For instance, the first song may be linked to a second song in one block and to a third song in another block. This may create a potential conflict between the two blocks of songs.
In certain embodiments, system 100 may be configured to handle such potential conflicts by using a predefined prioritization heuristic that specifies one or more rules for prioritizing one block over another block. In certain examples, the heuristic may specify that a block created in response to manual user input is to be prioritized over a block created automatically in response to an operation of system 100 such as in response to optimization of songs for gapless playback, as described above. In certain examples, the heuristic may specify that a more recently created block is to be prioritized over an earlier created block. Accordingly, system 100 may use the heuristic to resolve potential conflicts, such as by prioritizing blocks for processing.
Additionally or alternatively to the media content linking services, features, functions, and/or user interfaces described herein, system 100 may provide services, features, functions, and/or user interfaces related to managing media content within a digital media content library and/or playlist “on the fly” within a context of a playback of media content (e.g., during playback of media content and/or by way of a playback user interface that is presented in conjunction with playback of media content). In certain embodiments, “on the fly” management of media content may be performed within the context of media content playback, without a user having to move away from a playback user interface to access a separate media content management user interface (e.g., a playlist edit mode user interface). Such “on the fly” management of media content may provide a user with increased and/or more convenient and user-friendly control over management of media content and/or playlists during playback of media content as compared to conventional media players.
To illustrate, during playback of media content (e.g., during playback of a song and/or a playlist), system 100 may present a playback user interface that includes one or more media management tools in the form of one or more selectable options that may be selected by a user to initiate performance of one or more corresponding media management operations by system 100. During the playback, system 100 may detect a user selection of one of the selectable options and, in response to the detection, perform one or more media management operations corresponding to the selected option. Exemplary selectable options and corresponding media management operations will now be described.
In certain examples, during playback of a playlist, the playback user interface may include a selectable option to instantly delete a media content instance from the playlist. In response to a user selection of the option, system 100 may delete an identified media content instance (e.g., the media content instance currently being played back or another media content instance that is selected when the user selects the option) from the playlist.
In certain examples, during playback of a playlist, the playback user interface may include a selectable option to temporarily disable a media content instance included in the playlist. In response to user selection of the option, system 100 may temporarily disable an identified media content instance (e.g., the media content instance currently being played back or another media content instance that is selected when the user selects the option) such that the media content instance will be prevented from being played back during the current playback session of the playlist. The disabling of the media content instance may be temporary in that it applies only to the current playback session of the playlist. After the current playback session terminates (e.g., system 100 terminates the current playback session to perform another playback operation not related to the playlist, such as playing back another media content instance and/or playlist), system 100 may detect the termination and, in response to the detection, may re-enable the media content instance such that the media content instance will be allowed to be played back (e.g., will not be prevented from being played back) in a subsequent playback of the playlist.
In certain examples, during playback of a media content instance (e.g., playback of the media content instance individually or as part of a playback of a media content library or playlist), the playback user interface may include a selectable option to instantly add the media content instance to a playlist (e.g., a new or existing playlist). In response to a user selection of the option, system 100 may add the media content instance to a playlist. In some examples, system 100 may prompt the user for input indicating a desired existing or new playlist to which to add the media content instance.
In certain examples, during playback of a media content instance (e.g., playback of the media content instance individually or as part of a playback of a media content library or playlist), the playback user interface may include a selectable option that may be selected by a user to select (e.g., bookmark) a media content instance for additional processing. In response to user selection of the option, system 100 may provide one or more additional selectable options for the additional processing of the media content instance. The additional selectable options may include an option to add the media content instance to a playlist (e.g., a new playlist or an existing playlist), an option to access information about the media content instance (e.g., additional information about the artist of the media content instance), and an option to generate and automatically populate a new playlist based on the media content instance. In response to a user selection of the option to add the media content instance to a playlist, system 100 may perform one or more operations to add the media content instance to a playlist, as described above. In response to a user selection of the option to access information about the media content instance, system 100 may access and present information about the media content instance. In response to a user selection of the option to generate and automatically populate a new playlist based on the media content instance, system 100 may automatically create a new playlist, add the media content instance to the playlist, and automatically add one or more other media content instances that are determined by system 100 to be similar to the media content instance to the playlist. In certain examples, the new playlist may be created to have a length (e.g., playback duration) that is approximately the same as and not greater than a predetermined length.
To further illustrate one or more of the “on the fly” media management services, features, functions, and/or user interfaces described herein,
GUI 1000 may further include a set 1010 of one or more media management tools in the form of options that may be selected by a user to manage a selected song included in the playlist. For example, a user may select option 1012 to delete the selected song from the playlist, option 1014 to temporarily disable the selected song from the playlist, option 1016 to select (e.g., bookmark) the selected song for additional processing, and option 1018 to add the selected song to another playlist (e.g., a new or another existing playlist), such as described above.
A particular song included in the playlist may be selected in any suitable way. In certain examples, the currently playing song may be processed as the selected song. In other examples, the user may provide input selecting a different song in the playlist. To illustrate,
Upon selection of one of the options included in set 1010, system 100 may perform one or more operations to manage the selected song. To illustrate, in response to a user selection of option 1018 to add the selected song to another playlist, user interface facility 106 may provide one or more additional tools and/or options for use by the user to select a playlist to which to add the selected song.
While
System 100 may provide the above-described media management tools for use within the context of playback of media content. Accordingly, the tools may facilitate user management of media content, including management of playlists, within the context of playback of media content. In certain examples, the tools may allow the user to manage media content as described above without leaving a playback user interface that is presented in conjunction with playback of media content to access a separate media management user interface.
Turning to method 1200 in
In step 1204, system 100 plays back a playlist that includes the linked media content instances. Step 1204 may be performed in any of the ways described herein and may include sequential or random playback of the playlist.
In step 1206, system 100 processes the linked media content instances as an indivisible block of linked media content instances within the playback of the playlist. Step 1206 may be performed in any of the ways described herein. For example, within a random playback of the playlist, the processing may include processing the linked media content instances as an indivisible block of linked media content instances within the randomizing of the playback of the playlist (e.g., within the random selection of media content instances for playback).
In step 1208, system 100 delinks the link media content instances. Step 1208 may be performed in any of the ways described herein.
In step 1210, system 100 plays back the playlist. Step 1210 may be performed in any of the ways described herein and may include a sequential or random playback of the playlist.
In step 1212, system 100 processes the delinked media content instances as discrete media content instances within the playback of the playlist. Step 1212 may be performed in any of the ways described herein. For example, for a random playback of the playlist, the processing may include processing the delinked media content instances as discrete media content instances within the randomizing of the playback of the playlist.
Turning to method 1300 in
In step 1304, system 100 manages a playlist. For example, system 100 may perform a management operation to manage a playlist associated with the digital media content library. Examples of a management operation may include adding a media content instance to the playlist or removing a media content instance from the playlist.
In step 1306, system 100 processes the linked media content instances as a block of linked media content instances within the management of the playlist. For example, system 100 may process the linked media content instances as a block of linked media content instances within the management operation performed to manage the playlist (e.g., adding or removing to/from the playlist). Step 1306 may be performed in any of the ways described above. For example, system 100 may facilitate addition or removal of linked media content instances to/from the playlist as a block of linked media content instances.
In step 1308, system 100 delinks the linked media content instances. Step 1308 may be performed in any of the ways described herein.
In step 1310, system 100 manages a playlist. For example, system 100 may perform a management operation to manage a playlist associated with the digital media content library, such as described above.
In step 1312, system 100 processes the delinked media content instances as discrete media content instances within the management of the playlist. For example, system 100 may process the linked media content instances as discrete media content instances within the management operation performed to manage the playlist (e.g., by adding or removing individual media content instances to/from the playlist). Step 1312 may be performed in any of the ways described above.
Turning to method 1400 in
In step 1404, system 100 presents a playback user interface in conjunction with the playback of the media content instance. Step 1404 may be performed in any of the ways described herein, and the playback user interface may include any of the exemplary playback user interfaces described herein.
In step 1406, system 100 provides, within the playback user interface, one or more media management tools configured for use by the user to manage the media content instance during the playback of the media content instance. Step 1406 may be performed in any of the ways described herein, and the media management tools may include any of the exemplary media management tools described herein.
System 100 may include or be implemented by one or more computing devices. In certain embodiments, system 100 may include or be implemented by a single computing device. For example,
While
In certain embodiments, system 100 may include or be implemented by and/or across multiple computing devices. For example,
As shown in
In implementation 1700, system 100 may be implemented by user device subsystem 1702 and/or server subsystem 1704. Accordingly, user device subsystem 1702, server subsystem 1704, or a combination thereof may perform any of the operations of system 100.
User device subsystem 1702 may communicate with server subsystem 1704 using any suitable communication technologies. Examples of such communication technologies may include, without limitation, Global System for Mobile Communications (“GSM”) technologies, Long Term Evolution (“LTE”) technologies, Code Division Multiple Access (“CDMA”) technologies, Time Division Multiple Access (“TDMA”) technologies, Evolution Data Optimized Protocol (“EVDO”) (e.g., “1xEVDO”), radio frequency (“RF”) signaling technologies, radio transmission technologies (e.g., One Times Radio Transmission Technology (“1xRTT”)), Transmission Control Protocol (“TCP”), Internet Protocol (“IP”), Session Initiation Protocol (“SIP”), Real-Time Transport Protocol (“RTP”), User Datagram Protocol (“UDP”), in-band and out-of-band signaling technologies, and other suitable video data transport technologies, or any combination or sub-combination thereof.
Network 1706 may include any network or combination of networks provided by one or more appropriately configured network devices (and communication links thereto) and over which communications and data may be transported between server subsystem 1704 and user device subsystem 1702. For example, network 1706 may include, but is not limited to, a mobile phone network (e.g., a cellular phone network, an LTE network, a 3G network, a 4G network, etc.), a satellite media network (e.g., a broadcasting network, a terrestrial media broadcasting network), a cable network, an optical fiber network, a hybrid fiber coax network, a wireless network (e.g., a Wi-Fi and/or mobile telephone network), a subscriber television network, a wide area network the Internet, an intranet, a local area network, any other network suitable for supporting a hosted media management and/or presentation service.
Server subsystem 1702 may include one or more computing devices (e.g., one or more server devices) configured to perform functionality of system 100 described herein. The computing devices may include and/or be implemented by one or more network devices of network 1706 and/or may be configured to communicate with one or more network devices of network 1706. In certain examples, the computing devices may be operated by the operator of network 1706 and/or a hosted media management service provider.
Server subsystem 1704 may provide one or more functions of system 100 as a service for access and use by user device subsystem 1702. For example, server subsystem 1704 may store media content at a hosted data center for access by user device subsystem 1702. Functionality of system 100 described herein may be accessible as one or more web services provided by server subsystem 1704 and/or as client application functionality implemented by user device subsystem 1702. User device subsystem 1702 may provide a user interface 1708 through which a user 1710 may interact with system 100. User interfaces 1708 may include or provide any of the exemplary GUIs described herein.
In certain embodiments, one or more of the components and/or processes described herein may be implemented and/or performed by one or more appropriately configured computing devices. To this end, one or more of the systems and/or components described above may include or be implemented by any computer hardware and/or computer-implemented instructions (e.g., software) embodied on at least one non-transitory computer-readable medium configured to perform one or more of the processes described herein. In particular, system components may be implemented on one physical computing device or may be implemented on more than one physical computing device. Accordingly, system components may include any number of computing devices, and may employ any of a number of computer operating systems.
In certain embodiments, one or more of the processes described herein may be implemented at least in part as instructions executable by one or more computing devices. In general, a processor (e.g., a microprocessor) receives instructions, from a tangible computer-readable medium, (e.g., a memory, etc.), and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein. Such instructions may be stored and/or transmitted using any of a variety of known non-transitory computer-readable media.
A non-transitory computer-readable medium (also referred to as a processor-readable medium) includes any non-transitory medium that participates in providing data (e.g., instructions) that may be read by a computer (e.g., by a processor of a computer). Such a non-transitory medium may take many forms, including, but not limited to, non-volatile media and/or volatile media. Non-volatile media may include, for example, optical or magnetic disks and other persistent memory. Volatile media may include, for example, dynamic random access memory (“DRAM”), which typically constitutes a main memory. Common forms of non-transitory computer-readable media include, for example, a floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, or any other non-transitory medium from which a computer can read.
Communication interface 1802 may be configured to communicate with one or more computing devices. Examples of communication interface 1802 include, without limitation, a wireless network interface (such as a wireless network interface card), a modem, and any other suitable interface. Communication interface 1802 may be configured to interface with any suitable communication media, protocols, and formats.
Processor 1804 generally represents any type or form of processing unit capable of processing data or interpreting, executing, and/or directing execution of one or more of the instructions, processes, and/or operations described herein. Processor 1804 may direct execution of operations in accordance with one or more applications 1812 or other computer-executable instructions such as may be stored in storage device 1806 or another non-transitory computer-readable medium.
Storage device 1806 may include one or more data storage media, devices, or configurations and may employ any type, form, and combination of data storage media and/or device. For example, storage device 1806 may include, but is not limited to, a hard drive, network drive, flash drive, magnetic disc, optical disc, random access memory (“RAM”), dynamic RAM (“DRAM”), other non-volatile and/or volatile data storage units, or a combination or sub-combination thereof. Electronic data, including data described herein, may be temporarily and/or permanently stored in storage device 1806. For example, data representative of one or more executable applications 1812 (which may include, but are not limited to, one or more of the software applications described herein) configured to direct processor 1804 to perform any of the operations described herein may be stored within storage device 1806. In some examples, data may be arranged in one or more databases residing within storage device 1806.
I/O module 1808 may be configured to receive user input and provide user output and may include any hardware, firmware, software, or combination thereof supportive of input and output capabilities. For example, I/O module 1808 may include hardware and/or software for capturing user input, including, but not limited to, a keyboard or keypad, a touch screen component (e.g., touch screen display), a receiver (e.g., an RF or infrared receiver), and/or one or more input buttons.
I/O module 1808 may include one or more devices for presenting output to a user, including, but not limited to, a graphics engine, a display (e.g., a display screen, one or more output drivers (e.g., display drivers), one or more audio speakers, and one or more audio drivers. In certain embodiments, I/O module 1808 is configured to provide graphical data to a display for presentation to a user. The graphical data may be representative of one or more graphical user interfaces and/or any other graphical content as may serve a particular implementation.
In some examples, any of the facilities described herein may be implemented by or within one or more components of computing device 1800. For example, one or more applications 1812 (e.g., a media player software application) residing within storage device 1806 may be configured to direct processor 1804 to perform one or more processes or functions associated with one or more of the facilities 102-106 of system 100 described herein. Likewise, storage facility 108 of system 100 may be implemented by or within storage device 1806.
In the preceding description, various exemplary embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the scope of the invention as set forth in the claims that follow. For example, certain features of one embodiment described herein may be combined with or substituted for features of another embodiment described herein. The description and drawings are accordingly to be regarded in an illustrative rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
6031797 | Van Ryzin et al. | Feb 2000 | A |
7043477 | Mercer et al. | May 2006 | B2 |
7434165 | Kleinman et al. | Oct 2008 | B2 |
7685210 | Plastina et al. | Mar 2010 | B2 |
20060253782 | Stark et al. | Nov 2006 | A1 |
20070053268 | Crandall et al. | Mar 2007 | A1 |
20080301173 | Ryu et al. | Dec 2008 | A1 |
20090070339 | Cho et al. | Mar 2009 | A1 |
20090222115 | Malcolm et al. | Sep 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20130086474 A1 | Apr 2013 | US |