Computers, communication devices, and/or media devices (e.g., a television, a receiver, etc.) may interact with one another in a local media network. The devices may share multimedia content in the local media network.
According to one aspect, a method may include detecting a change in video or audio output of a mobile device, obtaining a physical location of the mobile device and a physical location of a media device, determining a distance between the mobile device and the media device based on the physical locations of the mobile device and the media device, determining whether the distance is within a predetermined range, and modifying output of the media device when the distance is within the predetermined range.
Additionally, modifying output of the media device may include at least one of sending a command from the mobile device to the media device to fade out or reduce an audio output of the media device, sending a command from the mobile device to the media device to pause the output of the media device, sending a command from the mobile device to the media device to buffer the output of the media device, or sending a command from the mobile device to the media device to store information that indicates what part of content in the output of the media device has been played.
Additionally, sending a command to the media device may include sending a Simple Object Access Protocol command.
Additionally, the method may further include detecting a change in the distance between the mobile device and the media device, determining whether the mobile device is within the predetermined range of the media device, and modifying the output of the media device when the mobile device is not within the predetermined range.
Additionally, detecting a change in video or audio output of a mobile device may include one of detecting an incoming phone call, detecting a termination of a call, or detecting a playing of an audio file, a video file, an audio disk, or a video disk.
Additionally, the method may further include discovering the media device in a local media network in accordance with Universal Plug and Play protocol.
Additionally, the method may further include obtaining a service description and a device description of the media device via a local media network.
Additionally, obtaining a physical location of the mobile device and a physical location of the media device may include requesting the media device to provide the physical location of the media device.
Additionally, modifying output includes at least one of restoring an audio output of the media device to a level prior to the detected change in the output of the mobile device, causing the media device to resume the output of the media device, causing the media device to play buffered output of the media device, or causing the media device to play un-played part of content based on information that has been stored and that indicates what part of content in the output of the media device has been played.
Additionally, the method may further include receiving from a user a desired level of volume to which the audio output is to be set when a change is detected in the audio output of the mobile device.
Additionally, the method may further include exchanging multimedia content with the media device in accordance with Digital Living Network Alliance protocols.
According to another aspect, a device may include a network interface through which the device communicates with a media device in a local network. The device may further include a processor to detect whether the device receives a call, determine whether the device is within a predetermined range of the media device based on communication between the device and the media device, and send a message to the media device via the network interface to request the media device to reduce an audio output of the media device when the device is within the predetermined range of the media device and when the device has received the call.
Additionally, the device may include a universal plug and play (UPnP) compliant device.
Additionally, the local network may include a network that is compliant with Digital Living Network Alliance guidelines.
Additionally, the media device may include one of a speaker, a television, a personal computer, a laptop, a receiver, a digital video disk player, or a game playing device.
Additionally, the processor may be further configured to detect the media device via a discovery protocol.
Additionally, the message may include a Simple Object Access Protocol message.
Additionally, the device may further include an accelerometer for determining a position of the device, or a Global Positioning System receiver for determining a position of the device.
Additionally, the processor may be further configured to receive user input for setting a desired level of volume for reducing the output of the media device when the media device is within the predetermined range, and receive user input indicating the predetermined range.
According to yet another aspect, a device may include means for detecting whether the device receives a call, means for discovering a media device in a local media network, means for sending a request for a physical location of the media device to the media device, means for determining whether the device is within a predetermined range of the media device based on a response from the media device, and means for sending a request to the media device to turn off audio output or reduce the audio output of the media device when the device moves into a predetermined range of the media device while the device is engaged in the call.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate one or more embodiments described herein and, together with the description, explain the embodiments. In the drawings:
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
In implementations described herein, a device (e.g., a portable phone) may establish a communication link with other devices in a local media network. In response to events at the device (e.g., the device receives an incoming call), the device may interact intelligently with other devices in the local media network (e.g., cause a pair of speakers in the local media network to decrease the volume).
As further shown in
Each of media devices 108-1 through 108-4 (herein collectively referred to as media devices 108 and generically and individually as media device 108-x) may include a device such as a personal computer, a laptop computer, a digital video disk (DVD) player, a receiver, a speaker, a television, etc. Media device 108-x may exchange multimedia content with other devices and/or present the multimedia content to an audience. In addition, media device 108-x may discover other devices, control a delivery of multimedia content to the other devices, and/or control a presentation of the multimedia content to the audience.
In
Depending on the implementation, each device in network 102 may conform to one or more communication or network standards. For example, mobile device 106 and media device 108 may conform to the Digital Living Network Alliance (DLNA) guidelines. In such implementations, each of the devices in local media network 104 may provide a basic set of functionalities for controlling and/or interacting with one another, transporting multimedia content, and/or presenting the multimedia content.
Memory 302 may include static memory, such as read only memory (ROM), and/or dynamic memory, such as random access memory (RAM), or onboard cache, for storing data and machine-readable instructions. Memory 302 may also include storage devices, such as a floppy disk, Compact Disk (CD) ROM, CD read/write (R/W) disc, and/or flash memory, as well as other types of storage devices. Processing unit 304 may include a processor, a microprocessor, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), and/or other processing logic capable of controlling network device 300.
Network interface 306 may include any transceiver-like mechanism that enables network device 300 to communicate with other devices and/or systems. For example, network interface 306 may include mechanisms for communicating via a network, such as the Internet, a terrestrial wireless network (e.g., wireless local area network (WLAN)), a satellite-based network, a WPAN, etc. Additionally or alternatively, network interface 306 may include a modem, an Ethernet interface to a LAN, and/or an interface/connection for connecting network device 300 to other devices (e.g., a Bluetooth interface). Further, network interface 306 may include one or more receivers, such as a Global Positioning System (GPS) receiver for determining its own physical location. Input/output components 308 may include a keypad (e.g., keypad 208 of
Depending on a particular implementation, input/output components 308 may include a display (e.g., display 204). The display may include a component that can display signals generated by network device 300 as images on a screen and/or that can accept inputs in the form of taps or touches on the screen. Examples of the display include a liquid crystal display (LCD), organic light-emitting diode (OLED) display, bistable display, and/or a touch screen.
Communication path 310 may provide an interface through which components of network device 300 can communicate with one another.
System logic 402 may be included in processing unit 304 and/or memory 302, and may include hardware and/or software for performing various support functions for other components in
Device controller 404 may include one or more components that supports specific functionalities of network device 300. For example, if network device 300 is implemented as a DVD player, device controller 404 may include a component to control the playing of multimedia content on a DVD, fast forwarding through the multimedia content, pausing a presentation of the multimedia content, etc.
IMC logic 406 may include components for a network device 300 (e.g., a mobile device 106) to intelligently interact with other devices. For example, using an external speaker may cause IMC logic 406 within media device 108-x that controls an entertainment speaker to send a command to the entertainment speaker. In response to the command, the entertainment speaker may lower the volume of its audio output.
Local network logic 408 may include components that support standard communication protocols for controlling devices in local media network 102 and for transporting multimedia content in local media network 102. Furthermore, the components of local network logic 408 may conform to one or more standards. For example, local network logic 408 may include components that support the DLNA guidelines, a High Definition Audio-video Network Alliance (HANA) specification, etc. In the descriptions that follow, however, components of network device 300 will be described in the context of interacting with other devices in accordance with the DLNA guidelines.
When local network logic 408 operates in accordance with the DLNA guidelines, local network logic 408 may provide a mechanism for responding to network service requests. For example, media player 108-x (e.g., a DVD player) may respond to requests that are issued over local media network communication channels in accordance with Universal Plug and Play (UPnP) protocol and/or Simple Object Access Protocol (SOAP).
In one implementation, local network logic 408 may respond to requests that include: a command to provide a physical location of media player 108-x; commands to adjust an audio output (e.g., turn off, mute, fade in, or fade out the audio output, restore a previous volume of the audio output before the volume has been changed, etc.); commands to adjust video outputs (e.g., black out, dim or brighten a video output, restore a previous brightness level of the video output, etc.); commands to buffer/store audio/video output; commands to play the buffered audio/video; commands to store information that indicates what portion of content of the audio/video output has been played (e.g., particular scene or freeze-frame); commands to play the un-played portion of the content of the audio/video output; etc. In different implementations, local network logic 408 may respond to additional or different network requests or commands, based on the particular network and media devices 108.
Position logic 502 may determine physical locations of different devices in local media network 102. For example, position logic 502 may include host position logic for determining the physical location of network device 300 that hosts IMC logic 406 and network device position logic for determining physical locations of media devices 108 in local media network 102,
The host position logic may rely on one or more mechanisms to determine the physical location of network device 300. For example, in one implementation, the host position logic may use a GPS receiver within network device 300 to determine its physical location. In another implementation, the host position logic may exchange messages with nearby location sensors to triangulate the physical location of network device 300. In yet another implementation, the host position logic may accept inputs from sensors in network device 300 (e.g., an accelerometer and a gyroscope) to track network device 300.
The network device position logic may determine physical locations of other devices in local media network 102 based on messages from the other devices and/or user input. In accordance with the DLNA guidelines, when network device 300 (e.g., mobile device 106) enters local media network 102, network device 300 may discover network addresses of media devices 108 in local media network 102. After the discovery of media devices 108, the network device position logic may send a request to each of media devices 108 to identify media device 108-x's physical location. Media device 108-x may include a GPS receiver and/or location sensors that enable media device 108-x to determine its physical location and allow media device 108-x to answer the request with its location information.
Media fade logic 504 may determine distances between network device 300 and media devices 108 based on outputs from the host position logic in network device 300 and network device position logic in network device 300. Depending on the distances, media fade logic 504 may cause a set of media devices 108 to change their operating parameters. For example, when network device 300 receives a phone call and media fade logic 504 in network device 300 determines that network device 300 is physically close to media device 108-3, media fade logic 504 may send a request to media device 108-3 to turn down the volume of its audio output. Similarly, when network devices 300 terminates a call and/or media fade logic 504 determines that network device 300 has just moved out of audio range of media device 108-3, media fade logic 504 may send a request to media device 108-3 to restore the volume of its audio output prior to the call.
In the example, media fade logic 504 may be capable of issuing one or more of commands that pertain to turning on/off (e.g., black out a video output, mute an audio output, etc.) or turning down (e.g., fading out, fading in) audio/video output of media devices 108, restoring the audio/video output of media devices 108, buffering a audio/video output of media devices 108, playing the buffered audio/video output, storing information that indicates what part of content in the audio/video output has been played when the phone call is received, and playing the un-played portion of the content, etc. In such an implementation, the user may configure one or more of such commands to be issued by mobile device 106, via the user interface on mobile device 106, depending on the relative locations of network device 300 (e.g., mobile device 106) and media devices 108. Furthermore, via the user interface, the user may be able to modify different parameters that pertain to the commands, such as the rate of a fade out/fade in.
In some implementations, the user may be able to select/configure, via the user interface, which commands (e.g., turn off audio/video output, fade in/fade out, etc.) mobile device 106 may issue to media device 108-x, depending on the relative locations and/or the audio output of mobile device 106 and media devices 108.
Mobile device 106 may discover media device 108-x in local media network 102 (block 604). Mobile device 106 may discover media device 108-x when mobile device 106 enters local media network 102, by either physically becoming attached to local media network 102 or by entering a region in which mobile device 106 may establish a wireless communication link with a wireless access point (WAP) for local media network 102. Mobile device 106 may enter the region by physically being carried into the region while mobile device 106 is powered on, or, alternatively, by being turned on when mobile device 106 is within the region.
In some implementations, mobile device 106 may discover media device 108-x in accordance with a network communication protocol. For example, mobile device 106 may discover media device 108-x in accordance with UPnP specifications that are part of the DLNA guidelines/protocols.
In such implementations, local network logic 408 in mobile device 106 may advertise or broadcast mobile device 106's presence to media devices 108 in local media network 102, and obtain responses to the advertisements/broadcasts from one or more media devices 108. The responses may include identification information, such as a universally unique identifier (UUID), a Uniform Resource Locator (URL), or more detailed information, etc.
Mobile device 106 may obtain descriptions of media device 108-x and services that are provided by media device 108-x (block 606). Upon receiving the UUID and/or the URL as described above, mobile device 106 may access the URL to obtain an extensible markup language (XML) description of media device 108-x and services that are provided by media device 108-x. For example, the description of media device 108-3 may indicate that media device 108-3 corresponds to stereo speakers.
In one implementation, the services may include responding to requests that are described above in connection with local network logic 408 (e.g., a command to fade out the volume of an audio output of media device 108-x; a command to fade in the volume of the audio output; a command to restore a previous volume of the audio output before the volume has been changed; a command to pause video/audio output; a command to resume the video/audio output; a command to buffer the audio/video output; a command to play the buffered audio/video output; a command to store information that indicates what part of content in the audio/video output has been played when the phone call is received; and a command to play the un-played portion of the content.
As described above, the requests may be issued in accordance with SOAP or a protocol compatible with mobile device 106 and media devices 108.
Mobile device 106 may detect an event related to a change in audio/video output of mobile device 106 (block 608). For example, mobile device 106 may detect an incoming phone call, which initiates the audio/video output of mobile device 106, or the end of a call, which terminates the audio/video output. In another example, mobile device 106 may detect when an audio file is being played (e.g., playing a sound clip, a song, etc.).
Media fade logic 504 may obtain physical locations of host mobile device 106 and media device 108-x (block 610). Media fade logic 504 may obtain the physical location of mobile device 106 from position logic 502 in mobile device 106. In addition, media fade logic 504 may obtain the physical location of media device 108-x from position logic 502 in media device 108-x via a communication link.
At block 612, media fade logic 504 may determine the distance between host mobile device 106 and media device 108-x (block 612). At block 614, media fade logic 504 may detect a change in the distance between mobile device 106 and media device 108-x (block 614).
Media fade logic 504 may cause media device 108-x to fade out or restore the audio/video output of media device 108-x based on the distance and/or the change in distance and the event related to the change in audio/video output of mobile device (block 616).
As further shown in
Table 700 may summarize actions/commands that mobile device 106 may perform/issue to media devices 108 when mobile device 106 moves in or of the range of media device 108-x, when the audio/video output of mobile device 106 turns on or off, or when the audio/video output remains turned on and mobile device 106 remains within the range. To illustrate, assume that mobile device moves from an area outside the range to within the range of media device 108-x (e.g., row 712 of table 700), and that mobile device 106 receives a call when mobile device 106 is within the range (e.g., column 706 of table 700). At row 712 and column 706, table 700 may include an instruction or command of FADE, indicating that mobile device 106 may cause media device 108-x to fade out/reduce/turn off the audio/video output of media device 108-x. Fading out the audio or video output of media device 108-x may prevent media device 108-x from interfering with the audio output of mobile device 106, or prevent the sound from media device 108-x from making it difficult for the user of mobile device 106 from communicating with another party.
In another example, assume that mobile device 106 stays within the range of media device 108-x (e.g., row 708 of table 700), and that the audio/video output stays on (e.g., column 702). At row 708 and column 702, table 700 may include an instruction/command of NOTHING, indicating that mobile device 700 may not cause media device 108-x to modify the audio/video output of media device 108-x. Because mobile device 106 has not moved out of the range or changed its audio/video output, media device 108-x's volume, which may already be faded, may not change.
In yet another example, assume that mobile device is initially inside the range of media device 108-x and moves out of the range (e.g., OUT row 710). In addition, assume that, mobile device 106 is engaged in a call while mobile device 106 moves from inside the range to outside the range (e.g., column 702). At row 710 and column 702, table 700 may include an instruction/command to RESTORE, indicating that mobile device 106 may restore a level of audio/video output prior to mobile device 106's arrival inside the range.
When mobile device 106 fades out audio/video output of media device 108-x, mobile device 106 may store the level of audio/video output prior to the fade out. Thus, in restoring the audio/video output of media device 108-x, mobile device 106 may use the stored value of the audio/video output and signal media device 108-x to restore the audio output level to the previous level. If there is no stored value of the level (e.g., media device 108-x is turned off when a phone call is received), mobile device 106 may not restore or change the audio/video output of media device 108-x. Alternatively, media device 108-x may store the previous level and return media device 108-x to the previous level in response to a command or signal from mobile device 106.
In some implementations, when mobile device 106 detects an event related to audio/video output of mobile device 106 and/or a change in the distance between mobile device 106 and media device 108-x, mobile device 106 may cause (e.g., by sending a command) media device 108-x to perform actions other than those related to increasing/decreasing volume of an audio output, brightness of video output, etc. For example, in one implementation, mobile device 106 may cause media device 108-x to pause/resume outputting audio/video when an audio/video event associated with mobile device 106 occurs. In another implementation, mobile device 106 may cause media device 108-x to buffer a video/audio output from a source (e.g., from an Internet content provider) and/or to resume playing the buffered video/audio output when an audio/video event associated with mobile device 106 occurs.
In yet another implementation, mobile device 106 may cause media device 108-x to store information that indicates what part of content in the audio/video output has been played and/or to play the un-played part of the content when the video/audio event associated with mobile device 106 occurs. For example, assume that three people are watching a DVD, and one of them receives a call on a mobile device. In such a case, the people may not want to pause playing the DVD when the call starts or ends. Instead, information about what part of the DVD has been played may be stored, so that the person who receives the call may later watch the un-played portion of the DVD.
Process 600 may return to block 604 and/or 608 to continue to detect media devices 108 and/or an event related to a change in the audio/video output of mobile device 106.
The following example, with reference to
Max inputs into cell phone 808 a level of volume of sound he expects from a media player when Max receives or places a call on cell phone 808 and a particular range between cell phone 808 and digital television 804 and/or speaker 806 (e.g., 20 feet). When Max arrives at his house, cell phone 808 initiates a discovery of media devices on the local media network. Cell phone 808 discovers television 804 and speaker 806 on the local media network. From URLs that cell phone 808 obtains from digital television 804 and speaker 806, cell phone 708 obtains device and service descriptions of digital television 804 and speaker 806.
Max leaves his cell phone 808 powered on while he watches digital television 804. When cell phone 808 detects an incoming call, cell phone 808 obtains the physical locations of cell phone 808, digital television 804, and speakers 806. In addition, cell phone 808 determines a distance between cell phone 808 and digital television 804 and a distance between cell phone 808 and speaker 806.
After determining that cell phone 808 is within the particular range of digital television 804 (e.g., 20 feet in this example), cell phone 804 exchanges one or more messages with digital television 804 over the local media network to fade out the sound of digital television 804. When Max moves away from digital television 804 (e.g., outside the preset range of 20 feet) and toward speaker 806, cell phone 808 detects the movement of cell phone 808 and restores the volume of sound on digital television 804. If cell phone 808 is within the preset range of speaker 806, cell phone 808 reduces the volume of sound from speaker 806.
Cell phone 808 continues to change audio outputs of digital television 804 and speaker 806, as Max 802 roams inside his house and converses with the caller.
The foregoing description of implementations provides illustration, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the teachings.
For example, in one implementation, mobile device 106 may be able to detect the level of ambient noise and use the detected noise level to adjust the audio/video output of media devices 108. In another implementation, mobile device 106 may issue commands for transferring (e.g., blending in or blending out) the audio/video output to/from mobile device 106 from/to media device 108-x (e.g., a television with speakers, an entertainment center with a microphone, a laptop computer with speakers and a display, etc.). Some of such commands may pertain to a telephone call, as described above, and other commands may pertain to different types of audio/video output, such as playing a song or a movie, displaying text, etc.
In another example, while a series of blocks has been described with regard to an exemplary process illustrated in
It will be apparent that aspects described herein may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement aspects does not limit the invention. Thus, the operation and behavior of the aspects were described without reference to the specific software code—it being understood that software and control hardware can be designed to implement the aspects based on the description herein.
It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, integers, steps or components but does not preclude the presence or addition of one or more other features, integers, steps, components, or groups thereof.
Further, certain portions of the implementations have been described as “logic” that performs one or more functions. This logic may include hardware, such as a processor, a microprocessor, an application specific integrated circuit, or a field programmable gate array, software, or a combination of hardware and software.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the invention. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification.
No element, act, or instruction used in the present application should be construed as critical or essential to the implementations described herein unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Number | Name | Date | Kind |
---|---|---|---|
6694143 | Beamish et al. | Feb 2004 | B1 |
7184522 | Brunelle et al. | Feb 2007 | B2 |
20030133551 | Kahn | Jul 2003 | A1 |
20050071439 | Bookman et al. | Mar 2005 | A1 |
20070032225 | Konicek et al. | Feb 2007 | A1 |
20070049197 | Klein | Mar 2007 | A1 |
20070140198 | Fujita | Jun 2007 | A1 |
20090143056 | Tang et al. | Jun 2009 | A1 |
20090164547 | Ch'ng et al. | Jun 2009 | A1 |
20090169023 | Wang | Jul 2009 | A1 |
Number | Date | Country |
---|---|---|
1 775 657 | Apr 2007 | EP |
1 830 558 | Sep 2007 | EP |
2 898 719 | Sep 2007 | FR |
WO 2005078676 | Aug 2005 | WO |
WO 2006084841 | Aug 2006 | WO |
WO 2007125512 | Nov 2007 | WO |
Number | Date | Country | |
---|---|---|---|
20090197524 A1 | Aug 2009 | US |