RELATED APPLICATIONSThis patent application is a Continuation of U.S. patent application Ser. No. 13/096,214, filed on Apr. 28, 2011; which is a Continuation of U.S. patent application Ser. No. 12/846,109, filed Jul. 29, 2010, now U.S. Pat. No. 7,949,333, issued on May 24, 2011, which is a Continuation of U.S. patent application Ser. No. 11/270,293, filed Nov. 9, 2005, now U.S. Pat. No. 7,787,904, issued on Aug. 31, 2010, the disclosures of which are hereby incorporated herein by reference in their entireties.
FIELD OF THE INVENTIONThe present invention relates to controlling content played at a number of media devices using a mobile device.
BACKGROUND OF THE INVENTIONEach 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.
SUMMARY OF THE INVENTIONThe 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.
BRIEF DESCRIPTION OF THE DRAWING FIGURESThe 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.
FIG. 1 is a block diagram of a system including a mobile device and a number of media devices, wherein the mobile device controls the content played by the media devices according to one embodiment of the present invention;
FIG. 2 is a block diagram of an exemplary media device according to one embodiment of the present invention;
FIG. 3 is a block diagram of an exemplary mobile device according to one embodiment of the present invention;
FIG. 4 illustrates a provisioning process wherein a mobile device obtains metadata describing content residing at a media device according to one embodiment of the present invention;
FIG. 5 illustrates an exemplary media database for the mobile terminal ofFIGS. 1,3, and4 according to one embodiment of the present invention;
FIG. 6 illustrates a process for controlling the content played by a media device according to one embodiment of the present invention;
FIG. 7 illustrates an exemplary system wherein a mobile device is simultaneously within Wireless Personal Area Networks (WPANs) associated with two media devices according to one embodiment of the present invention;
FIG. 8 illustrates an exemplary system wherein a mobile device is simultaneously within Wireless Personal Area Networks (WPANs) associated with two media devices according to another embodiment of the present invention; and
FIG. 9 illustrates a process for controlling the content played by a media device according to another embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSThe 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. Anexemplary system10 is illustrated inFIG. 1. In this embodiment, thesystem10 includes two Wireless Personal Area Networks (WPANs)12 and14. Although only twoWPANs12 and14 are illustrated, thesystem10 may include any number ofWPANs12 and14. In addition, the WPANs12 and14 may or may not overlap. The WPAN12 includes amedia device16, and the area covered by the WPAN12 depends upon a range of a wireless communication interface associated with themedia device16. Likewise, the WPAN14 includes amedia device18, and the area covered by the WPAN14 depends upon a range of a wireless communication interface associated with themedia device18.
As discussed below, themedia devices16 and18 include media players and content that may be played by the media players. Amobile device20, which includes a wireless communication interface, operates to control the content played by the media players of themedia devices16 and18. More specifically, the first time that themobile device20 enters the WPAN12, themobile device20 communicates with themedia device16 to obtain metadata defining the content stored at themedia device16 and then stores the metadata. The metadata may more generally be referred to as any information describing the content stored at themedia device16. Thereafter, a user associated with themobile device20 may select desired content to be played using the stored metadata. Alternatively, themobile device20 may automatically select desired content to be played based on user preferences. Themobile device20 then communicates with themedia device16 to direct themedia device16 to play the desired content. In response, themedia device16 plays the desired content. Likewise, when themobile device20 enters the WPAN14, themobile device20 obtains and stores metadata describing the content stored by themedia device18 and directs themedia device18 to play desired content.
Each of themedia devices16 and18 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 themedia device16 is illustrated inFIG. 2. Note that this discussion is equally applicable to themedia device18. As shown, themedia device16 includes awireless communication interface22, acontrol system24, and acontent database26. Thewireless communication interface22 may be a stand-alone device communicatively coupled to thecontrol system24 and operating to provide wireless communication between themedia device16 and themobile device20. Alternatively, thewireless communication interface22 may be embedded within themedia device16. Thewireless communication interface22 may operate according to a wireless communication standard such as, but not limited to, the Bluetooth wireless communication standard, the Zigbee wireless communication standard, the Wireless Fidelity (WiFi) wireless communication standard, or the IEEE 802.11 wireless communication standards.
Thecontrol system24 includes amedia player28 and aWPAN media server30, which is hereinafter referred to as themedia server30. Themedia player28 may be implemented in hardware and/or software and operates to play the content in thecontent database26 such that people within the WPAN or near to themedia device16 can view and/or listen to the content. Thecontent database26 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.
Themedia server30 may be implemented in software and/or hardware and operates to instruct themedia player28 to play select content based on instructions or information received from themobile device20. In addition, themedia server30 may optionally scan thecontent database26 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 themedia device16 may configure themedia server30 to select the content or content types to be made available to themobile device20.
FIG. 3 is a block diagram illustrating an exemplary embodiment of themobile device20. Themobile device20 may be a mobile phone, Personal Digital Assistant (PDA), or the like. Alternatively, themobile device20 may be a stand-alone device similar to a remote control. In general, themobile device20 includes awireless communication interface32 and acontrol system34. Thewireless communication interface32 may be a stand-alone device communicatively coupled to thecontrol system34 and operating to provide wireless communication between themobile device20 and themedia devices16 and18. Alternatively, thewireless communication interface32 may be embedded within themobile device20. Thewireless communication interface32 may operate according to a wireless communication standard such as, but not limited to, the Bluetooth wireless communication standard, the Zigbee wireless communication standard, or the Wireless Fidelity (WiFi) wireless communication standard, or the IEEE 802.11 wireless communication standards.
Thecontrol system34 includes aWPAN media client36 and amedia database38. TheWPAN media client36 is hereafter referred to as themedia client36. Themedia client36 may be implemented in hardware and/or software and operates to provide instructions or information to themedia server30 in order to control the content played by themedia player28. As discussed below in more detail, when themobile device20 enters one of theWPANs12,14, themedia client36 interacts with themedia server30 to obtain metadata describing the content in thecontent database26. The metadata is stored in themedia database38 and may include information such as a file name, file type, and an identifier of theWPANs12,14 for each file in thecontent database26. Note that, in the preferred embodiment, themedia database38 stores metadata describing the content in thecontent database26 for each of theWPANs12,14. In addition, last-played time-stamps for the content may be added to themedia database38, as discussed below. A user associated with themobile device20 may then browse the media database and select content to be played. For example, if themobile device20 is within theWPAN12, then the user may select content to be played by themedia device16 using themedia database38. If themobile device20 is within theWPAN14, then the user may select content to be played by themedia device18 using themedia database38. In another embodiment, themedia client36 may automatically select content to play from themedia database38 based on preferences previously entered by the user.
FIG. 4 illustrates a provisioning process performed the first time that themobile device20 enters theWPAN12. Note, however, that this discussion equally applies to the first time that themobile device20 enters theWPAN14. When themobile device20 enters theWPAN12 by coming within the range of thewireless communication interface22 of themedia device16, themedia client36 detects themedia server30 and a validation process is performed (step100). During the validation process, themedia client36 interacts with a user associated with themobile device20 to obtain a password or key, which may also be referred to as a passkey. Once the passkey is entered by the user, it is provided to themedia server30 and communication between themedia client36 and themedia server30 is established. In the preferred embodiment, the validation process is performed only once when themobile device20 enters theWPAN12 for the first time. If themobile device20 leaves theWPAN12 and later returns, the validation process does not need to be repeated. In one embodiment, the wireless communication interfaces22,32 of themedia device16 andmobile device20, respectively, operate according to the Bluetooth wireless communication standard and the validation process is the pairing process described in the Bluetooth specification.
Once validation is complete, themedia client36 sends a request to themedia server30 for metadata describing the content in thecontent database26 at the media device16 (step102). In response, themedia server30 queries thecontent database26 to obtain the metadata describing the content within the content database26 (step104). The metadata may include information such as the file name and file type for each file in thecontent database26. In addition, themedia server30 may add a server name or identifier of themedia device16 to the metadata. Themedia server30 then returns the metadata to the media client36 (step106), and themedia client36 stores the metadata in the media database38 (step108).
Steps100-108 are repeated each time themobile device20 enters one of theWPANs12,14 for the first time. As such, themedia database38 stores metadata describing the content in thecontent databases26 for each of theWPANs12,14.
FIG. 5 illustrates an exemplary embodiment of themedia database38. As shown, themedia database38 includes an ID, file name, file type, last-played time-stamp, and server name for each file stored in thecontent databases26 of themedia devices16 and18. The IDs may be assigned to each of the files by themedia client36. The name and file type are provided in the metadata provided to themedia client36 from themedia server30. The last-played time-stamp indicates the time at which the particular file was last played by themedia player28 and may be added to themedia database38 by themedia client36. Optionally, the last-played time-stamp may be provided in the metadata provided by themedia server30. The server name is an identifier for theWPANs12,14 in which the content is located and may be added by themedia client36 or provided in the metadata from themedia server30. In this example, the server names are “Kitchen” and “Study.” The “Kitchen” server name may be used to identify theWPAN12, and the “Study” server name may be used to identify theWPAN14. Thus, for example, when themobile device12 is within theWPAN12, themedia client36 may enable the user associated with themobile device20 to browse the content stored in thecontent database26 within theWPAN12 and select content to be played by themedia player28.
FIG. 6 illustrates the process of controlling the content played by themedia device16 according to one embodiment of the present invention. Note, however, that this discussion equally applies to controlling the content played by themedia device18 when themobile device20 is within theWPAN14. The process begins when themobile device20 enters theWPAN12 and themedia client36 detects the media server30 (step200). For example, themedia server30 may periodically scan theWPAN12 for amobile device20. Alternatively, themobile device20 may periodically perform a scan for themedia devices16,18. Note that if this process is performed after the provisioning process ofFIG. 4, then step200 may be unnecessary. Once themedia client36 has detected themedia server30 or visa versa, communication between themedia client36 and themedia server30 is established.
Thereafter, themedia client36 may optionally communicate with themedia server30 to obtain any updates to the metadata describing the content in the content database26 (step202). This may be particularly beneficial where themobile device20 has just re-entered theWPAN12 after leaving for some period of time during which content may have been added or removed from thecontent database26.
Themedia client36 then operates to select desired content to play at themedia device16 from the media database38 (step204). In one embodiment, a user interacts with themedia client36 to browse themedia database38 and select desired content in thecontent database26 to be played. In another embodiment, the user associated with themobile device20 may interact with themedia client36 to define preferences. The user may define preferences for each of theWPANs12 and14 or a single set of preferences to be applied to all of theWPANs12 and14. The preferences may then be used by themedia client36 to automatically select the desired content to be played using themedia database38. As a first example, the user may configure his preferences such that content is selected based on genre. More specifically, themedia player28 within theWPAN12 may be capable of playing audio content, and the user may configure his preferences such that themedia client36 automatically selects music content in a desired genre such as “rock” when themobile device20 is within theWPAN12. Note that the genre of the content may be provided in the metadata from themedia server30. 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 themedia client36 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 themedia client36. As a fourth example, the user may configure his preferences by defining a play list for each of theWPANs12 and14. As a fifth example, the user may configure his preferences such that themedia client36 selects new content as the content to be played.
Themedia client36 then directs themedia server30 to play select content from the content database26 (step206). Once themedia server30 receives the request to play the desired content from themedia client36, themedia server30 directs themedia player28 to play the desired content (step208). In response, themedia player28 obtains the desired content from thecontent database26 and plays the desired content (step210). Themedia server30 then sends a notification to themedia client36 when the process is complete (step212). The notification may be sent at any time after themedia server30 directs themedia player28 to play the desired content. For example, the notification may be sent once the playing of the desired content by themedia player28 is complete. Upon receiving the notification from themedia server30, themedia client36 updates the last-played time-stamp for the desired content within the media database38 (step214).
FIGS. 7 and 8 illustrate two embodiments where themobile device20 is within both of theWPANs12 and14 simultaneously. If themedia devices16 and18 play content types that do not interfere with one another, themobile device20 may operate as described above to control both of themedia devices16 and18. For example, if themedia device16 plays slideshows without audio or displays digital images, then themobile device20 may direct themedia device16 to play a slideshow or display digital images while simultaneously directing themedia device18 to play other content such as a movie, song, or slideshow.
On the other hand, if themedia device16 is capable of playing content that may interfere with content played by themedia device18 or vice versa, then themedia client36 may control themedia devices16 and18 in such a manner as to avoid interference. In one embodiment, the user may select a desired one of themedia devices16 and18. In another embodiment, themedia client36 may automatically select one of themedia devices16 and18 based on priorities assigned to themedia devices16 and18 by the user. In yet another embodiment, themedia client36 may automatically select a one of themedia devices16 and18 closest to themobile device20 based on the strength of the signals received from themedia devices16 and18. In any of these three embodiments, one of themedia devices16 and18 is selected and themobile device20 operates as described above to control the content played by the selected one of themedia devices16 and18.
As an alternative, themedia client36 may control themedia devices16 and18 simultaneously even though themedia device16 is capable of playing content that may interfere with the content played by themedia device18 or vice versa. More specifically, themedia client36 may determine the types of files that may be played by each of themedia devices16 and18 by examining the file types stored in themedia database38. If any of the file types played by one of themedia devices16,18 may interfere with the playing of any of the file types played by the other of themedia devices16,18, themedia client36 may control the selection of content to be played by themedia devices16 and18 such that interfering file types are not played simultaneously. For example, if the both of themedia devices16,18 are capable of playing movies and songs or displaying digital images, themobile device20 may control themedia devices16 and18 such that if one of themedia devices16,18 is playing video (with audio) or audio, then the other of themedia devices16,18 displays digital images. As another example, assume that themedia client36 operates such that the user selects the content to be played. If the user selects an audio file to be played by themedia device16, then themedia client36 may prevent selection of another audio file to be played by themedia device18 while themedia device16 is playing the selected audio file.
FIG. 9 illustrates an alternative process for controlling the content played by themedia device16. This embodiment is similar to that illustrated inFIG. 6. However, in this embodiment, themedia server30, rather than themedia client36, selects the content to be played. The process begins when themobile device20 enters theWPAN12 and themedia client36 detects the media server30 (step300). For example, themedia server30 may periodically scan for themobile device20. Alternatively, themobile device20 may periodically perform a scan for themedia devices16,18. Note that if this process is performed after the provisioning process ofFIG. 4, then step300 may be unnecessary. Once themedia client36 has detected themedia server30 or visa versa, communication between themedia client36 and themedia server30 is established.
Thereafter, themedia client36 communicates with themedia server30 to synchronize themedia database38 with amedia database40 at the media device16 (step302). More specifically, themedia database38 at themobile device20 operates as a master database and includes the metadata describing the content stored in thecontent databases26 of theWPANs12 and14. In addition, themedia database38 stores the last-played time-stamp for each file. Synchronization may begin by updating themedia database38 to add metadata describing content recently added to thecontent database26 or remove metadata describing content recently removed from thecontent database26. Then, themedia client36 communicates with themedia server30 such that themedia database40 at themedia device16 includes all of the information from themedia database38 at themobile device20.
Thereafter, themedia server30, rather than themedia client36, selects the content to be played using the media database40 (step304). For example, themedia server30 may select content such that only new content is played. Since themedia database40 includes information for each of theWPANs12 and14, themedia server30 may select only new content that has not yet been played in either of theWPANs12 and14. Alternatively, themedia server30 may intelligently decide what content to select based on the past play history. More specifically, themedia server30 may examine the last-played time-stamp for the files to determine the play history either in theWPAN12 or in both of theWPANs12 and14. Based or the examination, themedia server30 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, themedia server30 may select content to be played that is consistent with the play history.
After selecting the content, themedia server30 directs themedia player28 to play the select content (step306). In response, themedia player28 obtains the select content from thecontent database26 and plays the select content (step308). Themedia server30 then sends a notification to themedia client36 when the process is complete (step310). The notification may be sent at any time after themedia server30 directs themedia player28 to play the select content. For example, the notification may be sent once the playing of the select content by themedia player28 is complete. Upon receiving the notification from themedia server30, themedia client36 updates the last-played time-stamp for the select content within the media database38 (step312).
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.