The present invention relates to controlling content played at a number of media devices using a mobile device.
Each day one encounters numerous media devices such as computers, televisions with digital video recorders, MP3 players, and the like. These media devices may be located in various environments such as one's home, office, or automobile. However, to date, there is no way of easily ascertaining the content available on these different media devices and controlling or selecting the content played by these media devices using a mobile device. As such, there remains a need for a system and method for ascertaining the content available at a plurality of media devices and controlling the content played by the media devices using a mobile device.
The present invention relates to a system and method for controlling content played by a number of media devices. In general, the system includes a mobile device and the number of media devices. The mobile device includes a wireless communication interface for communicating with the media devices, a media database, and a control system including a media client. When the mobile device enters a Wireless Personal Area Network (WPAN) associated with a media device, the media client communicates with the media device to obtain information describing the content residing at the media device and stores the information in the media database at the mobile device. Thereafter, when the mobile device is within the WPAN associated with the media device, the media database is used to select content to be played at the media device.
In one embodiment, when the mobile device is within the WPAN associated with the media device, the media client interacts with a user of the mobile device and enables the user to select desired content to be played at the media device from the media database. The media client communicates with the media device to instruct the media device to play the desired content. In another embodiment, when the mobile device is within the WPAN associated with the media device, the media client automatically selects desired content to be played from the media database based on predetermined user preferences and instructs the media device to play the desired content.
In another embodiment, the media database of the mobile device operates as a master database. The mobile device stores last-played time-stamps for the content in the media database in addition to the information describing the content for each of a number of media devices. When the mobile device enters the WPAN associated with a media device, the mobile device provides the information describing the content stored at each of the number of media devices and the last-played time-stamps for the content to the media device. Based on the information and the last-played time-stamps, the media device automatically selects the desired content to be played. For example, based on the information and the last-played time-stamps, the media device may determine a play history and select desired content that is consistent with the play history.
Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.
The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.
The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
The present invention provides a system for controlling content played by a number of media devices. An exemplary system 10 is illustrated in
As discussed below, the media devices 16 and 18 include media players and content that may be played by the media players. A mobile device 20, which includes a wireless communication interface, operates to control the content played by the media players of the media devices 16 and 18. More specifically, the first time that the mobile device 20 enters the WPAN 12, the mobile device 20 communicates with the media device 16 to obtain metadata defining the content stored at the media device 16 and then stores the metadata. The metadata may more generally be referred to as any information describing the content stored at the media device 16. Thereafter, a user associated with the mobile device 20 may select desired content to be played using the stored metadata. Alternatively, the mobile device 20 may automatically select desired content to be played based on user preferences. The mobile device 20 then communicates with the media device 16 to direct the media device 16 to play the desired content. In response, the media device 16 plays the desired content. Likewise, when the mobile device 20 enters the WPAN 14, the mobile device 20 obtains and stores metadata describing the content stored by the media device 18 and directs the media device 18 to play desired content.
Each of the media devices 16 and 18 may be a personal computer, a digital video recorder associated with a television, an audio player such as a Moving Pictures Experts Group (MPEG) Audio Layer-3 (MP3) player, a digital picture frame, or the like. An exemplary embodiment of the media device 16 is illustrated in
The control system 24 includes a media player 28 and a WPAN media server 30, which is hereinafter referred to as the media server 30. The media player 28 may be implemented in hardware and/or software and operates to play the content in the content database 26 such that people within the WPAN or near to the media device 16 can view and/or listen to the content. The content database 26 may be any storage device such as, but not limited to, a hard drive or Random Access Memory (RAM) and operates to store content such as digital video files, digital audio files, digital images, slideshows of digital images, or the like.
The media server 30 may be implemented in software and/or hardware and operates to instruct the media player 28 to play select content based on instructions or information received from the mobile device 20. In addition, the media server 30 may optionally scan the content database 26 for content that may be played at initial start-up or periodically throughout operation. This may be referred to as “auto-discovering” the content. Additionally or alternatively, a user associated with the media device 16 may configure the media server 30 to select the content or content types to be made available to the mobile device 20.
The control system 34 includes a WPAN media client 36 and a media database 38. The WPAN media client 36 is hereafter referred to as the media client 36. The media client 36 may be implemented in hardware and/or software and operates to provide instructions or information to the media server 30 in order to control the content played by the media player 28. As discussed below in more detail, when the mobile device 20 enters one of the WPANs 12, 14, the media client 36 interacts with the media server 30 to obtain metadata describing the content in the content database 26. The metadata is stored in the media database 38 and may include information such as a file name, file type, and an identifier of the WPANs 12, 14 for each file in the content database 26. Note that, in the preferred embodiment, the media database 38 stores metadata describing the content in the content database 26 for each of the WPANs 12, 14. In addition, last-played time-stamps for the content may be added to the media database 38, as discussed below. A user associated with the mobile device 20 may then browse the media database and select content to be played. For example, if the mobile device 20 is within the WPAN 12, then the user may select content to be played by the media device 16 using the media database 38. If the mobile device 20 is within the WPAN 14, then the user may select content to be played by the media device 18 using the media database 38. In another embodiment, the media client 36 may automatically select content to play from the media database 38 based on preferences previously entered by the user.
Once validation is complete, the media client 36 sends a request to the media server 30 for metadata describing the content in the content database 26 at the media device 16 (step 102). In response, the media server 30 queries the content database 26 to obtain the metadata describing the content within the content database 26 (step 104). The metadata may include information such as the file name and file type for each file in the content database 26. In addition, the media server 30 may add a server name or identifier of the media device 16 to the metadata. The media server 30 then returns the metadata to the media client 36 (step 106), and the media client 36 stores the metadata in the media database 38 (step 108).
Steps 100-108 are repeated each time the mobile device 20 enters one of the WPANs 12, 14 for the first time. As such, the media database 38 stores metadata describing the content in the content databases 26 for each of the WPANs 12, 14.
Thereafter, the media client 36 may optionally communicate with the media server 30 to obtain any updates to the metadata describing the content in the content database 26 (step 202). This may be particularly beneficial where the mobile device 20 has just re-entered the WPAN 12 after leaving for some period of time during which content may have been added or removed from the content database 26.
The media client 36 then operates to select desired content to play at the media device 16 from the media database 38 (step 204). In one embodiment, a user interacts with the media client 36 to browse the media database 38 and select desired content in the content database 26 to be played. In another embodiment, the user associated with the mobile device 20 may interact with the media client 36 to define preferences. The user may define preferences for each of the WPANs 12 and 14 or a single set of preferences to be applied to all of the WPANs 12 and 14. The preferences may then be used by the media client 36 to automatically select the desired content to be played using the media database 38. As a first example, the user may configure his preferences such that content is selected based on genre. More specifically, the media player 28 within the WPAN 12 may be capable of playing audio content, and the user may configure his preferences such that the media client 36 automatically selects music content in a desired genre such as “rock” when the mobile device 20 is within the WPAN 12. Note that the genre of the content may be provided in the metadata from the media server 30. As a second example, the user may configure his preferences such that non-duplicate content is played. More specifically, the user may configure his preferences such that the media client 36 selects content that has not been previously played or recently played in any other WPAN. As a third example, the user may also configure his preferences such that content to be played is selected randomly by the media client 36. As a fourth example, the user may configure his preferences by defining a play list for each of the WPANs 12 and 14. As a fifth example, the user may configure his preferences such that the media client 36 selects new content as the content to be played.
The media client 36 then directs the media server 30 to play select content from the content database 26 (step 206). Once the media server 30 receives the request to play the desired content from the media client 36, the media server 30 directs the media player 28 to play the desired content (step 208). In response, the media player 28 obtains the desired content from the content database 26 and plays the desired content (step 210). The media server 30 then sends a notification to the media client 36 when the process is complete (step 212). The notification may be sent at any time after the media server 30 directs the media player 28 to play the desired content. For example, the notification may be sent once the playing of the desired content by the media player 28 is complete. Upon receiving the notification from the media server 30, the media client 36 updates the last-played time-stamp for the desired content within the media database 38 (step 214).
On the other hand, if the media device 16 is capable of playing content that may interfere with content played by the media device 18 or vice versa, then the media client 36 may control the media devices 16 and 18 in such a manner as to avoid interference. In one embodiment, the user may select a desired one of the media devices 16 and 18. In another embodiment, the media client 36 may automatically select one of the media devices 16 and 18 based on priorities assigned to the media devices 16 and 18 by the user. In yet another embodiment, the media client 36 may automatically select a one of the media devices 16 and 18 closest to the mobile device 20 based on the strength of the signals received from the media devices 16 and 18. In any of these three embodiments, one of the media devices 16 and 18 is selected and the mobile device 20 operates as described above to control the content played by the selected one of the media devices 16 and 18.
As an alternative, the media client 36 may control the media devices 16 and 18 simultaneously even though the media device 16 is capable of playing content that may interfere with the content played by the media device 18 or vice versa. More specifically, the media client 36 may determine the types of files that may be played by each of the media devices 16 and 18 by examining the file types stored in the media database 38. If any of the file types played by one of the media devices 16, 18 may interfere with the playing of any of the file types played by the other of the media devices 16, 18, the media client 36 may control the selection of content to be played by the media devices 16 and 18 such that interfering file types are not played simultaneously. For example, if the both of the media devices 16, 18 are capable of playing movies and songs or displaying digital images, the mobile device 20 may control the media devices 16 and 18 such that if one of the media devices 16, 18 is playing video (with audio) or audio, then the other of the media devices 16, 18 displays digital images. As another example, assume that the media client 36 operates such that the user selects the content to be played. If the user selects an audio file to be played by the media device 16, then the media client 36 may prevent selection of another audio file to be played by the media device 18 while the media device 16 is playing the selected audio file.
Thereafter, the media client 36 communicates with the media server 30 to synchronize the media database 38 with a media database 40 at the media device 16 (step 302). More specifically, the media database 38 at the mobile device 20 operates as a master database and includes the metadata describing the content stored in the content databases 26 of the WPANs 12 and 14. In addition, the media database 38 stores the last-played time-stamp for each file. Synchronization may begin by updating the media database 38 to add metadata describing content recently added to the content database 26 or remove metadata describing content recently removed from the content database 26. Then, the media client 36 communicates with the media server 30 such that the media database 40 at the media device 16 includes all of the information from the media database 38 at the mobile device 20.
Thereafter, the media server 30, rather than the media client 36, selects the content to be played using the media database 40 (step 304). For example, the media server 30 may select content such that only new content is played. Since the media database 40 includes information for each of the WPANs 12 and 14, the media server 30 may select only new content that has not yet been played in either of the WPANs 12 and 14. Alternatively, the media server 30 may intelligently decide what content to select based on the past play history. More specifically, the media server 30 may examine the last-played time-stamp for the files to determine the play history either in the WPAN 12 or in both of the WPANs 12 and 14. Based on the examination, the media server 30 may determine that all or a majority of the last N files that were played are music files of a particular genre, digital images of the user's children, or the like. Based on this determination, the media server 30 may select content to be played that is consistent with the play history.
After selecting the content, the media server 30 directs the media player 28 to play the select content (step 306). In response, the media player 28 obtains the select content from the content database 26 and plays the select content (step 308). The media server 30 then sends a notification to the media client 36 when the process is complete (step 310). The notification may be sent at any time after the media server 30 directs the media player 28 to play the select content. For example, the notification may be sent once the playing of the select content by the media player 28 is complete. Upon receiving the notification from the media server 30, the media client 36 updates the last-played time-stamp for the select content within the media database 38 (step 312).
Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.