HK1161373A - System and method for controlling media rendering in a network using a mobile device - Google Patents
System and method for controlling media rendering in a network using a mobile device Download PDFInfo
- Publication number
- HK1161373A HK1161373A HK11113936.7A HK11113936A HK1161373A HK 1161373 A HK1161373 A HK 1161373A HK 11113936 A HK11113936 A HK 11113936A HK 1161373 A HK1161373 A HK 1161373A
- Authority
- HK
- Hong Kong
- Prior art keywords
- control element
- mobile device
- queue
- media
- rendering
- Prior art date
Links
Abstract
A system and a method control media rendering in a network using a mobile device. The system and the method manage, control and/or render media in a home network using remote access and/or a remote user interface. The system and the method enable a user to control media rendering from multiple storage devices and/or multiple servers connected to the home network using the mobile device. The system and the method enable a user to control media rendering on multiple rendering devices connected to the home network using the mobile device. The system and the method have a control element hosted on a fixed, non-mobile device connected directly to the home network or connected to the home network as a stand-alone device.
Description
Technical Field
The present invention generally relates to systems and methods for controlling media rendering in a network using a mobile device. More particularly, the present invention relates to systems and methods for managing, controlling and/or rendering media in a home network using remote access and/or remote user interfaces. The system and method enable a user to control media rendering from multiple storage devices and/or multiple servers connected to a home network using a mobile device. The system and method enable a user to control media rendering on multiple rendering devices connected to a home network using a mobile device.
Background
It is well known for users to consume media objects, such as audio files, video files, digital photographs and the like, in the home using multiple media servers and multiple media rendering devices. For example, the media object may be provided by a media server connected to a home network. The media objects may be stored on one or more of the media servers. The home network may also have various media rendering devices connected to the home network, such as stereos, televisions, personal computers, digital photo frames, other devices with multimedia content rendering capabilities, and the like. A user may remotely browse media objects from one or more "control points" in the home network and may consume particular media files on any compatible media rendering device connected to the home network.
The ability to organize, browse, and consume media is enhanced by the availability of connectivity technologies, such as the Universal Plug and Play ("UPnP") Audio and Video ("AV") standard and the Digital Living Network Alliance ("DLNA") standard. These connection technologies allow multimedia content to be distributed between various storage devices and associated media rendering devices in a home network. The UPnP AV standard defines protocols by which media servers and media rendering devices can be connected, controlled, and used to process and play multimedia content. The DLNA standard provides additional details and consistency points to ensure that UPnP AV-based home networking products communicate and work together properly. Products based on the UPnP AV standard and the DLNA standard allow consumers to easily access, control, and enjoy multimedia contents using a home network having a multimedia function.
The control point application is an application that controls a UPnP compatible server and a UPnP compatible playback device. For example, the control point application may allow a user to discover and/or browse multimedia content, such as digital video files or digital audio files, available from a particular UPnP server. The control point application may allow a user to transmit multimedia content to a particular UPnP rendering device for consumption.
Typically, media servers, media rendering devices, control points, and other devices connected to the home network are connected via an ethernet/wired local area network ("LAN"), IEEE 1394 ("Fire Wire"), IEEE 802.11 ("Wi-Fi"), or other similar state-of-the-art networking technologies. Mobile devices interacting with home networks are limited to wireless connectivity technologies; therefore, the mobile device must connect to the home network via a Wi-Fi connection. Typically, home networks also have external connections to the internet to enable personal computers and other devices connected to the home network to access external content, such as web pages, multimedia files, other content available on the internet, and the like.
The UPnP AV control point may reside on a PC, may be coupled with a media server, or may be built into a media rendering device. Alternatively, the UPnP AV control point may be located on a separate device, such as a UPnP "remote control" device. To add UPnP AV control point functionality to a personal mobile device, the UPnP AV control point functionality may reside on a Personal Digital Assistant (PDA), a mobile phone, a portable video player, a portable gaming device, or other mobile device. A standard UPnP AV control point may be added to any such mobile device that is capable of connecting to a home network. Accordingly, the UPnP AV control point can communicate with a UPnP AV capable media server and a UPnP AV capable media reproducing apparatus connected to the home network. However, the mobile device must have Wi-Fi connectivity to wirelessly connect to the home network. Thus, a Wi-Fi connection is a requirement for any mobile device that supports standard UPnP AV control point functionality.
A typical communication path used by a standard UPnP AV control point to control media streamed from a media server to a media rendering device connects the media server, the media rendering device, and the control point. These typical communication paths use a home network to connect a media server, a media rendering device, and a UPnP AV control point.
When using a standard UPnP AV control point, a control point user can browse multimedia content available on a media server connected to the home network, can select and arrange media content objects for rendering, and can initiate and control the rendering of selected multimedia content files on selected media rendering devices. UPnP AV control points do not handle multimedia content files directly. The UPnP AV control point requests metadata of the multimedia content file from the media server and presents information provided by the metadata to the control point user. The control point user may use the information provided by the metadata to select one or more of the multimedia content files. Further, the UPnP AV control point provides an indirect reference, such as a uniform resource locator ("URL"), to one of the media rendering devices to identify the particular multimedia content file that the media rendering device should render. The media rendering device is thus responsible for requesting multimedia content files directly from the media server on which they are stored.
The multimedia content files may be individually selected for rendering, or may be placed in a "device queue" that is a list of multimedia content files. The device queue is used to transmit multimedia content files located in the device queue to the selected media rendering device. Device queues are typically managed and maintained by UPnP AV control points. The control point user has various remote control options while the content is playing on the media reproduction device, such as fast forward, rewind, pause, play, stop, volume control, and the like. If a device queue is employed, the control point user has additional options to manage the device queue, such as changing the order or arrangement of multimedia content files, adding multimedia content files to the device queue, deleting multimedia content files from the device queue, advancing to different multimedia content files within the device queue, and the like.
The control point user may select a media rendering device and may instruct the UPnP AV control point to render the contents of the device queue on the media rendering device. The UPnP AV control point may instruct the media rendering device to play each of the media content objects located in the device queue in sequence. The device queue is presented to the control point user as a temporary list of multimedia content files currently being consumed on the selected media rendering device.
While the media rendering device is rendering the media content object, the UPnP AV control point may exercise additional controls on the rendering, such as fast forward, rewind, pause, play, stop, volume control, etc., under the control of the control point user. In addition, the UPnP AV control point may exercise additional control over the device queue, such as advancing to the next media content object in the device queue, advancing to the previous media content object in the device queue, and so forth.
SimpleCenter (a registered trademark of Universal Electronics, Inc), Nokia (a registered trademark of Nokia corporation) UPnP-capable mobile devices, and Rudeo Play & Control (a trademark of Rudeo consultative corporation) on pocket PC devices are examples of UPnP AV Control points. SimpleCenter is Windows PC software that implements UPnP control points and media server and media rendering device capabilities. Some Nokia mobile phones (e.g., N80 mobile phones and N95 mobile phones) and Nokia tablets (N800 internet tablets) have standard UPnP control points located on the mobile device. Rudeo Play & Control is an add-on software product that implements UPnP AV Control points on pocket PC devices. Rudeo Play & Control has a standard UPnP AV Control point with additional specialized enhancements described below.
The UPnP AV communication protocol operates based on the following assumptions: a device hosting a UPnP AV control point will always be "powered on" and always connected to the home network. UPnP defines an event occurrence (eventing) framework; accordingly, the media server and the media reproduction device may periodically transmit an event message, such as a message indicating that the device becomes available in the home network or a message indicating a play status. For example, the message indicating the play status may be transmitted when the media rendering device has completed rendering the multimedia content file.
If a device hosting a UPnP AV control point is not always "powered on" or connected to the home network, the UPnP AV control point may miss events that may need to be addressed to maintain or control operation. The UPnP AV rendering device is simple in that it handles only one multimedia content file at a time. Therefore, a UPnP AV control point with device queue capabilities must monitor the rendering of the media rendering device. When the media rendering device completes rendering of one of the multimedia content files in the device queue, the UPnP AV control point may then notify the target media rendering device of the next multimedia content file to be rendered. The UPnP AV control point manages a device queue and must continuously boot the media rendering device.
If the UPnP AV control point loses connection to the home network, the device queue that the control point user has established will not be able to be maintained, and the media rendering device will have no instructions on how to continue rendering the multimedia content files located in the device queue. When the rendering of the current device queue object is complete, the rendering will stop, which is a problem for the UPnP AV control point residing on the mobile device. Mobile devices are unreliable for hosting UPnP AV control points because they may "power down," may utilize battery power leaving insufficient battery power, or may move to a location outside of the Wi-Fi connection range.
For example, a control point user may employ the UPnP AV control point of a Nokia N800 mobile phone to play a device queue of selected music tracks from a UPnP AV media server to a UPnP AV capable home stereo. If the N800 device "powers down," utilizes battery power such that insufficient battery power remains, and/or moves to a location outside of the Wi-Fi connection range, the home stereo will stop reproducing at the end of the current music track.
Rudeo Play & Control proposed a solution to this problem. Providing an associated PC application: playing and controlling the media server. The play and control media server can host the device queue. The control point user can create, manage and use device queues from the user interface of the playback and control client on the pocket PC mobile device. The device queue may be hosted on a PC connected to the home network, where the PC executes an associated server application. In this case, the device queue is created and controlled remotely by commands sent from the pocket PC mobile device to the PC server application. The PC server application is responsible for transmitting periodic commands to the media rendering device to continue rendering the contents of the device queue. Thus, even if the mobile device "powers down," utilizes battery power such that insufficient battery power remains, or moves to a location outside of the Wi-Fi range, the rendering device queue continues.
The mobile Control point client of Rudeo Play & Control acts as a standard UPnP AV Control point when no PC server application is present or when the Control point user chooses not to utilize a PC server application. The mobile control point client internally manages the device queue as previously stated for a standard UPnP AV control point without the presence of a PC server application or the control point user elects not to utilize a PC server application. If a PC server application is present, the Mobile control Point client uses a combination of standard UPnP AV protocol and a proprietary protocol. For example, mobile control point clients use standard UPnP AV protocols to browse directly to media servers for content or to control directly media rendering devices for non-queue related tasks, and use specialized protocols to create, manage and control device queues hosted by specialized PC server applications. Direct communication with the home network is required; thus, Rudeo's mobile control point client requires Wi-Fi connectivity to a pocket PC mobile device hosting the mobile control point.
Existing mobile UPnP AV control points are limited to devices with Wi-Fi connectivity, which is disadvantageous because many mobile devices do not have Wi-Fi connectivity. In addition, mobile devices that do have Wi-Fi connectivity capabilities tend to be high-end devices, such as business phones and PDAs, which are relatively expensive and low volume and sales. More popular lower cost devices, such as mid-to-low end mobile phones, typically do not have Wi-Fi connectivity, which makes these mobile devices incapable of hosting control point functionality.
Furthermore, existing mobile UPnP AV control points must install specific software on the mobile device, such as a UPnP stack and associated control point applications. The mobile device requires specific software to communicate directly with the UPnP compliant media server and the UPnP compliant media rendering device connected to the home network. The requirement of specific software is disadvantageous because the provider must make many variations of the specific software to support a variety of mobile devices. The making of variants of the specified software places an additional cost and effort on the provider of the control point software. Further, the specified software may not be installed on the mobile device when the mobile device is initially sold to the user. The user must then obtain and install the correct variant of the specified software on the mobile device. Many users will not utilize the specified software if effort is required to obtain and install the specified software.
Furthermore, existing mobile UPnP AV control points have been limited to one device queue that directs multimedia content to one media rendering device at a time. However, most multimedia-capable home networks have a variety of media rendering devices.
Furthermore, existing mobile UPnP AV control points limit the use and control of device queues to the control point and associated control point user that created the device queue. Control of device queues is not shared among multiple users on different mobile devices. However, media rendering devices connected to a home network are typically shared among multiple residents of the home, and each resident may have a different mobile device that can be used to control the rendering of multimedia content. For example, user B may enter a room of a home and find a digital stereo that is already playing a queue of music content previously created by user a using a mobile control point on a mobile device owned by user a. User B may wish to see what music content is queued on the digital stereo system or may wish to control or edit the music content. However, user B typically does not have access to view, edit, control, or manage the queue from which the music content is being played because the queue is under the control and ownership of the mobile control point residing on user a's mobile device.
There is therefore a need for a system and method for controlling media rendering in a network using a mobile device. Further, there is a need for systems and methods for managing, controlling and/or rendering media in a home network using remote access and/or remote user interfaces. Still further, there is a need for a system and method for controlling media rendering in a network using a mobile device that enables a user to control media rendering from multiple storage devices and/or multiple servers in the network. Still further, there is a need for a system and method for controlling media rendering in a network using a mobile device that enables a user to control media rendering on multiple rendering devices connected to a home network using the mobile device. Still further, there is a need for systems and methods for controlling media rendering in a network using a mobile device as a control point in the network without requiring the installation of specified software on the mobile device. Still further, there is a need for a system and method for controlling media rendering in a network using mobile devices that enables a single control point to create, control, manage and render content from multiple device queues, where each device queue transmits media content to a different selected media rendering device. Also, there is a need for a system and method for controlling media rendering in a network using a mobile device that allows sharing of a device queue among multiple users in a home network.
Disclosure of Invention
The present invention generally relates to systems and methods for controlling media rendering in a network using a mobile device. More particularly, the present invention relates to systems and methods for managing, controlling and/or rendering media in a home network using remote access and/or remote user interfaces. The system and method enable a user to control media rendering from multiple storage devices and/or multiple servers connected to a home network using a mobile device. The system and the method enable a user to control media rendering on a plurality of rendering devices connected to the home network using the mobile device.
It is, therefore, an advantage of the present invention to provide a system and method for controlling media rendering in a network using a mobile device.
Another advantage of the present invention is to provide a system and method for managing, controlling and/or rendering media in a network using remote access.
Moreover, another advantage of the present invention is to provide a system and method for managing, controlling and/or rendering media in a network using a remote user interface.
Yet another advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device that enables a user to control media rendering from multiple storage devices and/or multiple servers in the network.
Still further, an advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device as a control point in the network without requiring specific software to be installed on the mobile device.
Yet another advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device that enables sharing of a device queue among a plurality of users in a home network.
Still yet another advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device having an always-on, always-available control element located in a multimedia-capable home network.
Also, another advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device having a control element hosted on a fixed non-mobile device directly connected to a home network.
Still further, an advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device having a control element capable of communicating with and controlling a standard UPnP AV media server and a standard UPnP AV media rendering device in a home network.
Another advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device that enables multiple device queues to be created, managed, controlled, and rendered independently to different media rendering devices connected to a home network.
Yet another advantage of the present invention is to provide a system and method for managing, controlling and/or rendering media in a network that exposes a control interface that enables one or more mobile devices to control the functional capabilities of a control element.
Still yet another advantage of the present invention is to provide a system and method for managing, controlling and/or rendering media in a network that enables a mobile device to fully control a media server, a media rendering device and a device queue via a control interface between the mobile device and a control element.
Also, another advantage of the present invention is to provide a system and method for controlling media rendering in a network using a mobile device that does not require the mobile device to communicate directly with the home network or with a media server and media rendering device connected to the home network.
Furthermore, it is an advantage of the present invention to provide systems and methods for managing, controlling and/or rendering media in a network that expose a control interface via any available connection by which a control element can communicate with a mobile device.
Additional features and advantages of the present invention are described in, and will be apparent from, the detailed description of the presently preferred embodiments and from the drawings.
Drawings
Fig. 1 illustrates a typical configuration of a home network with multimedia capabilities.
Fig. 2 illustrates the communication paths used by a standard UPnP AV control point.
FIG. 3 illustrates a typical operation of the Rudeo Play & Control system.
FIG. 4 illustrates a system for controlling media rendering in a network using a mobile device in an embodiment of the invention.
FIG. 5 illustrates a system for controlling media rendering in a network using a mobile device in an embodiment of the invention.
FIG. 6 illustrates a session between a mobile device and a control element in an embodiment of the present invention.
Fig. 7 illustrates various connection techniques employed in embodiments of the present invention.
Fig. 8A, 8B, 9A, 9B, 10A, 10B, 11A, 11B, 12A and 12B illustrate a flow chart for controlling media rendering in a network using a mobile device in an embodiment of the present invention.
Detailed Description
The present invention generally relates to systems and methods for controlling media rendering in a network using a mobile device. More particularly, the present invention relates to systems and methods for managing, controlling and/or rendering media in a home network using remote access and/or remote user interfaces. The system and method enable a user to control media rendering from multiple storage devices and/or multiple servers in a network using a mobile device. The system and method enable a user to control media rendering on multiple rendering devices connected to a home network using a mobile device. The system and method for controlling media rendering in a network may use a mobile device as a control point in the network without requiring the installation of specific software on the mobile device.
The systems and methods enable a user of a mobile device to create, control, manage, and render content from multiple device queues, where each device queue may be used to transmit media content to a different selected media rendering device. The device queue may be shared among multiple users and/or multiple mobile devices. The control element may be connected to the network as a separate device. Alternatively, the control element may be hosted on a fixed non-mobile device that is directly connected to the home network. The control elements may be controlled by one or more mobile devices in communication with the control elements. The control element communicates with and/or controls a standard UPnP AV media server and a standard UPnP AV media rendering device connected to the home network.
Referring now to the drawings, in which like numerals refer to like parts, fig. 1 generally illustrates a typical configuration of a multimedia-capable home network. The home network may include a network 1 that may be connected to a first media server 2, a second media server 3, a UPnP AV control point 9 (hereinafter "control point 9"), a first media rendering device 5, a second media rendering device 6, and/or a router 7. The router 7 may connect the network 1 to the internet 11. The network 1 may be, for example, an IEEE 802.11 ("Wi-Fi") network, an ethernet/wired local area network ("LAN"), an IEEE 1394 ("Fire Wire") network, and/or a hybrid network using a combination of such technologies. The control point 9 may be hosted on a device (e.g., a personal computer ("PC")) connected to the network 1. The control point 9 may be hosted on another device, such as a media server, a media rendering device, and/or a stand-alone UPnP remote control device. The first media server 2 and/or the second media server 3 may store multimedia content files such as audio files, video files, digital photos and/or the like.
A user of control point 9 may browse multimedia content files available on first media server 2 and/or second media server 3, may select and/or may arrange multimedia content files for rendering, and/or may initiate and/or may control rendering of selected multimedia content files on first media rendering device 5 and/or second media rendering device 6. The control point 9 may request metadata for the multimedia content file from the first media server 2 and/or the second media server 3 and/or may present information provided by the metadata to a user of the control point 9. The information presented to the user may allow the user to select one or more of the multimedia content files. Further, control point 9 may provide an indirect reference, such as a URL, to first media rendering device 5 and/or second media rendering device 6 to identify the particular multimedia content file that first media rendering device 5 and/or second media rendering device 6, respectively, should render. The first media rendering device 5 and/or the second media rendering device 6 may then request the multimedia content file directly from the first media server 2 and/or the second media server 3.
Fig. 2 generally illustrates a communication path used by a standard UPnP AV control point 10 (hereinafter "control point 10") to control media streamed from a media server 11 to a media rendering device 12. Each of the communication paths between the media server 11, the media reproduction device 12, and the control point 10 may utilize a home network. Under the control of the control point user 13, the control point 10 may browse the media server 11 to determine the available multimedia content. The control point user 13 may select a multimedia content file to be reproduced. A reference to a selected multimedia content file may be placed in a device queue 14 that may be located in the control point 10. For simplicity, we will hereinafter refer to the multimedia content file as "located in the device queue 14," but the device queue 14 may have references to the multimedia content file and/or metadata associated with the multimedia content file, rather than the multimedia content file itself.
The control point user 13 may manage the device queue 14 to add multimedia content files to the device queue 14, delete multimedia content files from the device queue 14, and/or rearrange the order of multimedia content files located in the device queue 14. Control point user 13 may select media rendering device 12 and/or may instruct control point 10 to render the contents of device queue 14 on media rendering device 12. The control point 10 may instruct the media rendering device 12 to play each of the multimedia content files located in the device queue 14 in sequence.
For each multimedia content file located in the device queue 14, the control point 10 may provide a URL to the media rendering device 12, which may be associated with the corresponding multimedia content file that may be stored on the media server 11. Media rendering device 12 may then directly contact media server 11 to obtain the corresponding multimedia content file for rendering. When media rendering device 12 is rendering a multimedia content file, control point 10 may exercise additional controls on the rendering, such as fast forward, rewind, pause, play, stop, volume control, etc., under the control of control point user 13. In addition, control point 10 may exercise additional control over device queue 14 under the control of control point user 13, such as advancing to the next multimedia content file in device queue 14 and/or advancing to the previous multimedia content file in device queue 14.
FIG. 3 generally illustrates the operation of the Rudeo Play & Control system 49. The PC server application 51 may be hosted on a Windows PC 60 (registered trademark of microsoft corporation). The Rudeo Play & Control mobile Control point 50 (hereinafter "mobile Control point 50") may act as a standard UPnP AV Control point in the absence of a PC server application 51 and/or in the event that the Control point user 52 chooses not to utilize a PC server application 51. When acting as a standard UPnP control point, the mobile control point 50 may internally manage the device queue 14, similar to the management of the device queue 14 by the standard UPnP AV control point 10 shown in fig. 2.
If the PC server application 51 is present, the mobile control point 50 may utilize a combination of standard UPnP AV protocols and proprietary protocols. For example, the mobile control point 50 may use standard UPnP AV protocols to browse directly to the media server 54 for content and/or to control directly the media rendering device 55 for non-queue related tasks, and may use specialized protocols to create, manage and/or control the device queue 53 hosted by the specialized PC server application 51. Direct communication with the home network is required, so Rudeo's mobile control point client requires the pocket PC mobile hosting the mobile control point 50 to have Wi-Fi connectivity capability.
FIG. 4 generally illustrates a system 90 for controlling media rendering in a network using a mobile device in an embodiment of the invention. The system 90 may have a control element 100 that may allow the first user 91, the second user 92, and/or the third user 93 to access, manage, organize, and/or consume multimedia content files distributed throughout a network. The control element 100 may be hosted on a desktop Personal Computer (PC), a laptop PC, a Network Attached Storage (NAS) device, a router, a media server, a media rendering device, and/or the like. Alternatively, the control element 100 may be a stand-alone device connectable to a network.
The first media server 111, the second media server 112, and/or the third media server 113 (collectively "media servers 111, 112, 113") may be connected to the control element 100 via a network. First media rendering device 121, second media rendering device 122, and/or third media rendering device 123 (collectively, "media rendering devices 121, 122, 123") may be connected to control element 100 via a network. The media servers 111, 112, 113 may be connected to the media rendering devices 121, 122, 123 via a network. The control element 100 may be connected to the media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123 via a network. The control element 100 may be capable of communicating with and/or controlling the media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123.
In a preferred embodiment, the network may be a home network. The network may have wired and/or wireless connections. The network may be based on one or more of the following technologies: ethernet/wired LAN, Fire Wire, and/or Wi-Fi. The network may utilize other technologies not listed herein. The invention is not limited to a particular embodiment of the network.
The media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123 may comply with the DLNA standard and/or the UPnP AV standard. The system 99 may have at least one media server and at least one media rendering device. However, the system 99 does not have an upper limit on the number of media servers and/or the number of media rendering devices that are accessible via the network. The present invention is not limited to a particular number of media servers and/or media rendering devices.
Each of the media servers 111, 112, 113 may be (for example): a personal computer ("PC") that may have software that can implement a DLNA compliant AV server; a network attached storage ("NAS") device that may have DLNA compliant AV server capabilities; a digital video recorder ("DVR"), which may have DLNA compliant AV server capabilities; a portable computing device, such as a mobile phone or personal digital assistant ("PDA"), which may have DLNA compliant AV server capability; and/or a media capture device, such as a digital still camera or a video camera, which may have DLNA compliant AV server capabilities. The invention is not limited to a particular embodiment of the media servers 111, 112, 113.
Each of the media rendering devices 121, 122, 123 may be, for example: DLNA compliant televisions; a DLNA compliant set top box connected to a television that may or may not be DLNA compliant; DLNA compliant stereo system; a DLNA compliant audio adapter device connected to a stereo system that may or may not be DLNA compliant; a PC that may have media player software that may have DLNA compliant rendering capabilities; a portable computing device, such as a mobile phone or personal digital assistant ("PDA") that may have DLNA compliant rendering capabilities; DLNA compliant photo display frame; and/or a video game console, which may have UPnP technology. The present invention is not limited to a particular embodiment of the media rendering devices 121, 122, 123.
Each of the media servers 111, 112, 113 may store multimedia content files and/or may have access to externally stored multimedia content. For example, a media server may have access to remotely accessible multimedia content files, content streams, and/or content feeds via a content service that the media server may access using the internet. The media server may provide the availability of externally stored multimedia content, such as remotely accessible multimedia content files, content streams, and/or content feeds, to the media rendering device and/or other devices connected to the network. The present invention is not limited by the location where the multimedia content is stored, and can utilize multimedia content made available via a media server.
Each of the media servers 111, 112, 113 may provide multimedia content files to the media rendering devices 121, 122, 123. Multimedia content files may be simple media objects such as video clips, music tracks, and/or digital photos; may be a predefined composite object, such as a television series and/or a music album; and/or may be a compilation object that the user has previously defined, such as a music playlist and/or a photo slideshow. The present invention is not limited to a particular embodiment or type of multimedia content file.
The control element 100 may expose one or more control interfaces. Each of the control interfaces may allow one or more mobile devices to control the functional capabilities of the control element 100, which may have standard UPnP AV control point capabilities and/or enhanced device queue capabilities, as described below.
Standard UPnP AV control point capabilities may, for example, communicate with and/or control standard UPnP media servers and standard UPnP media rendering devices. Thus, the control element 100 may be in communication with the media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123 and/or may control the media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123.
The enhanced device queue capability may be, for example, to independently create, manage, control, and/or render multiple device queues to different media rendering devices connected to the network. Accordingly, the control element 100 may enable the first device queue 131, the second device queue 132, and/or the third device queue 133 (collectively, "device queues 131, 132, 133") to be created, managed, controlled, and/or rendered independently to the media rendering devices 121, 122, 123. Each of the device queues 131, 132, 133 may be associated with a target media rendering device. For example, as generally illustrated in fig. 4, a first device queue 131 may be associated with the first media rendering device 121; the second device queue 132 may be associated with a third media rendering device 123; and/or a third device queue 133 may be associated with the third media rendering device 122.
The first, second and/or third mobile devices 141, 142, 143 (collectively "mobile devices 141, 142, 143") may be connected to the control element 100 through first, second and/or third exposure control interfaces 151, 152, 153 (collectively "control interfaces 151, 152, 153"), respectively. The control interfaces 151, 152, 153 may be exposed via any available connection by which the control element 100 may communicate with the mobile devices 141, 142, 143. Each of the mobile devices 141, 142, 143 may be, for example, a mobile cellular telephone, a personal digital assistant ("PDA"), a 4G mobile device, a 3G mobile device, a 2.5G mobile device, an internet protocol (hereinafter "IP") video cellular telephone, an ALL-IP electronic device, a satellite radio receiver, a portable digital audio player, a portable digital video player, a laptop PC, a portable gaming device, and/or the like.
The system 99 does not have an upper limit on the number of device queues that the control element 100 can create. The present invention is not limited to a particular number of device queues. Additionally, the system 99 does not have an upper limit on the number of mobile devices that may be connected to the control element 100. The present invention is not limited to a particular number of mobile devices.
Each of the control interfaces 151, 152, 153 may enable each of the mobile devices 141, 142, 143 to control the media servers 111, 112, 113, the media rendering devices 121, 122, 123, and/or the device queues 131, 132, 133, respectively, via a particular control interface between a particular mobile device and the control element 100. Thus, communication between a particular mobile device and the control element 100 may be sufficient to enable control of the functionality of the control element 100. The mobile devices 141, 142, 143 may not require direct communication with the network, the media servers 111, 112, 113, and/or the media rendering devices 121, 122, 123. Thus, each of the mobile devices 141, 142, 143 may not be directly connected to the network. Furthermore, the mobile devices 141, 142, 143 may not require support for standard UPnP protocols.
The particular capabilities of each of the mobile devices 141, 142, 143 can determine whether a particular mobile device is directly connected to the network. For example, a mobile device without Wi-Fi connectivity capability may not be directly connected to the network. Mobile devices without Wi-Fi connectivity capability may use alternative connection technologies such as bluetooth (a trademark of the bluetooth corporation) wireless connections or mobile phone carrier networks. The mobile phone carrier network may be, for example, a 2.5G cellular network, a 3G cellular network, a 4G data cellular network, an IEEE 802.16 ("WiMax") network, and/or the like. For example, if the mobile device is a Wi-Fi equipped mobile phone, a Wi-Fi equipped PDA, a Wi-Fi equipped mobile video player, and/or a Wi-Fi equipped portable gaming device, the mobile device may communicate with the control element 100 using a Wi-Fi connection. As another example, if the mobile device is a mobile phone that can support a bluetooth connection, the mobile device may communicate with the control element 100 using the bluetooth connection. As yet another example, if the mobile device is a mobile phone that may be capable of supporting a packet data connection over a mobile phone carrier network, the mobile device may communicate with the control element 100 using the mobile phone carrier network. Additional details of these connection methods will be provided below.
The control interface may allow control of the control element 100 by a designated software application installed on the mobile device 141, 142, 143. Alternatively, the control interface may allow control of the control element 100 via standard software that may be present on the mobile device 141, 142, 143. Such standard software may be, for example, an HTML web browser, an XHTML web browser, a JavaScript interpreter, a Java virtual machine, a Flash player, and/or the like. In these cases, the control interface may be designed and/or formatted for compatibility with particular standard software modules. For example, the control element 100 may expose the control interface based on an XHTML web page supplemented with JavaScript. As another example, the control element 100 may expose a Flash (.swf) file with ActionScript code that may implement a user interface on a mobile device and/or may be capable of communicating with the control element 100 and/or controlling the control element 100.
As generally illustrated in fig. 5, the control element 100 may expose the control interfaces 151, 152, 153 to connect to the mobile devices 141, 142, 143, which may then control functions that may be provided by the control element 100. Each of the control interfaces 151, 152, 153 may be associated with a first data connection 161, a second data connection 162, and/or a third data connection 163 (collectively "data connections 161, 162, 163") for which the associated mobile device has connection capabilities, respectively. A description of the control interfaces 151, 152, 153 and a description of specific modifications to the connection technology will be provided below.
The control element 100 may have a core component 101, which may have core logic for the functionality that may be provided by the control element 100. Thus, the core component 101 may manage the functions of the control element 100. The core component 101 may act as a proxy for standard UPnP AV commands and/or standard UPnP AV functions provided to the mobile devices 141, 142, 143 via the control interfaces 151, 152, 153, respectively. Thus, the core component 101 may allow mobile devices that cannot be directly connected to the network to implement standard UpnP AV control point functionality. Core component 101 may provide enhanced device queue functionality. Thus, core component 101 may enable a user to utilize one of mobile devices 141, 142, 143 to create, edit, and manage device queues 131, 132, 133, and/or control rendering of multimedia content of device queues 131, 132, 133 by one or more of media rendering devices 121, 122, 123 that may be selected.
The core component 101 may manage device queue rendering for an associated media rendering device. Thus, the mobile device may not need to communicate directly with the selected media rendering device. Device queue rendering may continue if the mobile device is unavailable. The core component 101 may enable sharing of one or more of the device queues 131, 132, 133 between two or more of the mobile devices 141, 142, 143. The core component 101 may establish provisioning for queue discovery, access control, and/or collision avoidance.
The core component 101 may manage a session with one of the mobile devices 141, 142, 143. The session may track the control relationship between one of the mobile devices 141, 142, 143 and the control element 100. A session may have a session state associated with a control relationship. Each of the mobile devices 141, 142, 143 may have a single session with the control element 100, or may have multiple simultaneous sessions. Each of the multiple simultaneous sessions may be associated with a separate session state. The unique session identifier may be used to identify each of a plurality of simultaneous sessions. Session management may involve automatic saving and/or automatic restoring of session state to overcome interruptions in the connection between the control element 100 and the corresponding mobile device.
The core component 101 may perform a master control element selection procedure by which the core component 101 may detect that a plurality of control elements 100 may be connected to the network. The core component 101 may select a single master control element that may override the actions of other control elements 100 that may be connected to the network. The master control element may have advantages over other control elements 100 that may be connected to the network.
The control element 100 may have a memory component 102. The core component 101 may be connected to the storage component 102. The core component 101 may use the storage component 102 to store information about the device queues 131, 132, 133 and/or session states of sessions associated with a particular mobile device. The storage component 102 can have a list of available device queues 131, 132, 133. For each of the available device queues 131, 132, 133, the storage component 102 may have a unique identifier of the particular device queue, an ordered list of multimedia content files located in the particular device queue, a media rendering device associated with the particular device queue (if present), a current playback state of the particular device queue, a reference to creating the particular device queue and/or a session associated with the particular device queue, a reference to creating the particular device queue and/or a particular mobile device associated with the particular device queue, a reference to creating the particular device queue and/or a user associated with the particular device queue, and/or an indication of whether access to the particular device queue is locked to the particular session, the particular mobile device, and/or the particular user.
For each multimedia content file located in the device queue, the storage component 102 may have a reference to a particular media server from which the multimedia content file may be retrieved, metadata that may describe the multimedia content file, a URL that may reference the multimedia content file and/or a "selected" state of the multimedia content file. The "selected" state of the multimedia content file may be "yes" or "no". Metadata that may describe a multimedia content file may indicate, for example, a media type, a multipurpose internet mail extension ("MIME") type, a title, an author, an album name, a content rating, a copyright date, a reference to an associated graphical display icon, and/or the like. For example, the media type may be audio, video, image, and/or the like.
For the session state, the storage component 102 can have a list of known sessions. For each of the known sessions, the storage component 102 may have, for example, a unique session identifier for the session, a unique device identifier for the media rendering device associated with each session, a unique user identifier for the user associated with the session, a default media server, a default media rendering device, a list of associated device queues, a reference to a default device queue, a command history that may list one or more commands that may be associated with the session, a time at which the most recent command was received, a list of events that may be related to the session, and/or additional state information associated with the session.
The control element 100 may have a control point component 103 that may provide standard UPnP AV control point functionality that may be controlled by the core component 101. The control point component 103 can communicate with standard UPnP media servers, standard UPnP media rendering devices, and/or other UPnP compatible devices connected to the network. For example, control point component 103 may communicate with media servers 111, 112, 113 and/or media rendering devices 121, 122, 123. The control point component 103 may connect to the network using a fourth data connection 164. The control point component 103 can communicate with standard UPnP AV media servers, standard UPnP AV media rendering devices, and/or other UPnP AV compatible devices connected to the network using a fourth data connection 164.
The control point component 103 can use a standard UPnP AV discovery process to discover standard UPnP AV media servers, standard UPnP AV media rendering devices, and/or other UPnP AV compatible devices connected to the network. The control point component 103 can report information to the core component 101 regarding which of a standard UPnP AV media server, a standard UPnP AV media rendering device, and/or other UPnP AV compatible devices connected to the network are available. The control point component 103 may discover other control elements 100 that may be connected to the network. The control point component 103 may report other control elements 100 that may be connected to the network to the core component 101, and the core component 101 may then perform a main control element selection procedure to select the main control element.
A session between the mobile device 200 and the control element 100 may occur substantially as illustrated in fig. 6. The mobile device 200 may connect to the control element 100 using an associated data connection 201 and/or an associated control interface 202. The core component 101 may create a session in the storage component 102 to record the state of the session between the control element 100 and the mobile device 200. The core component 101 may then record and/or may retrieve details about the session when subsequently interacting with the mobile device 200. The mobile device 200 may limit itself to a single simultaneous session with the control element 100, or the mobile device 200 may be able to open multiple simultaneous sessions with the core component 101.
Although fig. 6 depicts only one mobile device, one data connection, and one control interface, the control element 100 may expose one or more control interfaces, and each of the control interfaces may allow one or more mobile devices to control the functional capabilities of the control element 100, as previously stated. Multiple control interfaces, multiple data connections, and multiple mobile devices may be employed in the embodiment of the invention generally illustrated in fig. 6.
A user may utilize the mobile device 200 to transmit commands to the control element 100. The commands may cause the control element 100 to transmit standard UPnP control point commands to a standard UPnP AV media server 210 connected to the network and/or a standard UPnP AV media rendering device 220 connected to the network 205. The control element 100 may return information that may be related to the result of the command to the mobile device 200. Thus, the control element 100 may act as a control point proxy that may allow the mobile device 200 to have standard UPnP AV control point functionality without requiring a direct connection to a standard UPnP AV media server 210 connected to the network and/or a standard UPnP AV media rendering device 220 connected to the network.
A user may utilize the mobile device 200 to transmit commands to the core components 101 using an associated data connection 201 and/or an associated control interface 202. The core component 101 may interpret the commands and/or may instruct the control point component 103 to transmit the appropriate UPnP control point commands to the appropriate UPnP AV device connected to the network 205 using the fourth data connection 164. The appropriate UPnP AV device can use the fourth data connection 164 to pass information back using a standard response to the control point component 103. The control point component 103 may report information to the core component 101, which the core component 101 may then provide the information to the mobile device 200 via the associated control interface 202 and/or associated data connection 201.
The following is a typical command exchange in which the control element 100 may act as a control point proxy for standard UPnP control point functionality. The user may utilize the mobile device 200 to request the control element 100 to provide a list of known media servers connected to the network and/or a list of known media rendering devices connected to the network (collectively referred to as a "requested list"). In response, the control element 100 may provide the requested list to the mobile device 200. The requested list may be based on device discovery information that may have been previously received by the control point component 103 and/or may have been stored in the storage component 102 by the core component 101. The mobile device 200 may display the requested list to the user.
The user may utilize the mobile device 200 to request the control element 100 to refresh the list of known media servers connected to the network and/or the list of known media rendering devices connected to the network (collectively referred to as a "refresh list"). In response, the control point component 103 of the control element 100 may initiate a device discovery refresh using standard UPnP methods. The control element 100 may provide the refresh list to the mobile device 200. Mobile device 200 may display the refresh list to the user. The control element 100 may update a list of known media servers connected to the network and/or a list of known media rendering devices connected to the network that may be located within the control element 100.
A user may utilize the mobile device 200 to instruct the control element 100 to browse content that may be provided by a media server. A browse request may be transmitted from the mobile device 200 to the control element 100. The browse request may include a content location, a search term, and/or a filter. The content location may be, for example, a folder name, a directory pathname, a container identification number, a URL, and/or other manner to specify a location for browsing within a content directory structure and/or organizational hierarchy under which the media server may render content for browsing. The filter may identify particular metadata fields to limit the browsing response to having only particular metadata fields. The filter may have a range of multimedia content file indices, such as 10-20, to limit the browsing response to a subset of the multimedia content files that may normally be returned. Further, the browse request may indicate that the multimedia content file that would normally be returned in the browse result should be added to a new device queue or an existing device queue managed by the control element 100.
In response, control point component 103 can transmit browse commands to the media server and/or can receive browse results from the media server. The browsing results may be transmitted from the control element 100 to the mobile device 200. If the browsing request indicates that the browsing results should be added to the new device queue, control element 100 may create the new device queue and/or may add the multimedia content files indicated in the browsing results to the new device queue. If the browsing request indicates that the browsing result should be added to the existing device queue, the control element 100 may add the multimedia content file indicated in the browsing result to the existing device queue. The control element 100 may transmit information regarding the new device queue and/or the modified existing device queue to the mobile device 200.
The browsing results may have a list of multimedia content files and/or containers with multimedia files available from the media server. The browsing results may have metadata about each of the multimedia content files and/or each of the containers. The metadata for the container may have a title, an identifier for the container, an identifier for the parent of the container, and/or a URL referencing the container. Metadata about a multimedia content file may have a file type, genre, MIME type, title, author, album name, content rating, copyright date, reference to an associated graphical display icon, and/or the like. The file type may be, for example, an audio file, a video file, an image, a playlist, and/or the like. The browsing results may be formatted as plain text, extensible markup language ("XML"), digital item declaration language ("DIDL") condensed segments, and/or another suitable format. Mobile device 200 may display information from the metadata to the user.
The mobile device 200 may instruct the control element 100 to query one of the media rendering devices 220 for the capabilities of the media rendering device. In response, the control point component 103 can use standard UPnP capability exchanges to determine the capabilities of a particular media rendering device. Information regarding the capabilities of a particular media rendering device may be transmitted to the mobile device 200. The mobile device 200 may determine whether a particular media rendering device is capable of rendering multimedia content files based on the capabilities of the media rendering device and/or the nature of the multimedia content files. The mobile device 200 may determine the nature of the multimedia content file via the browsing techniques previously described.
A user may utilize the mobile device 200 to instruct the control element 100 to direct a particular media rendering device to render a particular multimedia content file. In response, the control point component 103 can transmit standard UPnP commands to establish AV transport uniform resource identifiers ("URIs") for particular media rendering devices. The AV transport URI and/or error message generated by the particular media rendering device may then be transmitted from the control element 100 to the mobile device 200.
The user may utilize the mobile device 200 to instruct the control element 100 to control the play state of a particular media rendering device. For example, the mobile device 200 may request VCR-like controls, such as play, stop, pause, fast forward, rewind, position seek, and/or the like, for a particular media rendering device. In response, the control point component 103 can transmit standard UPnP commands to achieve corresponding control results for rendering on a particular media rendering device. As another example, the mobile device 200 may request control of audio volume settings on a particular media rendering device, such as changing volume, setting a mute state, and/or the like. The control point component 103 can transmit standard UPnP commands to achieve corresponding volume control results on a particular media rendering device. Other standard UPnP commands for rendering control may also be exposed by the control element 100 for use by the mobile device 200.
The user may utilize the mobile device 200 to instruct the control element 100 to provide information regarding the current play state of a particular media rendering device. For example, the mobile device 200 may request information about: a multimedia content file that a particular media rendering device may be currently rendering, a current playback position, a playback time, a playback speed, and/or whether a particular media rendering device is currently paused. The mobile device 200 may request, for example, a volume setting for a particular media rendering device, a maximum available volume setting for a particular media rendering device, and/or whether a particular media rendering device is currently in a muted state. In response, the control point 103 may transmit standard UPnP commands to the particular media rendering device and/or may transmit information of the response from the particular media rendering device to the mobile device 200. Mobile device 200 may display information from the response to the user.
A user may utilize the mobile device 200 to instruct the control element 100 to create, edit, and/or delete playlists on a particular media server. The instructions to edit the playlist may have the following operations: adding multimedia content files to a playlist, removing multimedia content files from a playlist, and/or moving multimedia content files within a playlist. In response, the control point component 103 can transmit standard UPnP commands to the particular media server to create, edit, and/or delete playlists on the particular media server. The results of the instructions to create, edit, and/or delete playlists and/or error messages may be collected by the control element 100 and/or may be transmitted to the mobile device 200. Mobile device 200 may display the results of the instructions to create, edit, or delete the playlist and/or error message to the user.
The user may utilize the mobile device 200 to transmit a rename and/or delete instruction to the control element 100 to rename and/or delete multimedia content files and/or file containers containing multimedia content files from a particular media server. In response, the control point 103 may transmit standard UPnP commands to a particular media server to rename and/or delete multimedia content files and/or file containers. The results of the rename and/or delete instruction and/or error message may be collected by the control element 100 and/or may be transmitted to the mobile device 200. The mobile device 200 may display the results of the rename and/or delete instructions.
The mobile device 200 may instruct the control element 100 to provide the mobile device 200 with event messages associated with a network-connected media server and/or a network-connected media rendering device. In response, the control point 103 can subscribe to the associated event message using a standard UPnP AV event message subscription framework. The control element 100 may then collect information about the event message as it is transmitted from a media server connected to the network and/or a media rendering device connected to the network. The control element 100 may transmit information regarding the event message to the mobile device 200.
The media server event message may be, for example, an indication of when the media server becomes available or unavailable in the network, an indication of updated content located on the media server, and/or the like. The media server event message related to the updated content may, for example, indicate that new content is available from the media server, that content has been removed from the media server, that content metadata and/or URLs have changed on the media server, that the directory structure of the media server has changed, and/or the like.
The media rendering device event message may be, for example, an indication of when the media rendering device becomes available or unavailable in the network, an indication of a change in the playback state of the media rendering device, and/or the like. The media reproduction device event message associated with the playback status may indicate, for example, a change and/or update to the multimedia content file currently being reproduced, a current playback position, a playback time, a playback speed, whether a particular media reproduction device is currently paused, a volume setting for a particular media reproduction device, whether a particular media reproduction device is currently in a mute state, and/or the like. The media rendering device event message may indicate that the media rendering device has reached the end of the current multimedia content file.
The mobile device 200 may instruct the control element 100 to establish one or more default and/or preferences, which may be stored in the state of the session recorded in the storage component 102 of the control element 100. The user may utilize the mobile device 200 to instruct the control element 100 to establish defaults and/or preferences. The default and/or preference may be used in the processing of subsequent commands. For example, the mobile device 200 may instruct the control element 100 to establish a default media server and/or a default media rendering device to be used in subsequent commands. The mobile device 200 may provide a filter to limit subsequent browsing results based on media type, MIME type, genre, content rating, and/or the like. The mobile device 200 may establish a preferred resolution for the graphical thumbnail icon to be used in a user interface display located on the mobile device 200. Further, the mobile device 200 may query the control element 100 to restore the default and/or preferences previously established by the mobile device 200.
A user may utilize the mobile device 200 to transmit a request to the control element 100 that may control the enhanced device queue functionality of the control element 100. The request may be used, for example, to create, edit, and/or manage a device queue, associate a device queue with a particular media rendering device, initiate and/or control rendering of multimedia content from a device queue to an associated media rendering device, and/or the like. The request may be received from the mobile device 200 using an associated control interface 202 and/or an associated data connection 201, and/or may be interpreted by the core component 101 of the control element 100. The request may cause the core component 101 to, for example: access may maintain device queue records in the storage component 102, modify device queue records, and/or transmit information about device queues to the mobile device 200. The request may cause the core component 101 to instruct the control point component 103 to transmit standard UPnP commands to the media rendering device associated with the device queue to initiate and/or control playback of the multimedia content file located in the device queue.
The following is a typical command exchange in which the mobile device 200 may access and/or control the enhanced device queue capabilities of the control element 100. The mobile device 200 may request the control element 100 to provide a list of available device queues and/or to provide detailed information about the device queues. In response, the core component 101 may obtain the requested information from device queue records that may be maintained in the storage component 102 and/or may transmit the information to the mobile device 200. The list of available device queues may have device queue names, identification numbers, URLs, and/or other unique identifiers that may be used to reference the device queue in subsequent commands. The detailed information about the device queue may have, for example: an ordered list of multimedia content files located in a device queue, a reference to a media rendering device that may be associated with the device queue, a current playback state of the device queue, a reference to a session that may have created the device queue, a reference to a mobile device that may have created the device queue and/or that may be associated with the device queue, a reference to a user that may have created the device queue and/or that may be associated with the device queue, and/or an indication of whether access to the device queue is locked to a particular session, a particular mobile device, and/or a particular user.
A user may utilize the mobile device 200 to request the control element 100 to create a new device queue. The mobile device 200 may transmit a new device queue creation command to the control element 100. For example, the core component 101 may create a new device queue record in the storage element 102 and/or may transmit a device queue name, identification number, URL, and/or other identifier to the mobile device 200 by which the new device queue may be subsequently referenced. The new device queue may be initially empty and/or the new device queue may have multimedia content files that may be specified by the mobile device 200 through a new device queue creation command. The new device queue may be associated with a default media rendering device, may be associated with a media rendering device that may be specified by the mobile device 200 in the new device queue creation command, or may not be associated with a media rendering device.
The user may utilize the mobile device 200 to request the control element 100 to delete the device queue. In response, core component 101 may delete the device queue and/or may delete the device queue record from storage element 102. A user may utilize the mobile device 200 to request the control element 100 to edit the device queue. For example, the editing operation may be adding one or more multimedia content files to the device queue, removing one or more multimedia content files from the device queue, moving the location of one or more multimedia content files within the device queue, and/or removing all multimedia content files from the device queue. The core component 101 may implement appropriate changes to the device queue and/or to device queue records that may be maintained in the storage element 102.
A user may utilize the mobile device 200 to request that the control element 100 create a new device queue based on a particular browsing request, based on specified user preferences, and/or based on a previous content viewing and/or listening history. The browse request may include a content location, search terms, and/or filters, as previously described. User preferences may include media type, genre, style, album name, series title, data range, "seed" item set, and/or the like. A seed item may include a list of one or more multimedia content files, artists, albums, program series titles, and/or other manners to specify multimedia content that may be similar to and/or may correspond to the specified seed item.
If the request to create the new device queue indicates a browse request, the control element 100 may transmit a corresponding browse request to the appropriate media server as previously described, may create the new device queue with an associated state stored in the storage element 102, may add the browse results to the new device queue and/or may transmit information regarding the new device queue to the mobile device 200. If the browsing request indicates a user preference, the control element may transmit one or more browsing requests to one or more available media servers, may arrange, filter, and/or limit browsing results to correspond to the user preference, may create a new device queue in an associated state stored in the storage element 102, may add the arranged, filtered, and/or limited browsing results to the new device queue, and/or may transmit information regarding the new device queue to the mobile device 200. The control element 100 may utilize a "content recommendation engine" in order to select multimedia content to be included in the new device queue based on user preferences. The content recommendation engine is not within the scope of the present invention; however, examples of content recommendation engines are well known in the art.
If the request to create a new device queue specifies creation of a new device queue based on a previous content viewing and/or listening history, the core component 101 of the control element 100 may access the storage element 102 to determine specific multimedia content according to the viewing and/or listening history of the mobile device 200 and/or a user of the mobile device 200. The multimedia content may have been previously viewed, listened to, and/or added to the device queue by mobile device 200 and/or the mobile device user. The control element 100 may create a new device queue with associated state stored in the storage element 102, may add multimedia content to the new device queue and/or may transmit information regarding the new device queue to the mobile device 200.
The user may utilize the mobile device 200 to specify a subset of selected multimedia content files that may be located in the device queue. Subsequent rendering of the device queue may be limited to a subset of the selected multimedia content files. The core component 101 may set the "selected" flag to "yes" for each multimedia content file of the selected subset, and/or may set the "selected" flag to "no" for each multimedia content file not in the selected subset for device queue records that may be maintained in the storage element 102. If the mobile device 200 requests detailed information about the device queue, the mobile device 200 may retrieve the value of the "selected" flag associated with the multimedia content file located in the device queue.
A user may utilize the mobile device 200 to instruct the control element 100 to initiate and/or control rendering of a device queue by an associated media rendering device. The associated media rendering device may have been previously associated with the device queue, may be a default media rendering device, or may be designated when the mobile device instructs the control element 100 to initiate rendering of the device queue. The reproduction of the device queue may be at the start of reproduction of the first multimedia file in the device queue or may be at the start of reproduction of a multimedia content file designated by the user and/or the mobile device 200. Rendering of the device queue may render the multimedia content files located in the device queue, or may be limited to rendering of a subset of the selected multimedia content files. Rendering of the device queue may be in a normal mode, or rendering of the device queue may be in an "unordered" mode, which may randomize the order in which the multimedia content files are rendered.
The reproduction control may have VCR-like controls such as play, pause, stop, fast forward, rewind, seek and/or the like. For example, rendering control may enable a user to establish which multimedia content file is currently being rendered, establish which multimedia content file will be rendered next, advance forward to a next multimedia content file located in a device queue, advance backward to a previous multimedia content file located in a device queue, advance to a random multimedia content file located in a device queue, and/or the like. As another example, rendering control may enable a user to establish a time interval at which image objects may be displayed in a "slide show" mode, and/or may manually advance forward or backward through image objects in a "slide show" mode. The core component 101 may create, may set, and/or may alter a playback state associated with a device queue record that may be maintained in the storage element 102. The core component 101 may instruct the control point component 103 to transmit standard UPnP commands to the media rendering devices associated with the device queue to initiate and/or control rendering of the device queue.
The user may utilize the mobile device 200 to request the control element 100 to provide information regarding the playback status of the device queue. In response, the core component 101 may obtain information about the playback status from device queue records that may be maintained by the storage element 102. The core component 101 may transmit information regarding the playback status to the mobile device 200. The mobile device 200 may display information to the user regarding the playback status of the device queue.
The information on the replay status of the device queue may have: a current play mode, such as pause, playing, and/or the like; a current sort mode, such as normal mode or "unordered" mode; a current file restriction mode, such as rendering all multimedia content files located in a device queue, rendering only selected multimedia content files, and/or the like; a current multimedia content file being reproduced; a next multimedia content file to be reproduced; an associated media rendering device; and/or the like. The information about the playback status of the device queue may also have information and/or an estimate of the current playback position, the current playback time, and/or the remaining playing time of the multimedia content file being reproduced.
The mobile device 200 may instruct the control element 100 to provide information to the mobile device 200 regarding events that may be related to a device queue that may be maintained by the control element 100. In response, the control element 100 may generate and/or may transmit information regarding the event to the mobile device to indicate a change in the device queue. For example, the change in the device queue may be: a multimedia content file added to the device queue; a multimedia content file deleted from the device queue; a movement of a location of a multimedia content file within a device queue; a change in the current play mode, such as pause, playing, and/or the like; a change in the current sort mode, such as to normal mode or to "unordered" mode; a change in a current file restriction mode, such as reproducing multimedia content files, reproducing only selected multimedia content files, and/or the like; a change in a multimedia content file currently being reproduced; an update of the playback time and/or the playback position; a change in a media playback device associated with a device queue; and/or the like.
A user may utilize the mobile device 200 to instruct the control element 100 to establish one or more default and/or preferences that may be used in the processing of subsequent commands that may be related to enhanced device queue capabilities. For example, defaults and/or preferences may establish: a default media rendering device for device queue playback; a default device queue; a default sort mode, such as normal mode or "unordered" mode; a default file restriction mode, such as rendering multimedia content files, rendering only selected multimedia content files, and/or the like; a default time interval at which image objects may be displayed in "slide show" mode; and/or filters to limit subsequent browsing results based on media type, MIME type, genre, content rating, and/or the like. The core component 101 may record defaults and/or preferences in a session record that may be maintained by the storage element 102. The default and/or preferences may be used by the core component 101 when processing subsequent commands associated with the session.
A user may utilize mobile device 200 to request that control element 100 lock access to a particular device queue. The control element 100 may grant the request to lock access, may deny the request to lock access, and/or may inform the mobile device 200 whether the request to lock access is granted or denied. Mobile device 200 may indicate to the user whether control element 200 granted the request to lock access or denied the request to lock access. If a request to lock access is granted, core component 101 may update a device queue record that may be maintained by storage element 102 to indicate that access to the device queue may be locked. The device queue record may indicate that the device queue is locked to the mobile device 200, to an associated session, and/or to a user that may have generated a request to lock access. The core component 101 may allow full access and/or full control of a locked device queue to the mobile device 200, to an associated session, and/or to a user who may have generated a request to lock access.
The core component 101 may restrict access and/or control of the locked device queue by other mobile devices, other sessions, and/or other users. Other mobile devices, other sessions, and/or other users may be allowed to view the content and/or playback status of the device queue, but may be prohibited from editing, managing, deleting, and/or controlling rendering of the locked device queue. The core component 101 may impose restrictions on access and/or control of the locked device queue until the core component 101 receives a request to unlock the device queue from the mobile device 200, an associated session, and/or a user that may have generated a request to lock access.
An administrative override may also be provided to allow unlocking of the locked device queue. The mobile device 200 may temporarily lock the device queue during the time that the mobile device 200 may be editing and/or controlling the device queue to prevent conflicting editing commands and/or conflicting control commands from other mobile devices. Alternatively, the mobile device 200 may lock the device queue for an extended amount of time to prevent shared access to the device queue if shared device queue access is not desired.
The control element 100 may maintain a rendering of the device queue. The control element 100 may not require ongoing instructions from the mobile device 200 to maintain a rendering of the device queue created by the mobile device 200. The control element 100 may monitor the playback status of the media rendering device associated with the device queue to determine when standard UPnP commands must be sent to the media rendering device to maintain rendering of the device queue.
Control element 100 may monitor playback by the media rendering devices associated with the device queue, may determine when the media rendering devices have completed rendering of the multimedia content file, and/or may instruct the media rendering devices to initiate rendering of the next multimedia content file. For example, the determination of when the media rendering device has completed rendering of the multimedia content file may be based on information regarding standard UPnP events transmitted from the media rendering device to the control element 100, status messages received from the media rendering device in response to status requests made by the control element 100, an elapsed amount of time that may be measured by the control element 100 using an available clock, and/or a combination of these methods.
The next multimedia content file to be rendered may be the next multimedia content file in the ordered list of multimedia content files located in the device queue. If the "unordered" mode is selected, the next multimedia content file to be rendered may be the next multimedia content file in the random reordering of the ordered list of multimedia content files located in the device queue. If the "play only selected object" mode is selected, the next multimedia content file to be rendered may be the next multimedia content file having the "selected" status in the ordered list of multimedia content files located in the device queue.
The control element 100 may receive information regarding UPnP events from a media server connected to a network, a media rendering device connected to a network, and/or other standard UPnP devices connected to a network. Information regarding UPnP events can be received by the control point component 103 and/or information regarding UPnP events can be transmitted from the control point component 103 to the core component 101 for processing. The core component 101 may transmit information regarding the UPnP event to a mobile device that may have requested information regarding the UPnP event. Information about UPnP events can be transmitted from the control element 100 to the mobile device 200 using the associated control interface 201 and/or the associated data connection 202.
The information regarding the UPnP event can be transmitted from the control element 100 to the mobile device 200 without delay after the information regarding the UPnP event is received by the control element 100. For example, information regarding UPnP events may be transmitted from the control element 100 to the mobile device 200 when the control element 100 receives the information regarding UPnP events. Alternatively, information about UPnP events may be collected by the control element 100 and/or may be stored by the control element 100 in the storage element 102 of the control element 100. The stored information regarding the UPnP event may be transmitted to the mobile device 200 after a delay and/or may be transmitted to the mobile device 200 in response to a request from the mobile device 200.
The control element 100 may transmit a message into the network that may indicate the presence and/or capabilities of the control element 100. The message may be transmitted when the control element 100 initiates a function, may be transmitted periodically, and/or may be transmitted in response to a device discovery request that the control element 100 may receive from another device connected to the network.
The control element 100 may receive a message that may indicate the presence and/or capabilities of a second control element connected to the network. After receiving a message that may indicate the presence and/or capabilities of a second control element connected to the network, the control element 100 component may exchange information with the second control element to determine which available control element may be the master control element.
The selection of the main control element 100 may be made based on a comparison of the capabilities of the available control elements. For example, the primary control element may be selected based on processing speed, available memory, connection speed, version of software and/or firmware utilized by the control element 100, and/or combinations of these factors. The master control element assembly may be selected based on the ability to provide the maximum number of control interfaces. The master control element may be selected based on the ability of one or more connection technologies necessary to provide support for one or more control interfaces.
Alternatively, a random process may be used to select the primary control element. For example, the available control elements may each generate a random number, may exchange random numbers, and/or may assign the master control element state to the available control elements that generate larger random numbers.
As yet another alternative, the primary control element may be selected based on user preferences and/or configuration. For example, an owner and/or manager of a home network may configure a particular control element to always be selected as the primary control element of the home network.
The new control element may be connected to the network. The master control element may already be connected to the network. The master control element may continue to act as the master control element. Alternatively, the master control element selection process may be repeated between new control elements, master control elements, and/or available control elements previously connected to the network. A new master control element may be selected to provide control element services in the network. If a new master control element is selected, the old master control element may communicate state information to the new master control element so that the new master control element may assume the responsibilities previously held by the old master control element. A mobile device that may have been previously served by an old master control element may be notified that a new master control element has been established.
As previously stated, the control element 100 may expose one or more control interfaces by which the mobile device may communicate with the control element 100 and/or by which the control element 100 may be controlled. The control interface 202 and/or the data connection 201 may allow the associated mobile device 200 to transmit requests to the control element 100 and/or receive corresponding responses from the control element 100. The control interface 202 and/or the data connection 201 may allow the control element 100 to transmit event messages to the mobile device 200. The event message may not require a corresponding request message to be sent from the mobile device 200 to the control element 100. Alternatively, the control interface 202 and/or the data connection 201 may not allow the control element 100 to transmit event messages to the mobile device and/or may require the mobile device 200 to transmit a request to obtain an event message from the control element 100 to the control element 100.
The control interface 202 and/or the data connection 201 may enable the exchange of requests, responses and/or event messages between the mobile device 200 and the control element 100 according to two functional categories: standard UPnP functionality and enhanced device queue functionality. Standard UPnP functionality may relate to the transmission of request, response and/or event messages that may enable the mobile device 200 to indirectly control, manage and/or use a standard UPnP device connected to a network via the control element 100. Thus, the control element 100 may act as a proxy for commands that may provide standard UPnP functionality. For example, the control element 100 may act as a proxy for a mobile device that may not have the capability to directly connect to a network and/or may not directly support a UPnP AV control point client. Enhanced device queue functionality may involve the transmission of request, response, and/or event messages that may enable the mobile device 200 to create, manage, and/or use a device queue via the control element 100.
The request, response, and/or event messages may be carried in hypertext transfer protocol ("HTTP") requests and/or HTTP responses, may be carried directly as transmission control protocol ("TCP") packet payloads, and/or may be carried in another protocol that may allow bi-directional exchange of data between the mobile device 200 and the control element 100 via a data connection 201 associated with the mobile device 200. The request, response, and/or event messages may be formatted in XML, in abstract syntax notation one ("asn.1"), as a list of key/value pairs, as plain text, and/or in some other suitable format.
Various connection techniques are generally illustrated in fig. 7. In a preferred embodiment of the invention, three different connection techniques may be used to provide the connection. If the mobile device 300 is Wi-Fi capable, a Wi-Fi connection 302 between the mobile device 300 and the control element 100 via a home Wi-Fi network 301 may be utilized.
If both the mobile device 310 and a device (not shown) hosting the control element 100 have bluetooth capabilities, a bluetooth connection 312 between the mobile device 310 and the control element 100 may be utilized. Alternatively, any wireless data connection may be employed by which the mobile device 310 may be directly connected to a device hosting the control element 100.
If the mobile device 340 may utilize the carrier mobile network 320, the connection of the mobile device 340 to the control elements may be accomplished using the carrier mobile network 320, the Internet 330, and/or the home Wi-Fi network 301. In a preferred embodiment, the network may be a 3G mobile network. However, any mobile network technology that can provide wireless data connectivity to a mobile device may be employed. For example, the carrier mobile network 320 may be a 2.5G mobile network, a 4G mobile network, a WiMax network, and/or the like.
A Wi-Fi capable mobile device 300 may connect directly to a home Wi-Fi network 301 via a Wi-Fi connection 302. The control element 100 may expose a control interface to the Wi-Fi capable mobile device 300. Any protocol that can be carried over the internet protocol ("IP") can be used to provide a control interface to the Wi-Fi capable mobile device 300. The request, response and/or event messages that provide the control interface may be carried in various ways. For example, request, response, and/or event messages may be formatted as payloads that are carried directly over the transmission control protocol/internet protocol ("TCP/IP"). As another example, the request and/or response may be formed as an HTTP request and/or HTTP response, which may have arguments, results, and/or other data carried in the body of the HTTP request and/or HTTP response. The event message may be carried via an HTTP request and/or the response may be discarded by the original sender of the event message. As yet another example, requests, arguments, parameters, results, and/or other related data may be formatted as a list of XML bodies, asn.1 messages, plain text, key/value pairs, in another format that may be carried as the body of a TCP payload, HTTP request and/or HTTP response, and/or the payload of some other IP-based protocol.
The Wi-Fi connection 302 that may connect the Wi-Fi capable mobile device 300 to the control element 100 may be a data path via the home Wi-Fi network 301. The Wi-Fi connection 302, which may connect the Wi-Fi capable mobile device 300 to the control element 100, may enable the control element 100 to transmit event messages directly to the Wi-Fi capable mobile device 300. Thus, a control interface exposed to a Wi-Fi capable mobile device 300 may have multiple options for delivering event messages to the Wi-Fi capable mobile device 300. The event message may be sent from the control element 100 to the Wi-Fi capable mobile device 300 when the event message is generated and/or after a processing delay. Alternatively, event messages may be buffered and/or accumulated by the control element 100 such that multiple event messages may be combined and/or may be transmitted substantially simultaneously from the control element 100 to the Wi-Fi capable mobile device 300. Alternatively, the event message may be buffered in the control element 100 and/or may be transmitted to the Wi-Fi capable mobile device 300 in response to a request transmitted to the control element 100 from the Wi-Fi capable mobile device 300.
While a Wi-Fi capable mobile device 300 may have connection capabilities for communicating directly with a media server 303 connected to a home Wi-Fi network 301 and/or a media rendering device 304 connected to the home Wi-Fi network 301, the Wi-Fi capable mobile device 300 may not need to communicate directly with the media server 303 and/or the media rendering device 304. A Wi-Fi capable mobile device 300 may not need to communicate directly with the media server 303 and/or the media rendering device 304 because the control element 100 may provide a single communication point that may be used to control the media server 303 and/or the media rendering device 304. Thus, a Wi-Fi capable mobile device 300 may not need to support standard UPnP commands. Furthermore, a Wi-Fi capable mobile device 300 may not need to have UPnP control point functionality, as the UPnP control point functionality may be provided by the control element 100 using a control interface.
A bluetooth-enabled mobile device 310 may be directly connected to a device that may take the place of the control element 100 through a bluetooth connection 312. The control element 100 may expose the control interface to a mobile device 310 having bluetooth capabilities. The control interface may utilize an appropriate bluetooth profile that is supportable by both the bluetooth-enabled mobile device 310 and the device hosting the control element 100. For example, the control interface may be based on a bluetooth personal area network ("PAN") profile and/or another profile that may allow for bidirectional message exchange. The requests, responses, and/or events that provide the control interface may be performed and/or transmitted in a manner similar to that of Wi-Fi enabled mobile device 300. For example, requests, arguments, parameters, results, and/or other related data may be formatted as a list of XML bodies, asn.1 messages, plain text, key/value pairs, in another format that may be carried as the body of a TCP payload, HTTP request and/or HTTP response, and/or the payload of some other IP-based protocol.
After the bluetooth data connection 312 is established, the control element 100 may transmit the event message directly to the bluetooth-capable mobile device 310 using the bluetooth data connection 312. Thus, a control interface exposed to a bluetooth enabled mobile device 310 may have multiple options for delivering event messages to the bluetooth enabled mobile device 310. The event message may be sent from the control element 100 to the bluetooth enabled mobile device 310 when the event message is generated and/or after a processing delay. Alternatively, the event messages may be buffered and/or accumulated by the control element 100 such that multiple event messages may be combined and/or may be transmitted substantially simultaneously from the control element 100 to the bluetooth enabled mobile device 310. Alternatively, the event message may be buffered in the control element 100 and/or may be transmitted to the bluetooth capable mobile device 310 in response to a request transmitted to the control element 100 from the bluetooth capable mobile device 310.
The bluetooth-enabled mobile device 310 may not have Wi-Fi capability, may not be able to connect directly to the home network, and/or may not have any means to communicate directly with the media server 303 connected to the home Wi-Fi network 301, the media rendering device 304 connected to the home Wi-Fi network 301, and/or other UPnP devices (not shown) connected to the home Wi-Fi network 301.
The mobile device 340 may connect to the control element 100 using the carrier mobile network 320. Thus, the data connection connecting the mobile device 340 to the control element 100 may be a data path via the carrier mobile network 320, the internet 330, and/or the home Wi-Fi network 301. As previously stated, the operator mobile network 320 may be a 3G mobile network; however, any mobile network technology that can provide wireless data connectivity to a mobile device may be employed. For example, the carrier mobile network 320 may be a 2.5G mobile network, a 4G mobile network, a WiMax network, and/or the like.
Complexity may arise with the use of the data path of the carrier mobile network 320, the internet 330, and/or the home Wi-Fi network 301, as the control interface may span three separate networks. For example, the mobile device 340 may have an IP address that is a local LAN address in the carrier mobile network 320. The local LAN address may prevent the control element 100 from transmitting a message to the mobile device 340. However, if a device that can host the control element 100 has a globally routable IP address, the mobile device 340 can transmit a message to the control element 100.
If the control element 100 is hosted on a device with a local LAN address in the home network, the mobile device 340 may not be able to transmit messages directly to the control element 100. Another device (e.g., router 350) connected to the home Wi-Fi network 301 may be assigned a globally routable IP address. The mobile device 340 may be able to transmit the message to the globally routable IP address of the router 350. The router 350 may be configured to forward messages from the mobile device 340 to the device hosting the control element 100. Forwarding may be implemented using a port mapping method.
As another example of the complexity that may arise because the control interface may span three separate networks, the globally routable IP addresses assigned to a device that may host the control element 100, the router 350, and/or another globally addressable device connected to the home Wi-Fi network 301 may change dynamically over time. For example, the globally routable IP address may be periodically changed by an internet service provider that may provide an internet connection to the home Wi-Fi network 301. Thus, in order for the mobile device 340 to transmit a message to the control element 100, the mobile device 340 may need to determine the current IP address of a device that may host the control element 100, the router 350, and/or another globally addressable device connected to the home Wi-Fi network 301.
DNS server 360 may be accessed and/or addressed by mobile device 340. DNS server 360 may support a dynamic DNS update method. For example, DNS server 360 may support the method described in IETF RFC 2136 "Dynamic Updates in the Domain Name System" and/or similar methods. DNS server 360 may be constantly updated with the current IP address of router 350, a device that may host control element 100, and/or another globally addressable device connected to home Wi-Fi network 301. The current IP address may be updated in the DNS server by an internet service provider, the router 350, a device that can host the control element 100, another globally addressable device connected to the home Wi-Fi network 301, and/or any device connected to the home network that may know the current IP address.
As yet another example of the complexity that may arise because the control interface may span three separate networks, the carrier mobile network 320 may implement a firewall 370 that may prevent messages transmitted from the control element 100 from being received by the mobile device 340. However, firewall 370 may not block responses to requests transmitted from mobile devices connected to operator mobile network 320. Thus, the mobile device 340 may initiate a request, such as an HTTP request, which may be transmitted to the control element 100 connected to the home Wi-Fi network 301. The control element 100 may initiate a response, such as an HTTP response, that may be transmitted to the mobile device 340 without being blocked by the firewall 370 of the carrier mobile network 320.
The home Wi-Fi network 301 may have a firewall that may reside on the router 350. The home Wi-Fi network 301 may have a software firewall located on devices connected to the home Wi-Fi network 301. A firewall and/or software firewall located on the router 350 may be configured to not block requests transmitted from the mobile device 340 and/or from other devices located outside the home Wi-Fi network 301. The configuration of the router 350 and/or the configuration of the software firewall may open a port on the router 350 and/or on the software firewall, wherein incoming messages and/or HTTP requests addressed to the port may not be blocked by the router 350 and/or the software firewall.
To address the previously described complexities that may arise because the control interface may span three separate networks, an example of a control interface suitable for use by the mobile device 340 is as follows. The mobile device 340 may access the DNS server 360 to obtain a globally routable IP address assigned to the control element 100, the router 350, and/or another globally addressable device connected to the home Wi-Fi network 301. The request that may be transmitted from the mobile device 340 to the control element 100 may be formed as an HTTP request and/or may be transmitted to an IP address that may be globally routed. If a globally routable IP address is assigned to a control element 100, the request may be received directly by the control element 100. If a globally routable IP address is not assigned to the control element 100, the router 350 and/or another globally addressable device connected to the home Wi-Fi network 301 may receive the request and/or may be configured to forward the request to the control element 100. The control element 100 may receive and/or may process the request, as previously described.
For each request received, the control element 100 may generate a response and/or may transmit a response to the mobile device 340. The response may be formatted as an HTTP response to the received HTTP request. HTTP responses are universally accommodated by firewalls and network address translation functions ("NATs") that may be present in various networks. Accordingly, the response may be delivered to the mobile device 340.
The control element 100 may not be able to transmit the event message to the mobile device 340 because the event message may be blocked by the firewall 370 of the operator mobile network. Accordingly, the control element 100 may generate the event message and/or may store the event message in the storage component 102 of the control element 100. The mobile device 340 may transmit a request for an event message to the control element 100. The control element 100 may generate a response that may have an event message that may have been previously generated and/or stored by the control element 100. The mobile device 340 may transmit a request for an event message at periodic time intervals.
Alternatively, the mobile device 340 may request the event message at a time when the event message may be useful. For example, the mobile device 340 may request an event message during a user interaction period when updated information regarding the media server 303, the media rendering device 304, and/or the device queue may be displayed on a user interface of the mobile device 340. Arguments, parameters, results, and/or other data related to the request, response, and/or event message may be formatted as an XML body, an asn.1 message, plain text, a list of key/value pairs, and/or in some other format that may be carried in the body of the HTTP request and/or HTTP response.
Figures 8A, 8B, 9A, 9B, 10A, 10B, 11A, 11B, 12A and 12B are flow diagrams generally illustrating communication between a mobile device, a control element, a media server and a media rendering device in an embodiment of the present invention. The steps of fig. 8A, 9A, 10A, 11A, and 12A are associated with components of a system that performs the steps and are represented in fig. 8B, 9B, 10B, 11B, and 12B.
More particularly, in fig. 8B, 9B, 10B, 11B, and 12B, the area directly below the control element 100 is used to generally illustrate the internal logic of the control element 100, which may indicate the tasks that the control element 100 may take. In fig. 8B, 9B, 10B, 11B, and 12B, the areas directly below the first mobile device 141 and the second mobile device 142 are used to generally illustrate the operations that the first mobile device 141 and the second mobile device 142 may perform, respectively. In fig. 8B, 9B, 10B, 11B, and 12B, the areas directly below the first media rendering device 121 and the second media rendering device 122 are used to generally illustrate the operations that the first media rendering device 121 and the second media rendering device 122 may perform, respectively. In fig. 8B, 9B, 10B, 11B, and 12B, the area directly below the first media server 111 is used to generally illustrate the operations that the first media server 111 may perform.
Each of fig. 8A, 9A, 10A, 11A, and 12A is a continuation of the previous flowchart, and each of fig. 8B, 9B, 10B, 11B, and 12B is a continuation of the previous flowchart. The state at the end of each flow chart can be continued to the beginning of the next flow chart. Thus, fig. 8A, 9A, 10A, 11A, and 12A may be considered a single continuous use flow, and fig. 8B, 9B, 10B, 11B, and 12B may be considered a single continuous use flow.
Communication between each of the mobile devices 141, 142, 143 and the control interface side of the control element 100 may use appropriate data connections that may be supported by both the mobile devices and the control element 100. Communication between the control element 100, the media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123 may be via a home network. Fig. 8A, 8B, 9A, 9B, 10A, 10B, 11A, 11B, 12A, and 12B generally illustrate that the mobile devices 141, 142, 143 may not need to be directly connected to and/or directly communicate with the media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123.
Fig. 8A, 8B, 9A, 9B, 10A, 10B, 11A, 11B, 12A, and 12B indicate states of the device queues 131, 132, 133 that may be maintained by the control element 100. Each of the device queues 131, 132, 133 is depicted as a box including a header row indicating the device queue name. The title row may also indicate a media rendering device that may be associated with a device queue, e.g., "→ R2", which indicates the association of the second rendering device 122 with the device queue.
For example, "S1" may represent the first media server 111, "R1" may represent the first media rendering device 121, "R2" may represent the second media rendering device 122, "Q1" may represent the first device queue 131 and/or "Q2" may represent the second device queue 132.
An ordered list of multimedia content files located in the device queue is depicted below the title line. Each of the multimedia content files is shown as a circle or a star. Each of the multimedia content files is labeled with a reference number. Thus, the multimedia content file located above the number "1" is the first multimedia content file of the device queue. The playback order of the objects corresponds to the ascending order of the associated reference numbers. A playback status symbol may appear below one of the multimedia content files to indicate that the device queue is currently in an active playback mode. The position of the playback status symbol indicates that the multimedia content file directly above the playback status symbol may be the multimedia content file currently being played. The playback status symbol may appear as a triangleTo indicate that the media rendering device that may be associated with the device queue may currently be set to render the multimedia content file directly above the playback status symbol, and that the media rendering device may be in a "play" state. The playback status symbol may be presented as a pair of vertical lines ("|) to indicate that the media rendering device, which may be associated with the device queue, may be currently set to render the multimedia content file directly above the play status symbol, and the media rendering device may be in a" pause "state and/or a" stop "state. The device queue may be accompanied by a padlock symbol (padlock symbol) to indicate that the device queue is locked to a particular mobile device, a particular user, and/or a particular session.
Referring to fig. 8A and 8B, the first user 91 may utilize the first mobile device 141 to create the first device queue 131 and/or initiate playback to the second media rendering device 122. As shown at step 801, the control element 100 may scan the home network to see available devices. The control element 100 may scan by transmitting a multicast device scan message into the home network. As shown at step 803, each available UPnP device can be established by assigning, for example, "SSDP: active, etc. messages are transmitted to the control element 100 to respond. The message may indicate the presence of the media servers 111, 112, 113 and/or media rendering devices 121, 122, 123 available in the home network. In the specific example depicted in fig. 8A and 8B, the first media server 111 and/or the second media rendering device 122 may transmit a message to the control element 100 indicating availability. Other media servers and/or other media rendering devices may transmit messages to the control element 100 indicating availability.
As shown at step 805, the control element 100 may request a detailed description of the device and its associated services. As shown at step 807, each device connected to the network may respond by transmitting a message to the control element 100 that may provide capability information, such as "SSDP: device and service capability "messages. The message that may provide the capability information to the control element 100 may provide the capability information of each of the media servers 111, 112, 113 and/or the media rendering devices 121, 122, 123 available in the home network.
As shown at step 809, control element 100 may record capability information. For example, the memory component 102 of the control element 100 may record capability information. The capability information may be used internally by the control element 100 and/or may be provided to mobile devices requesting information about available media servers 111, 112, 113 connected to the home network and/or available media rendering devices 121, 122, 123 connected to the home network. In the specific example depicted in fig. 8A and 8B, control element 100 may receive and/or may store information regarding first media server 111 and/or information regarding second media rendering device 122. The control element 100 may also receive and/or may store information regarding other media servers and media rendering devices.
As shown at step 811, the first mobile device 141 may transmit a request to obtain a list of available media servers, such as "RequestMediaServerList. A request to obtain a list of available media servers may be transmitted to the control element 100. As shown at step 813, the control element 100 may provide a list of available media servers to the first mobile device 141. In the particular example depicted in fig. 8A and 8B, the list of available media servers may have a first media server 111. The list of available media servers may have other available media servers in addition to the first media server 111.
As shown at step 815, the first mobile device 141 may transmit a request to obtain a list of available media rendering devices, such as "RequestRenderList". A request to obtain a list of available media rendering devices may be transmitted to control element 100. As shown at step 817, the control element 100 may provide a list of available media rendering devices to the first mobile device 141. In the particular example depicted in fig. 8A and 8B, the list of available media rendering devices may have a second media rendering device 122. The list of available media rendering devices may have other available media rendering devices in addition to the second media rendering device 122.
As shown at step 819, the first mobile device 141 may transmit a request to determine and/or obtain detailed information about content available from the first media server 111. A request to determine and/or obtain detailed information about content available from the first media server 111 may be transmitted to the control element 100. The request to determine and/or obtain detailed information may be, for example, "browsecondent (S1)", where S1 may indicate the first media server 111.
The request to determine and/or obtain detailed information may have references to the first media server 111, content location, search terms, and/or filters. The content location may be, for example, a folder name, a directory pathname, a container identification number, a URL, and/or other means to specify a location for browsing within a content directory structure and/or organizational hierarchy under which the first media server 111 may render content for browsing. The filter may identify particular metadata fields to limit the browsing response to having only particular metadata fields. The filter may have a range of multimedia content file indices, such as 10-20, to limit the browsing response to a subset of the multimedia content files that may normally be returned.
As shown at step 821, the control element 100 may transmit a browse request to the first media server 111. The browse request transmitted from the control element 100 may correspond to a request by the first mobile device 141 to determine and/or obtain detailed information about content available on the first media server 111.
As shown at step 823, the control element 100 may receive detailed information about content available on the first media server 111, such as a list of available content and/or associated metadata describing the content. The control element 100 may receive detailed information from the first media server 111 regarding content available on the first media server 111. If the first media server 111 supports sufficient mechanisms for searching and/or filtering, the application of search terms and/or filters may be accomplished by appropriate construction of a browse request transmitted from the control element 100 to the first media server 111. Alternatively, the application of the search terms and/or filters may be performed within the control element 100, for example, by reformatting, altering and/or restricting the results provided to the control element 100 by the first media server 111 prior to transmitting the results from the control element 100 to the first mobile device 141.
As shown at step 825, the control element 100 may respond to the request by the first mobile device 141 to determine and/or obtain detailed information about content available on the first media server 111 by providing a list of available content and/or associated metadata describing the content to the first mobile device 141.
As shown at step 827, a number of browsing exchanges may be performed as the first user 91 may browse available folders, available containers, and/or categories under which the first media server 111 may organize and/or may present content for browsing. The first user 91 may select content to be rendered based on one or more lists of available content and/or associated metadata that may be provided to the first mobile device 141 as a result of the browsing exchange.
As shown at step 829, the first mobile device 141 may transmit a request to create a new device queue 131 to the control element 100, such as "CreateQueue. A user input on the first mobile device 141 may prompt transmission of a request to create a new device queue 131. In response, the control element 100 may create a new device queue 131 and/or may transmit a queue identifier, such as "Q1," back to the first mobile device 141, as shown at step 831. The queue identifier may be used by the first mobile device 141 to reference the first device queue 131 in subsequent commands.
As shown at step 833, the first mobile device 141 may transmit one or more requests to add multimedia content files to the first device queue 131 to the control element 100, such as "addtuqueue (Q1, ContentList)", where Q1 may identify the first device queue 131 and/or ContentList may indicate a list of multimedia content files to be added to the first device queue 131. A user input on the first mobile device 141 may prompt transmission of a request to add a list of multimedia content files to the first device queue 131. The list of multimedia content files to be added to the first device queue 131 may be specified by referencing the corresponding multimedia content files on the first media server 111. In response, the control element 100 may update the internal state of the first device queue 131 and/or may indicate to the first mobile device 141 that the multimedia file was successfully added to the first device queue 131, as shown at step 835. In the specific example depicted in fig. 8a and 8B, four multimedia content files are added to the first device queue 131.
As shown at step 837, the first mobile device 141 may transmit a request to the control element 100 to associate the first device queue 131 with the second media rendering device 122. The request to associate the first device queue 131 with the second media rendering device 122 may be, for example, "associates render (Q1, R2)," where Q1 may indicate the first device queue 131 and/or R2 may indicate the second media rendering device 122. A user input on the first mobile device 141 may prompt transmission of a request to associate the first device queue 131 with the second media rendering device 122. In response, the control element 100 may update the internal state of the first device queue 131 and/or may indicate to the first mobile device 141 that the first device queue 131 is associated with the second media rendering device 122, as shown at step 839.
As shown at step 841, the first mobile device 141 may transmit a request to initiate reproduction of the first device queue 131 to the control element 100, such as "PlayQueue (Q1)", where Q1 may indicate the first device queue 131. A user input on the first mobile device 141 may prompt transmission of a request to initiate rendering of the first device queue 131. In response, control element 100 may direct second media rendering device 122 to initiate rendering of the first multimedia content file located in first device queue 131. As shown at step 843, the request from control element 100 may provide the URI to the second media rendering device 122 that may identify the first multimedia content file located in the first device queue 131. The request that may provide a URI may be, for example, "SetAVransportURI (X)", where X may indicate a URI. As shown at step 845, the request from control element 100 may direct second media rendering device 122 to initiate rendering of the first multimedia content file located in first device queue 131. The request to initiate reproduction of the first multimedia content file may be, for example, "Play". Based on the combination of the request that may provide the URI corresponding to the first multimedia content file located in the first device queue 131 and the request to initiate rendering, the second rendering device 122 may contact the first media server 111 to request the first multimedia content file of the first device queue 131. Depending on the particular capabilities of the second media rendering device 122, other command exchanges may be suitable for initiating the rendering of the first multimedia file.
The control element 100 may update the internal state of the first device queue 131 to indicate that the first multimedia content file of the first device queue 131 is currently being rendered on the second media rendering device 122. As shown at step 847, the control element 100 may transmit a response to the first mobile device 141, which may indicate that the request from the first mobile device 141 to initiate rendering of the first device queue 131 was successful. Due to the communications and actions set forth in fig. 8A and 8B, the second media rendering device 122 may render the first device queue 131.
Fig. 9A and 9B generally illustrate the first user 91 using the first mobile device 141 to modify the first device queue 131 and/or render the resulting content on the first media rendering device 121. Fig. 9A and 9B may be considered a continuation of fig. 8A and 8B, and/or the state at the end of fig. 8A and 8B may continue to the beginning of fig. 9A and 9B. Thus, the second media rendering device 122 may be rendering the first device queue 131 that may have been generated by the first user 91 using the first mobile device 141.
Referring again to fig. 9A and 9B, the first media reproduction device 121 may be initially inactive. The capabilities of the first media rendering device may have been discovered by the control element 100 and/or may have been recorded by it. The presence of first media rendering device 121 may be determined by first mobile device 141. The control element 100 may have indicated to the first mobile device 141 the presence of the first media rendering device 121 in response to a request from the first mobile device 141 to obtain a list of available media rendering devices.
As shown at step 901, the first mobile device 141 may transmit a request to pause the rendering of the first device queue 131 to the control element 100, such as "PauseQueue (Q1)", where Q1 may indicate the first device queue 131. A user input on the first mobile device 141 may prompt transmission of a request to pause the rendering of the first device queue 131. In response, the control element 100 may communicate with the second media reproduction device 122 to pause and/or stop reproduction of the first multimedia content file, as shown at step 903. The control element 100 may update the internal state of the first device queue 131 and/or may indicate to the first mobile device 141 that the rendering of the first multimedia content file is paused and/or stopped, as shown at step 905.
As shown at step 907, first mobile device 141 may transmit a request to determine and/or obtain detailed information regarding content available on first media server 111. The request to determine and/or obtain detailed information about content available on the first media server 111 may be, for example, "BrowseContent (S1)", where S1 may indicate the first media server 111. The request may be transmitted to the control element 100. As shown at step 909, the control element 100 may transmit a browse request to the first media server 111. The browse request transmitted from the control element 100 may correspond to a request by the first mobile device 141 to determine and/or obtain detailed information about content available on the first media server 111.
As shown at step 911, the control element 100 may receive detailed information about the content available on the first media server 111, such as a list of available content and/or associated metadata describing the content. The control element 100 may receive detailed information from the first media server 111 regarding content available on the first media server 111.
As shown at step 915, the control element 100 may respond to the request by the first mobile device 141 to determine and/or obtain detailed information about content available on the first media server 111 by providing a list of available content and/or associated metadata describing the content to the first mobile device 141.
As shown at step 919, first mobile device 141 may transmit one or more requests to add one or more multimedia content files to first-device queue 131. A user input on the first mobile device 141 may prompt transmission of a request to add a multimedia content file to the first device queue 131. A request to add a multimedia content file to the first device queue 131 may be transmitted to the control element 100. The request to add a multimedia content file to the first device queue 131 may be, for example, "addtuquue (Q1, ContentList)," where Q1 may indicate the first device queue 131 and/or ContentList may indicate a list of one or more multimedia content files to be added to the first device queue 131. The list of multimedia content files to be added to the first device queue 131 may be specified by referencing the corresponding multimedia content files on the first media server 111. In response, the control element 100 may update the internal state of the first device queue 131 and/or may indicate to the first mobile device 141 that the multimedia file was successfully added to the first device queue 131, as shown at step 921. In the particular example depicted in fig. 9A and 9B, a fifth multimedia content file and a sixth multimedia content file are added to four multimedia content files already located in the first device queue 131.
As shown at step 923, the first mobile device 141 may transmit a request to change the media rendering device associated with the first device queue 131 to the first media rendering device 121. The request to change the media rendering device associated with the first device queue 131 may be, for example, "associates render (Q1, R1)," where Q1 may indicate the first device queue 131 and/or R1 may indicate the first media rendering device 121. A user input on the first mobile device 141 may prompt transmission of a request to change the media rendering device associated with the first device queue 131. A request to change the media rendering device associated with the first device queue 131 may be transmitted to the control element 100. In response, the control element 100 may update the internal state of the first device queue 131 to reflect the association of the first device queue 131 with the first media reproduction device 121. As shown at step 925, control element 100 may indicate to first mobile device 141 that first device queue 131 is associated with first media rendering device 121.
As shown at step 927, the first mobile device 141 may transmit a request to initiate reproduction of the modified first device queue 131 by the newly associated first media reproduction device 121. The request to initiate rendering of the modified first device queue 131 may be, for example, "PlayQueue (Q1)", where Q1 may indicate the first device queue 131. A user input on the first mobile device 141 may prompt transmission of a request to initiate rendering of the modified first device queue 131 by the newly associated first media rendering device 121. The request to initiate reproduction of the modified first device queue 131 may direct reproduction of the first multimedia content file to continue from a point where reproduction was previously paused, or may direct reproduction to be initiated from the beginning of the first multimedia content file.
In response, control element 100 may communicate with first media rendering device 121 to initiate rendering of a first multimedia content file located in first device queue 131. As shown at step 929, the request from control element 100 may provide the first media reproduction device 121 with a URI that may identify the first multimedia content file located in the first device queue 131. The request that may provide a URI may be, for example, "SetAVransportURI (X)", where X may indicate a URI. As shown at step 931, the request from the control element 100 may direct the first media rendering device 121 to initiate rendering of the first multimedia content file located in the first device queue 131. The request to initiate reproduction of the first multimedia content file may be, for example, "Play". Based on the combination of the request that may provide the URI corresponding to the first multimedia content file located in the first device queue 131 and the request to initiate rendering, the first rendering device 121 may contact the first media server 111 to request the first multimedia content file.
The control element 100 may update the internal state of the first device queue 131 to indicate that the first multimedia content file of the first device queue 131 is currently being rendered on the first media rendering device 121. As shown at step 933, control element 100 may transmit a response to first mobile device 141 indicating that the first multimedia content file of first device queue 131 is currently being rendered on first media rendering device 121. Due to the communications and actions set forth in fig. 9A and 9B, the first media rendering device 121 may be rendering the first device queue 131.
The first user 91 of the first mobile device 141 may request an adjustment of the reproduction volume. As shown at step 935, the first mobile device 141 may transmit a volume adjustment request to the control element 100. The volume adjustment request may be, for example, "adjust volume (R1, X)", where R1 may indicate the first media rendering device 121 and/or X may indicate the desired rendering volume level. Accordingly, the control element 100 may communicate with the first media reproduction device 121 to adjust the reproduction volume to a desired reproduction volume level, as shown at step 937. As shown at step 941, the control element 100 may indicate to the first mobile device 141 that the reproduction volume is adjusted to a desired reproduction volume level.
Fig. 10A and 10B generally illustrate the temporary disconnection of the first mobile device 141 from the control element 100. Fig. 10A and 10B may be considered a continuation of fig. 9A and 9B, and/or the state at the end of fig. 9A and 9B may continue to the beginning of fig. 10A and 10B. Thus, the first media rendering device 121 may be rendering the first device queue 131 that may have been modified by the first user 91 using the first mobile device 141.
As shown at step 1001, first mobile device 141 may transmit a request to control rendering by advancing to a third multimedia content file located in first device queue 131 to control element 100. The request to control rendering by advancing to the third multimedia content file may be, for example, "SkipInQueue (Q1, 3)", where Q1 may indicate the first device queue 131 and/or 3 may indicate the third multimedia content file. A user input on the first mobile device 141 may prompt transmission of a request to control rendering by advancing to a third multimedia content file located in the first device queue 131.
In response, control element 100 may communicate with first media rendering device 121 to initiate rendering of a third multimedia content file located in first device queue 131. As shown at step 1003, the request from control element 100 may provide the first media rendering device 121 with a URI that may identify the third multimedia content file located in the first device queue 131. The request that may provide a URI may be, for example, "SetAVransportURI (X)", where X may indicate a URI. As shown at step 1005, the request from control element 100 may direct first media rendering device 121 to initiate rendering of the third multimedia content file located in first device queue 131. The request to initiate reproduction of the third multimedia content file may be, for example, "Play". Based on the combination of the request that may provide the URI corresponding to the third multimedia content file located in the first device queue 131 and the request to initiate rendering, the first rendering device 121 may contact the first media server 111 to request the third multimedia content file of the first device queue 131.
The control element 100 may update the internal state of the first device queue 131 to indicate that the third multimedia content file located in the first device queue 131 is currently being reproduced on the first media reproduction device 121. As shown at step 1007, control element 100 may return a response to first mobile device 141 that may indicate that the third multimedia content file located in first device queue 131 is currently being rendered on first media rendering device 121.
As shown at step 1009, the first mobile device 141 may become disconnected from the control element 100. For example, the first mobile device 141 may be "powered off," may lack sufficient battery power to maintain a connection, may move to a location that may be out of range of a wireless data connection through which the first mobile device 141 may communicate with the control element 100, and/or may prevent any connection interruptions in communications between the first mobile device 141 and the control element 100.
As shown at step 1010, the rendering by the first media rendering device 121 may reach the end of the third multimedia content file located in the first device queue 131. As shown at step 1011, first media rendering device 121 may transmit an event message to control element 100 to indicate that rendering by first media rendering device 121 may have reached the end of the third multimedia content file located in first device queue 131. The event message may be, for example, "TransportState ═ NO _ MEDIA _ PRESENT". The control element 100 may have previously initiated a subscription with the first media reproduction device 121 to receive an event message from the first media reproduction device 121.
In response to the event message, the control element 100 may instruct the first media reproduction device 121 to initiate reproduction of the fourth multimedia content file located in the first device queue 131. As shown at step 1013, the request from the control element 100 may provide the first media reproduction device 121 with a URI that may identify the fourth multimedia content file. The request that may provide a URI may be, for example, "SetAVransportURI (X)", where X may indicate a URI. As shown at step 1015, the request from control element 100 may direct first media rendering device 121 to initiate rendering of a fourth multimedia content file located in first device queue 131. The request to initiate reproduction of the fourth multimedia content file may be, for example, "Play". Based on the combination of the request that may provide the URI corresponding to the fourth multimedia content file located in the first device queue 131 and the request to initiate rendering, the first rendering device 121 may contact the first media server 111 to request the fourth multimedia content file of the first device queue 131. The control element 100 may update the internal state of the first device queue 131 to indicate that the fourth multimedia content file located in the first device queue 131 is currently being reproduced by the first media reproduction device 121.
As shown at step 1017, the control element 100 may generate and/or store an event message, such as "event-1". The event message may be addressed to first mobile device 141. The event message may indicate a queue position change from a third multimedia content file located in the first device queue 131 to a fourth multimedia content file. The event message may be stored by the control element 100 such that the event message may be transmitted to the first mobile device 141 following a request for the event message from the first mobile device 141. Alternatively, the event message may be transmitted directly to the first mobile device 141 at the time of generation of the event message and/or after a delay.
The first mobile device 141 may be reconnected to the control element 100, as shown at step 1019. For example, the first mobile device 141 may be "powered on," may have sufficient battery power available to establish a connection, and/or may be moved to a location that may be within range of a wireless data connection through which the first mobile device 141 may communicate with the control element 100.
As shown at step 1021, first mobile device 141 may transmit a request to restore state information to control element 100, such as "getstateinfo (X)", where X may indicate a session. As shown at step 1023, the control element 100 may respond by transmitting status information to the first mobile device 141. The state information may have information associated with first user 91, first mobile device 141, and/or the session specified by the request to resume state information. The status information may have a list of device queues, a list of previously set defaults and/or preferences, an indication of events that may be pending and/or may be waiting to be retrieved, and/or the like.
As shown at step 1025, the first mobile device 141 may transmit a request to the control element 100 to obtain an event message that may have been generated by the control element 100 and/or that may not have been transmitted to the first mobile device 141. The request to obtain an event message may be, for example, "geteventinfo (X)", where X may indicate a session. The event message may be associated with first user 91, first mobile device 141, and/or a session specified by the request to obtain the event message. The first mobile device 141 may have previously initiated a subscription with the control element 100 to receive event messages from the control element 100 that may be related to the first media rendering device 121.
As shown at step 1027, the control element 100 may respond by transmitting an event message, such as "event-1," to the first mobile device 141. Accordingly, the first mobile device 141 may receive an indication that the rendering of the first device queue 131 has progressed from the third multimedia content file to the fourth multimedia content file.
Fig. 11A and 11B generally illustrate a first user 91 utilizing a first mobile device 141 to create and/or use a second device queue 132. Fig. 11A and 11B may be considered as a continuation of fig. 10A and 10B, and/or the state at the end of fig. 10A and 10B may continue to the beginning of fig. 11A and 11B. Thus, the first media rendering device 121 may be rendering the first device queue 131 that may have been created and/or modified by the first user 91 using the first mobile device 141.
Additional multimedia content files may become available from the first media server 111, as shown at step 1101. The additional multimedia content files are represented by star symbols and the pre-existing multimedia content files are represented by circle symbols. As shown at step 1103, the first media server 111 may transmit an event message to the control element 100 to indicate the presence of the additional multimedia content file and/or the location of the additional multimedia content file in the content hierarchy of the first media server 111. As shown at step 1105, the control element 100 may generate and/or may store an event message that may indicate the presence and/or location of additional multimedia content files. The event message, which may indicate the presence and/or location of the additional multimedia content file, may be, for example, "event-2" and/or may be addressed to the first mobile device 141.
The control element 100 may have previously initiated a subscription with the first media server 111 to receive event messages from the first media server 111. The first mobile device 141 may have previously initiated a subscription with the control element 100 to receive an event message from the control element 100 related to the first media server 111. The subscription of the control element 100 to the first media server 111 and/or the subscription of the first mobile device 141 to the control element 100 may cause the first mobile device 141 to receive an event message that may indicate the presence and/or location of additional multimedia content files.
As shown at step 1107, the first mobile device 141 may transmit a request to create a new device queue 132 to the control element 100, e.g., "CreateQueue. A user input on the first mobile device 141 may prompt transmission of a request to create a new device queue 132. In response, the control element 100 may create a new device queue 132 and/or may transmit a queue identifier, such as "Q2," back to the first mobile device 141, as shown at step 1109. The queue identifier may be used by the first mobile device 141 to reference the second device queue 132 in subsequent commands.
As shown at step 1111, first mobile device 141 may transmit a request to control element 100 to obtain an event message that may have been generated by control element 100 and/or that may not have been transmitted to first mobile device 141. The request to obtain an event message may be, for example, "geteventinfo (X)", where X may indicate a session. The first mobile device 141 may have previously initiated a subscription with the control element 100 to receive an event message from the control element 100 that may be related to the first media server 111.
As shown at step 1113, the control element 100 may respond by transmitting an event message, such as "event-2," to the first mobile device 141. Accordingly, first mobile device 141 may receive an indication of the presence and/or location of additional multimedia content files available from first media server 111. The first mobile device 141 may alert the first user 91 of the presence of additional multimedia content files available from the first media server 111, as shown at step 1115.
As shown at step 1117, first mobile device 141 may transmit a request to determine and/or obtain detailed information about content available on first media server 111. The request to determine and/or obtain detailed information about content available on the first media server 111 may be, for example, "BrowseContent (S1)", where S1 may indicate the first media server 111. The request may be transmitted to the control element 100. As shown at step 1119, the control element 100 may transmit a browse request to the first media server 111. The browse request transmitted from the control element 100 may correspond to a request by the first mobile device 141 to determine and/or obtain detailed information about content available on the first media server 111.
As shown at step 1121, the control element 100 may receive detailed information about content available on the first media server 111, such as a list of available content and/or associated metadata describing the content. The list of available content may include additional multimedia content files. The control element 100 may receive detailed information from the first media server 111 regarding content available on the first media server 111.
As shown at step 1123, the control element 100 may respond to the request by the first mobile device 141 to determine and/or obtain detailed information about content available on the first media server 111 by providing a list of available content and/or associated metadata describing the content to the first mobile device 141. The list of available content may include additional multimedia content files.
As shown at step 1125, the first mobile device 141 may transmit one or more requests to add one or more multimedia content files to the second device queue 132. A request to add a multimedia content file to the second device queue 132 may be transmitted to the control element 100. The request to add the multimedia content file to the second device queue 132 may be, for example, "addtuquue (Q2, ContentList)," where Q2 may indicate the second device queue 132 and/or ContentList may indicate a list of multimedia content files to be added to the second device queue 132. The multimedia content file may be specified by referencing a corresponding multimedia content file on the first media server 111. A user input on the first mobile device 141 may prompt transmission of a request to add a multimedia content file to the second device queue 132.
In response, the control element 100 may update the internal state of the second device queue 132 and/or may indicate to the first mobile device 141 that the multimedia file was successfully added to the second device queue 132, as shown at step 1127. In the specific example depicted in fig. 11A and 11B, four multimedia content files are added to the second device queue 132; the first multimedia content file, the third multimedia content file, and/or the fourth multimedia content file may be additional multimedia content files that are newly available from the first media server 111; and/or the second multimedia content file may be a pre-existing content file that may already be available from the first media server 111. Thus, a combination of pre-existing multimedia content files and content files newly available from the first media server 111 may be added to the second device queue 132.
As shown at step 1129, the first mobile device 141 may transmit a request to the control element 100 to associate the second device queue 132 with the second media rendering device 122, such as "associates render (Q2, R2)", where Q2 may indicate the second device queue 132 and/or R2 may indicate the second media rendering device 122. A user input on the first mobile device 141 may prompt transmission of a request to associate the second device queue 132 with the second media rendering device 122. In response, the control element 100 may update the internal state of the second device queue 132 and/or may indicate to the first mobile device 141 that the second device queue 132 is associated with the second media rendering device 122, as shown at step 1131.
As shown at step 1132, the first mobile device 141 may transmit a request to initiate reproduction of the second device queue 132 to the control element 100, such as "PlayQueue (Q2)", where Q2 may indicate the second device queue 132. A user input on the first mobile device 141 may prompt transmission of a request to initiate rendering of the second device queue 132. In response, the control element 100 may direct the second media rendering device 122 to initiate rendering of the first multimedia content file from the second device queue 132. As shown at step 1133, the request from control element 100 may provide the URI to second media rendering device 122 that may identify the first multimedia content file located in second device queue 132. The request that may provide a URI may be, for example, "SetAVransportURI (X)", where X may indicate a URI. As shown at step 1135, the request from control element 100 may direct second media rendering device 122 to initiate rendering of the first multimedia content file located in second device queue 132. The request to initiate reproduction of the first multimedia content file may be, for example, "Play". Based on the combination of the request that may provide the URI corresponding to the first multimedia content file located in the second device queue 132 and the request to initiate rendering, the second rendering device 122 may contact the first media server 111 to request the first multimedia content file of the second device queue 132.
The control element 100 may update the internal state of the second device queue 132 to indicate that the first multimedia content file of the second device queue 132 is currently being rendered on the second media rendering device 122. As shown at step 1137, the control element 100 may transmit a response to the first mobile device 141, which may indicate that the request from the first mobile device 141 to initiate rendering of the second device queue 132 was successful. Due to the communications and actions set forth in fig. 11A and 11B, the second media rendering device 122 may be rendering the second device queue 132.
Fig. 12A and 12B generally illustrate the second user 92 controlling the first device queue 131 with the second mobile device 142. Fig. 12A and 12B may be considered a continuation of fig. 11A and 12A, and/or the state at the end of fig. 11A and 11B may continue to the beginning of fig. 12A and 12B. Thus, the first media rendering device 121 may be rendering the first device queue 131 that may have been created and/or modified by the first user 91 using the first mobile device 141. The second media rendering device 122 may be rendering the second device queue 132 that may have been created by the first user 91 using the first mobile device 141.
The second mobile device 142 may be connected to the control element 100 using a suitable data connection and/or a suitable control interface. The control interface connecting the second mobile device 142 to the control element 100 may be the same as the control interface connecting the first mobile device 141 to the control element 100. Alternatively, the control interface connecting the second mobile device 142 to the control element 100 may be different from the control interface connecting the first mobile device 141 to the control element 100. The control interface and/or data connection by which the mobile device is connected to the control element 100 may vary based on the connection capabilities of the mobile device and/or the connection capabilities of the control element 100.
As shown at step 1201, the second mobile device 142 may transmit a request to obtain a list of available device queues to the controlling element 100. The request to obtain a list of available device queues may be, for example, "GetQueues". In response, the control element 100 may return a list of available device queues, as shown at step 1203. In the particular example depicted in fig. 12A and 12B, the list of available device queues may have a first device queue 131 and/or a second device queue 132.
As shown at step 1205, the second mobile device 142 may transmit a request to obtain detailed information about the state of the first device queue 131. The request to obtain detailed information about the state of the first device queue 131 may be, for example, "GetQueueInfo (Q1)", where Q1 may indicate the first device queue 131. In response, the control element 100 may return detailed information regarding the status of the first device queue 131, as shown at step 1207.
As shown at step 1209, the second mobile device 142 may transmit a request to the control element 100 to lock access to the first device queue 131. The request to lock access to the first device queue 131 may be, for example, "LockQueue (Q1)", where Q1 may indicate the first device queue 131. A user input on the second mobile device 142 may prompt transmission of a request to lock access to the first device queue 131. The lock on access to the first device queue 131 may be associated with the second mobile device 142, the second user 92, and/or a particular session that may be specified by the request to lock access to the first device queue 131. In the specific example depicted in fig. 12A and 12B, a lock on access to the first device queue 131 may be associated with the second mobile device 142.
The control element 100 may update the internal state of the first device queue 131 to indicate a lock of access to the first device queue 131 that may be associated with the second mobile device 142. As shown at step 1213, the control element 100 may indicate to the second mobile device 142 that the request to lock access to the first device queue 131 to the second mobile device 142 is granted. The control element 100 may also transmit the key to the second mobile device 142. The second mobile device 142 may use the key to request removal of a lock on access to the first device queue 131 that may be associated with the second mobile device 142.
As shown at step 1215, the first mobile device 141 may transmit a request to remove the fifth multimedia content file from the first device queue 131 to the control element 100. For example, the request may be "removefromque (Q1, 5)", where Q1 may indicate the first device queue 131 and/or number 5 may indicate the fifth multimedia content file. A user input on the first mobile device 141 may prompt transmission of a request to remove the fifth multimedia content file from the first device queue 131. As shown at step 1217, the control element 100 may deny the request to remove the fifth multimedia content file from the first device queue 131. The control element 100 may transmit a response to the first mobile device 141 that may indicate a denial of the request. The message may indicate a reason for the rejection of the request, such as a lock on access to the first device queue 131 that may be associated with the second mobile device 142. The control element 100 may indicate additional information in the response. For example, the response may indicate that the second mobile device 142 and/or the second user 92 requested a lock on access to the first device queue 131 that may be associated with the second mobile device 142.
As shown at step 1219, the second mobile device 141 may transmit a request to remove the fifth and/or sixth multimedia content file from the first device queue 131 to the control element 100. For example, the request may be "removefromque (Q1, [5, 6 ])", where Q1 may indicate the first device queue 131; 5 may indicate a fifth multimedia content file; and/or 6 may indicate a sixth multimedia content file. A user input on the second mobile device 142 may prompt transmission of a request to remove the fifth multimedia content file and/or the sixth multimedia content file from the first device queue 131. In response, control element 100 may remove the fifth and/or sixth multimedia content file from first device queue 131, and/or control element 100 may indicate to second mobile device 142 that the fifth and/or sixth multimedia content file has been removed from first device queue 131, as shown at step 1221. The control element 100 may update the internal state of the first device queue 131 accordingly.
As shown at step 1223, the second mobile device 142 may transmit a request to the control element 100 to control rendering by the first media rendering device 121 by advancing to the first multimedia content file located in the first device queue 131. The request to control rendering by the first media rendering device 121 by advancing to the first multimedia content file may be, for example, "skipiinqueue (Q1, 1)", where Q1 may indicate the first device queue 131 and/or number 1 may indicate the first multimedia content file. A user input on the second mobile device 142 may prompt transmission of a request to control rendering by the first media rendering device 121 by advancing to the first multimedia content file located in the first device queue 131.
Accordingly, the control element 100 may communicate with the first media rendering device 121 to initiate rendering of the first multimedia content file located in the first device queue 131. As shown at step 1225, the request from control element 100 may provide the first media rendering device 121 with a URI that may identify the first multimedia content file located in the first device queue 131. The request that may provide a URI may be, for example, "SetAVransportURI (X)", where X may indicate a URI. As shown at step 1227, the request from control element 100 may direct first media rendering device 121 to initiate rendering of the first multimedia content file located in first device queue 131. The request to initiate reproduction of the first multimedia content file may be, for example, "Play". Based on the combination of the request that may provide the URI corresponding to the first multimedia content file located in the first device queue 131 and the request to initiate rendering, the first rendering device 121 may contact the first media server 111 to request the first multimedia content file of the first device queue 131.
The control element 100 may update the internal state of the first device queue 131 to indicate that the first multimedia content file located in the first device queue 131 is currently being rendered on the first media rendering device 121. As shown at step 1229, control element 100 may return a response to second mobile device 142 that may indicate that the first multimedia content file located in first device queue 131 is currently being rendered on first media rendering device 121.
As shown at step 1231, the second mobile device 142 may transmit a request to the control element 100 to remove a lock on access to the first device queue 131 that may be associated with the second mobile device 142. A user input on the second mobile device 142 may prompt transmission of a request to remove the access lock. The request to remove the access lock may be, for example, "UnlockQueue (Q1)", where Q1 may indicate the first device queue 131. If the key is provided by the control element 100 to the second mobile device 142, the second mobile device 142 may provide the key in the request to remove the access lock.
Alternatively, the control element 100 may grant the request to remove the access lock based on the request to remove the lock of access having been transmitted from the mobile device and/or the user requesting the access lock on the first device queue 131. In the specific example depicted in fig. 12A and 12B, control element 100 may grant the request to remove the access lock based on a verification that the request to remove the access lock has been transmitted from second mobile device 142 and/or second user 92.
The control element 100 may remove the lock on access to the first device queue 131 that may be associated with the second mobile device 142, as shown at step 1233. The control element 100 may update the internal state of the first device queue 131 accordingly. As shown at step 1235, the control element 100 may indicate to the second mobile device 142 that the lock on access to the first device queue 131 that may be associated with the second mobile device 142 is removed. Due to the communications and actions set forth in fig. 12A and 12B, the first media rendering device 121 may be rendering the first device queue 131 and/or the second media rendering device 122 may be rendering the second device queue 132.
It should be understood that various changes and modifications to the presently preferred embodiments described herein will be apparent to those skilled in the art. Such changes and modifications can be made without departing from the spirit and scope of the present invention and without diminishing its attendant advantages. It is therefore intended that such changes and modifications be covered by the appended claims.
Claims (28)
1. A method for controlling media rendering in a network, wherein a first media rendering device and a first media server are connected to the network, and further wherein a first multimedia file is available from the first media server, wherein metadata is associated with the first multimedia file, the method comprising the steps of:
connecting a first control element to the network;
connecting a first mobile device to the first control element;
transmitting a first message, wherein the first message is transmitted from the first mobile device to the first control element;
transmitting a second message, wherein the second message is transmitted from the first control element to the first mobile device, and further wherein the second message corresponds to the first message, wherein the second message has the metadata associated with the first multimedia file;
transmitting a third message, wherein the third message is transmitted from the first mobile device to the first control element;
transmitting a fourth message, wherein the fourth message is transmitted from the first control element to the first media rendering device, and further wherein the fourth message corresponds to the third message; and
rendering the first multimedia file from the first media server, wherein the first media rendering device renders the first multimedia file from the first media server, and further wherein receipt of the fourth message by the first media rendering device directs the first media rendering device to render the first multimedia file.
2. The method of claim 1, wherein the first mobile device has a web browser, and further wherein the first message and the third message originate from the web browser.
3. The method of claim 1, wherein the first message and the third message are hypertext transfer protocol requests.
4. The method of claim 1, wherein the first message and the third message are formatted using extensible markup language.
5. The method of claim 1, wherein the first mobile device has a Flash player, and further wherein the first message and the third message originate from the Flash player.
6. The method of claim 1, further comprising the steps of:
controlling rendering of the first multimedia file on the first media rendering device, wherein the first mobile device controls the rendering of the first multimedia file on the first media rendering device using rendering instructions transmitted from the first mobile device to the first control element.
7. The method of claim 1, further comprising the steps of:
creating a device queue having the metadata associated with the first multimedia file and metadata associated with a second multimedia file, wherein the device queue is rendered by the first media rendering device, and further wherein the device queue is managed based on a queue management instruction transmitted from the first mobile device to the first control element.
8. The method of claim 7, wherein the second multimedia file is available from a second media server connected to the network.
9. The method of claim 1, further comprising the steps of:
creating a device queue having metadata associated with a second multimedia file and a third multimedia file, wherein the first control element selects the second multimedia file and the third multimedia file for inclusion in the device queue based on a queue creation instruction sent from the first mobile device to the first control element, and further wherein the first mobile device is not entitled to use the metadata associated with the second multimedia file and the third multimedia file when the second multimedia file and the third multimedia file are selected by the first control element.
10. The method of claim 1, further comprising the steps of:
connecting a second mobile device to the first control element, wherein the second mobile device controls rendering of the first multimedia file on the first media rendering device using rendering instructions transmitted from the second mobile device to the first control element.
11. The method of claim 1, further comprising the steps of:
connecting a second media rendering device to the network, wherein the second media rendering device renders a second multimedia file based on an instruction transmitted from the first mobile device to the first control element.
12. The method of claim 1, further comprising the steps of:
connecting a second media rendering device to the network, wherein the first mobile device sends a rendering device transfer instruction to the first control element, wherein based on the rendering device transfer instruction, the second media rendering device renders the first multimedia content file and the first media rendering device stops rendering the first multimedia file.
13. The method of claim 1, further comprising the steps of:
connecting a second control element to the network, wherein the first control element and the second control element determine that one of the first control element and the second control element is a master control element having an advantage over the other control element.
14. The method of claim 1, further comprising the steps of:
creating a list of available devices connected to the network, wherein the first control element transmits the list to the first mobile device.
15. The method of claim 1, wherein the first mobile device is connected to the control element over the internet.
16. The method of claim 1, wherein the connection of the first mobile device to the first control element uses radio waves having a frequency between 2.402GHz and 2.480 GHz.
17. The method of claim 1, wherein the first mobile device is connected to the first control element through a carrier mobile network, and further wherein the carrier mobile network is provided by a mobile phone service provider.
18. The method of claim 1, further comprising the steps of:
creating a device queue having the metadata of the first multimedia file and metadata of a second multimedia file, wherein the device queue is created based on a device queue creation instruction transmitted from the first mobile device to the first control element, wherein the device queue is rendered by the first media rendering device;
disconnecting the first mobile device from the first control element; and
controlling rendering of the device queue on the first media rendering device, wherein the rendering of the device queue is controlled by the first control element when the first mobile device is disconnected from the first control element.
19. The method of claim 1, further comprising the steps of:
transmitting an event message from the first control element to the first mobile device, wherein the first mobile device disconnects from the first control element and subsequently reconnects to the first control element, and further wherein the event message conveys information about an event that occurred while the first mobile device was disconnected from the first control element.
20. The method of claim 1, further comprising the steps of:
transmitting an event message from the first control element to the first mobile device, wherein the transmission of the event message is in response to a request transmitted from the first mobile device to the first control element.
21. The method of claim 1, wherein the first media server accesses the first multimedia file via the internet.
22. A system for managing media rendering in a network using a first mobile device, wherein a first media rendering device is connected to the network, and further wherein the first media rendering device renders a first queue of multimedia files, wherein a second media rendering device is connected to the network, and further wherein the second media rendering device renders a second queue of multimedia files, the system comprising:
a first control interface connected to the first mobile device;
a core component connected to the first control interface, wherein the first mobile device transmits a first queue rendering instruction to the core component via the first control interface;
a storage component connected to the core component, wherein the storage component stores information about the first queue and the second queue; and
a control point component connected to the core component and the network, wherein the control point component transmits a first message to the first media rendering device, and further wherein the first message is based on the first queue rendering instructions, wherein the first media rendering device renders the first multimedia file queue based on the first message, wherein the control point component transmits a second message to the second media rendering device, and further wherein the second message is based on the first queue rendering instructions, and further wherein the second media rendering device renders the second multimedia content file queue based on the second message.
23. The system of claim 22, wherein the control point component acts as a UPnP AV control point.
24. The system of claim 22, further comprising:
a second control interface connected to the core component; and
a second mobile device connected to the second control interface, wherein the second mobile device transmits a second queue rendering instruction to the core component via the second control interface, and further wherein the control point component transmits a third message to the first media rendering device, wherein the third message is based on the second queue rendering instruction, and further wherein the first media rendering device renders the first queue of multimedia files based on the third message.
25. A method for managing media rendering in a network, wherein a first media rendering device and a first media server are connected to the network, and further wherein a first multimedia file and a second multimedia file are available from the first media server, wherein the first multimedia file is associated with first metadata and the second multimedia file is associated with second metadata, the method comprising the steps of:
connecting a control element to the network;
connecting a first mobile device and a second mobile device to the first control element;
transmitting a first message, wherein the first message is transmitted from the first mobile device to the control element;
creating a first device queue having the first metadata and the second metadata, wherein the first device queue is created based on the first message; and
rendering the first device queue on the first media rendering device, wherein the first mobile device and the second mobile device control rendering of the first device queue.
26. The method of claim 25, further comprising the step of:
transmitting a lock request from the second mobile device, wherein the lock request prevents the first mobile device from accessing the first device queue.
27. The method of claim 25, further comprising the step of:
creating a second device queue, wherein the control element creates the second device queue based on a device queue creation instruction transmitted from the second mobile device to the control element.
28. The method of claim 25, further comprising the step of:
changing the first device queue to a modified device queue, wherein the first device queue is different from the modified device queue, and further wherein the control element changes the first device queue to the modified device queue based on a second message, wherein the second message is transmitted from the second mobile device to the control element.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/287,442 | 2008-10-09 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1161373A true HK1161373A (en) | 2012-08-24 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8544046B2 (en) | System and method for controlling media rendering in a network using a mobile device | |
| EP1545064B1 (en) | Apparatus for in a coordinated way managing media content | |
| US8195744B2 (en) | File sharing system for use with a network | |
| US7937484B2 (en) | System and method for remotely controlling network resources | |
| JP4975831B2 (en) | Remote data access technology for portable devices | |
| US9166879B2 (en) | System and method for enabling the establishment and use of a personal network | |
| US9374805B2 (en) | System and method for combining memory resources for use on a personal network | |
| EP2319206B1 (en) | System and method for transmitting and receiving a call on a home network | |
| CN101057480A (en) | Method, device, and software for keeping track of content | |
| EP2110993A1 (en) | Content distribution method between a network apparatus and a server | |
| CN105323628B (en) | Cross-screen playing method and system based on DLNA (digital Living network alliance), browser end device and playing device | |
| JP2010026983A (en) | Content providing device, mobile terminal device, content providing method, and content managing method | |
| US20060277318A1 (en) | System and method for extending communications with a device network | |
| JP5314840B2 (en) | Content playback apparatus and content playback method | |
| KR101329668B1 (en) | Contents sharing system and method using push server | |
| JP4823924B2 (en) | AV session restoration method and control point therefor | |
| WO2006010023A2 (en) | System and method for enabling the establishment and use of a personal network | |
| HK1161373A (en) | System and method for controlling media rendering in a network using a mobile device | |
| JP5224387B2 (en) | Content sharing system, content control apparatus, content sharing method, and content sharing program | |
| JP4900169B2 (en) | Network system, relay device, and relay program | |
| JP2011004180A (en) | Content cooperation reproducing method based on distribution policy, proxy control terminal and program | |
| JP2013148939A (en) | Content information sharing system, content information sharing method and content information sharing program |