System and method for the transfer of content between devices

An exemplary method and computing device for receiving a user input and determining whether the user input is a casting action for outputting content from the client device to one or more target devices. The computing device at least one target device of the one or more target devices that is eligible to output the content and identifies content source information associated with the content to be output by the at least one identified target device. One or more content output instructions are generated for outputting the content to the at least one identified target device. The computing device sends the one or more content output instructions to the at least one identified target device over a wireless connection.

FIELD

The present disclosure relates to controlling the transfer and display of content at multiple screens between different devices.

BACKGROUND

Multimedia content continues to be made available for consumption on a multitude of various devices. Users typically have the capability to access multimedia content at a plurality of devices within a subscriber premise and the content may be provided to a user via various transmission standards and mediums. With the continued growth and mixture of content consuming devices within a premise, it is desirable to improve upon systems and methods for facilitating interactions between the devices.

With various devices and screens from which and screens from which to view content, it is desirable for a user to have the capability to efficiently control the output of content at the various devices. For example, a user viewing content within a first location of a premise on a first device might want to continue viewing the content at a second location of the premise or on a second device. Also, at any given time, multiple users may be viewing different content on different devices within different locations of a subscriber premise. It can be beneficial to provide a user the ability to share or suggest content with another user within the premise. It may also be beneficial to provide a user the ability to share or suggest content with a screen from outside of the premise. Therefore, it is desirable to improve upon methods and systems for facilitating control of displayed content at multiple devices or screens.

SUMMARY

An exemplary for outputting content from a computing device is disclosed, comprising: receiving, via an input device of the computing device, a user input; determining, in a processor of the computing device, whether the user input is a casting action for outputting content from the client device to one or more target devices; identifying, in the processor of the computing device, at least one target device of the one or more target devices that is eligible to output the content; identifying, in the processor of the computing device, content source information associated with the content to be output by the at least one identified target device; generating, in the processor of the computing device, one or more content output instructions for use by the at least one identified target device to output the content; and sending, via an output device of the computing device, the one or more content output instructions to the at least one identified target device over a network over a wireless connection.

An exemplary computing device is disclosed, comprising: an input device configured to receive a user input; a processor configured to: determine whether the user input is a casting action for outputting content to one or more target devices; identify at least one target device of the one or more target devices that is eligible to output the content; identify content source information associated with content to be output by the at least one identified target device; and generate one or more content output instructions for use by the at least one identified target device to output the content; and an output device configured to send the one or more content output instructions to the at least one identified target device over a wireless connection.

An exemplary non-transitory computer readable memory storing program code for outputting content from a computing device, which when the memory is placed in communicable contact with a computing device, the program code causes the computing device to perform the steps of: receiving, via an input device of the computing device, a user input; determining, in a processor of the computing device, whether the user input is a casting action for outputting content from the client device to one or more target devices; identifying, in the processor of the computing device, at least one target device of the one or more target devices that is eligible to output the content; identifying, in the processor of the computing device, content source information associated with the content to be output by the at least one identified target device; generating, in the processor of the computing device, one or more content output instructions for user by the at least one identified target device to output the content; and sending, via an output device the computing device, the one or more content output instructions to the at least one identified target device over a wireless connection.

DETAILED DESCRIPTION

It is desirable to improve upon methods and system for controlling display of content at multiple devices. The methods, system, and computer readable media described in this disclosure enable the transfer and/or sharing of content between multiple devices. An interface may be used by a subscriber to cause content being viewed on a first device to be displayed at one or more other devices. Using an interface at a control device or source device, a user can selected one or more target devices, and various options for outputting content from the content source at the target device(s). Selected content may be shared with or transferred to one or more target devices.

A user may access an application at a control device, wherein the application allows the user to select, share, and/or transfer content to one or more target devices. The selection of content and a target device may be made using an interface at the control device, wherein the interface includes tiles representing one or more target devices. A user may use the various input techniques to modify the output of content at one or more target devices.

FIG. 1is a block diagram illustrating a network environment100operable to facilitate the control of displayed content at multiple devices in accordance with an exemplary embodiment of the present disclosure. In exemplary embodiments, video, voice, and/or data services may be delivered to one or more client devices105. Client devices105may include a television, mobile device, tablet, computer, set-top box (STB), gaming device, and any other device operable to receive video, voice, and/or data services. It should be understood that various multimedia services may be delivered to the client devices105, including but not limited to, live television, video-on-demand (VoD) content, pay-per view content, audio-only content, and Internet or application content such as YouTube or Netflix content. It should be further understood that a television may be connected to and controlled by a STB.

Multiple services may be delivered to client devices105over a local network110. The local network110may include a local area network (LAN), wireless local area network (WLAN), personal area network (PAN), mobile hotspot network, and others. The local network110may be provided at a subscriber premise by a gateway device, modem device, or other access device. It will be appreciated by those skilled in the relevant art that delivery of the multiple services over the local network110may be accomplished using a variety of standards and formats.

In exemplary embodiments of the present disclosure, multiple services (e.g., video, voice, and/or data services) may be delivered from a wide-area network (WAN)115to the local network110through a connection to a subscriber network120. The subscriber network may include an optical network, hybrid fiber coaxial (HFC) network, twisted-pair, mobile network, high-speed data network, and others. Multiple systems operator (MSO) devices and/or network within the WAN120may be used to provide, manage, and/or troubleshoot the multiple services provided to subscribers.

It will be appreciated by those skilled in the relevant art that client devices105may be capable of interacting and communicating with each other over various wireless communication standards (e.g., Wi-Fi, Bluetooth, etc.). The client devices105connected to a home network110may receive services according to one or more subscriptions between a subscriber and service provider.

According to exemplary embodiments, a control device can be configured to provide a subscriber with an interface for managing content received and displayed by one or more other target devices (e.g., client devices105, smart televisions, STBs, smart media devices, and/or other device that may communicate over the home network110). For example, a subscriber can access an application through a control device, wherein the subscriber can view other client devices105, which can be managed through the application, can identify programming information associated with content being displayed on the other client devices105, and can choose one or more of the other client devices105through which to display subscriber-selected content. The control device may be a mobile device, tablet, or any other device that is configured to provide a user interface.

A subscriber can initiate at a client device105(i.e., a control device and/or target device), an application configured to manage content received and displayed at one or more other client devices105. According to an exemplary embodiment, when a subscriber initiates the application, a message can be sent from the initiating client device105to a content transfer server. The content transfer server may store information associated with client devices105under the control of a subscriber, content provided to the client devices, and subscription information associated with the client devices105. It should be understood that the content transfer server may be located at a network back office (e.g., connected to the WAN115), or may be located within a subscriber premise (e.g., connected to the local network110).

In exemplary embodiments of the present disclosure, the content transfer server can maintain a list of client devices105that are connected to a local network110and/or are otherwise associated with a client device initiating a content transfer application. For example, the content transfer server can periodically request connection updates from client devices105or can receive notification when a client device105makes a new association with another client device or when a new client device105joins the local network110.

The content transfer server can maintain current status information associated with each client device105(e.g., power state, tuning state, content displayed). For example, the content transfer server may periodically request state information and/or tuning/content information from each of the client devices105or the content transfer server may receive status updates from a client device when the client device experiences a power state change (e.g., powers up or down) or when the client device tunes to a different channel or content source. It will be appreciated by those skilled in the relevant art that the content transfer server can use various communication techniques and methods to maintain a current list of client devices and corresponding status information.

The content transfer server can maintain subscription information associated with one or more client devices105or a subscriber associated with the client devices105. For example, the content transfer server may have access to subscription information (e.g., internally or through a connection to an external server), and can determine what services and/or programming is available to a client device105or subscriber by looking up the corresponding subscription information.

The content transfer server can respond to the initiating client device105by sending the client device105information associated with the client devices105under the control of the subscriber, content provided to the client devices, and subscription information associated with the client devices105. An interface displayed at the client device105can show each of the one or more client devices105that are capable of being controlled by the application. The interface may also show information associated with the content (e.g., program information such as title, channel, summary, etc.) currently being displayed at each of the client devices105. Each of the client devices105may be listed within the interface as a window or tile, and each window or tile may be displayed as a screenshot or thumbnail of content currently being viewed on the associated client device105.

In exemplary embodiments, subscriber information may be used at the initiating client device105to generate a list of content that is available to the subscriber. For example, a list of available content including, but not limited to television channels, pay per view content, VoD or recorded content, Internet multimedia content, pictures, music, HTML5 objects, file system objects, and others may be displayed within an interface at the initiating client device105.

According to exemplary embodiments, a subscriber using the initiating client device105can select content and can select one or more client devices105through which the selected content is to be displayed. Selected content may include content being currently viewed at one of the client devices105or may include content that is selected from a list of content available to the subscriber, and the selected client device(s)105may be any of the client devices105that are configured to receive the selected content. When the subscriber selects the content and target client device(s)105(e.g., the client device105selected for displaying the content), the initiating, or control, client device105can generate and output a message to the target device(s), wherein the message includes information identifying the selected content, a source for the content, and/or a specific point (i.e., time marker) at which to begin playback of the content at the target device.

The control device can generate and transmit a message to the target client device(s)105, wherein the message includes content information to allow the target client device(s)105to tune to the selected content. The content information can include a channel or source identifier (e.g., channel number, uniform resource locator (URL), etc.), and can further include identification of a specific segment of the content from which to begin playback of the content. For example, the subscriber may request that the target client device105begins playback of the content from the point at which the content was paused or most recently displayed at a different client device105. When the target client device105receives the message from the content transfer server, the target client device105can tune to the content identified within the message. It will be appreciated by those skilled in the relevant art that the identified content may be transcoded according to one or more formats associated with the target device before or during reception of the content by the target device.

According to exemplary embodiments, the control device can output a message to the one or more target client devices105, the message causing the target client device to prompt a user whether to decline or accept the shared or transferred content. For example, the target client device105can display an interface to a user, wherein the interface provides the user with information associated with the shared or transferred content (e.g., program information, information identifying the source or transferring user, etc.). The user can then select an option to decline or accept the offer to display the content on the target client device105.

In embodiments, the application interface can provide a subscriber with the option to transfer or share content being viewed on a source client device105to a target client device105. If the subscriber chooses to transfer content from the source client device105to the target client device105, the control device can send a message to the source client device105causing the source client device105to cease display of the content and/or to power down, and can send a message to the target client device105causing the target client device105to tune to the content and/or to be powered on.

“Picture in Picture” where swiped content is displayed within existing content currently being viewed (standard examples are, “picture in picture”, “picture in guide”, video and graphics scaling . . . ).

The mobile application selects content in the format supported by the target SMD for the use cases where content is being swiped from a cloud location. For example, if a user elects to Swipe 4K content from a cloud location to a SMD that only supports HD, the application attempts to find the same content in HD format and initiates delivery of HD content to the target SMD.

When the “Proximity” mode of operation is selected, content is delivered to the SMD that is closest to the mobile device (SMD #1). As the mobile device moves away from SMD #1 and comes within proximity of another (SMD #2), the content is removed from SMD #1 and is then delivered to SMD #2 to be displayed.

In the case of video content, the video will resume playing on the mobile device if no SMD is within proximity.

In exemplary embodiments of the present disclosure, a control device and/or one or more other client devices105may be configured with an identification of available content sources, available media devices (e.g., target devices), and/or one or more account or subscription credentials (e.g., user name, password, etc.).

According to exemplary embodiments described herein, a control device may include a user interface through which a user may input a command. For example, the control device may include a touchscreen through which a user input may be a haptic (e.g., a swipe pattern) based interaction. As another example, the control device may include a voice interface though which a user input may be a voice command. Table 1 shows example swipe actions or patterns and associated display instructions and corresponding actions. The swipe actions may be received at a control device (e.g., mobile device, tablet, etc.), and the control device may output corresponding display instructions to one or more target devices (e.g., smart media devices (SMDs) such as set-top boxes (STBs), smart televisions, and/or other media devices capable of wireless communication).

TABLE 1SwipeActionFromToDescriptionUpMobile DeviceSMDContent stops playingon Mobile Device,and begins playing onSMD from sameposition in thecontent. If TVconnected to theSMD was poweredoff, SMD powers onthe TV.DownCurrent SMD(s)MobileContent stops playingDeviceon SMD, and beginsplaying on MobileDevice from the sameposition in thecontent. User has theoption for the SMDto automaticallypower off the TV.‘V’Mobile DeviceSMDyUser swipes a ‘V’pattern and ispresented with list ofSMDs. User selectsdestination SMD (oneor more). Contentpauses on mobiledevice and beginsplaying on selectedSMD(s) from sameposition in thecontent. If TVconnected to theSMD was poweredoff, SMD powers onthe TV.TwoMobile DeviceAll SMDsContent stops playingFingers Upon Mobile Device,and begins playing onAll SMDs from sameposition in thecontent. If any of theTVs connected to theSMDs were poweredoff, the SMD powerson the TV.LeftMobile DeviceSMD(s)When one or moreSMDs is displayingcontent, swipe lefttransitions toprevious content itemin the list.RightMobile DeviceSMD(s)When one or moreSMDs is displayingcontent, swipe righttransitions to nextcontent item in thelist.When SMD(s) isdisplaying a photo,add music and begina Slide Show.‘M’Mobile DeviceSMD(s)Repeated ‘M’ swipesprogresses musicselection to next onein a configurable listof music tracks

In exemplary embodiments, through the user interface of a control device, a user may initiate a transfer of content to all target devices connected to a LAN or select one or more specific target devices to which content is transferred. According to exemplary embodiments, the control device may be configured to communicate with one or more target devices in order to determine a distance between the control device and each of the one or more target devices. For example, the control device may be configured to simultaneously communicate over a plurality of channels (e.g., Bluetooth and/or Wi-Fi channels), and a first channel may be utilized by the control device to transmit and receive proximity information (e.g., probes and/or probe responses). The control device may utilize a second channel to pass display instructions to one or more target devices. For example, when the control device determines that the control device is near in proximity to a certain target device, the control device may output display instructions to the certain target device, wherein the display instructions cause the certain target device to output or display content that is identified within the display instructions.

In exemplary embodiments, a user may access the content and display switching features through an application that is downloaded to a control device. For example, an application may be downloaded at a control device (e.g., mobile device, tablet, etc.) from an application server125. The application, or information associated with the application, may be downloaded at one or more other client devices105, or the control device may push the application to the one or more other client devices105.

In response to a user input or a detection of a change in proximity between a control device and one or more target devices, the control device may output display instructions to one or more target devices. For example, the display instructions may include a source identifier (e.g., IP address, URL (uniform resource locator), etc.) to be used by a target device in order to retrieve corresponding content from a content source130and/or information identifying a certain point within the content from which to begin retrieving the corresponding content. Multiple streams may be output through a STB or television. For example, an independent audio stream may be played back (mixed) with video content to which the audio is not associated.

The interface may be displayed at a control device (e.g., client device105ofFIG. 1) upon an initiation of an application for controlling displayed content at a target device. It will be appreciated by those skilled in the relevant art that the interface may be displayed to a subscriber using various interface types (e.g., graphical user interface (GUI), touch-screen interface, etc.).

The interface may include a list of one or more target devices. The target devices may be represented as one or more target device tiles. Each of the target device tiles may be associated with a device (e.g., client device105ofFIG. 1) that may be connected to a local network (e.g., local network110ofFIG. 1) or that may otherwise be controlled by a subscriber. The target device tiles may be generated based upon information received from a user or other information gathered by the control device or other client device105.

The one or more content sources may include sources available to a subscriber or client device, for example, content sources made available through a subscription. Content sources may include live television channels, recorded content, VoD content, pay-per view content, Internet or application multimedia content (e.g., YouTube, Netflix, etc.), sources of pictures (e.g., photos stored in a cloud server, locally stored photos, etc.), sources of music (e.g., streaming music applications, locally stored music, etc.), and others.

In exemplary embodiments, the control device may transfer content from the control device to one or more target devices. For example, the control device may transfer the content (e.g., video, photos, music, etc.) to the one or more target devices. In embodiments, the control device may stream content to one or more target devices, and the control device may include a user interface through which a user may control trickplay (e.g., pause, fast-forward, rewind, etc.) and/or playback of the streamed content at the one or more target devices.

According to exemplary embodiments, when an output of content begins at a target device or control device in response to user input, content being output by the target device or control device at the time the user input was received may be paused. When the new content ends at the target device or control device, output of the content that was paused at the target device or control device may resume.

FIG. 2is a transition diagram200showing communications operable to facilitate the control of displayed content at multiple devices in accordance with an exemplary embodiment of the present disclosure. The control device may output a proximity ping205, wherein the proximity ping205may be received by one or more target devices that are within range of the control device or that are otherwise connected to a LAN associated with the control device. The control device may receive a proximity response210from one or more target devices, wherein the proximity response210is output from each target device in response to a proximity ping205being received by each target device, and wherein the proximity response210includes information from which the control device may determine a proximity between the control device and each target device. The control device may utilize a first channel (e.g., Bluetooth channel, WiFi channel, etc.) to transmit the proximity pings205and receive the proximity responses210.

In response to a user input or an indication by a proximity response210that the distance between the control device and a target device is within a certain range, the control device may output a content output instruction215to one or more target devices. For example, the content output instruction215may include a source identifier (e.g., IP address, URL (uniform resource locator), etc.) to be used by a target device in order to retrieve corresponding content from a content source and/or information identifying a certain point within the content from which to begin retrieving the corresponding content. For example, the content output instruction215can include information that may be used by the target device to tune to the identified content.

According to exemplary embodiments of the present disclosure, the content output instruction215may include the content data itself. For example, the content output instruction215may include a transmission of the content that is to be output at the target device. In exemplary embodiments, the content output instruction215may include a streaming session wherein the content is streamed from the control device to the target device. The content output instruction215may include one or more trickplay or playback commands that are output from the control device in response to user input received through a user interface of the control device.

In exemplary embodiments described herein, the content output instruction215may include a command to power up the target device (e.g., using an HDMI/CEC command). The content output instruction215may include an instruction to output a prompt to the target device, the prompt asking a user to choose whether to continue viewing content being displayed at the target device or to view the content being transferred to or shared with the target device.

In exemplary embodiments of the present disclosure, a user may be presented with various options for controlling the output of content at target devices and/or control devices. For example, a user can be prompted at an interface to select whether to share selected content with or transfer selected content to a target device. If the user selects the option to share selected content, the control device (e.g., the selected client device that is currently displaying the desired content) can continue to display the content currently being displayed. If the user selects the option to transfer the selected content, the control device can be instructed to cease display of the content. In embodiments, a content output instruction215may include a command to power down a connected television (e.g., using an HDMI/CEC command). It should be understood that a target device may be powered down or a tuner associated with the target device may be tuned away from the current channel in order to cause the device to cease output of certain content.

Using information provided by a content output instruction, a target device may output a content request220to a content source, and the content may be delivered to the target device through a content response225received at the target device from the content source.

The interface may be displayed at a control device (e.g., client device105ofFIG. 1) upon an initiation of an application for controlling displayed content at a target device. It will be appreciated by those skilled in the relevant art that the interface may be displayed to a subscriber using various interface types (e.g., graphical user interface (GUI), touch-screen interface, etc.).

The interface may include a list of one or more target devices. The target devices may be represented as one or more target device tiles. Each of the target device tiles may be associated with a device (e.g., client device105ofFIG. 1) that may be connected to a local network (e.g., local network110ofFIG. 1) or that may otherwise be controlled by a subscriber. The target device tiles may be generated based upon information received from a user or other information gathered by the control device or other client device105.

The one or more content sources may include sources available to a subscriber or client device, for example, content sources made available through a subscription. Content sources may include live television channels, recorded content, VoD content, pay-per view content, Internet or application multimedia content (e.g., YouTube, Netflix, etc.), sources of pictures, sources of music, and others.

FIG. 3is a flowchart illustrating a process300operable to facilitate an output of a content instruction in response to a received user input in accordance with an exemplary embodiment of the present disclosure. In response to receiving a user input (e.g., swipe action, voice command, etc.) at a control device (step302), the determination may be made whether the user input is associated with a casting action (step304). Casting actions may include various actions for changing content displayed at one or more target devices and/or the control device, and actions for changing the target devices that are displaying a piece of content. The casting action associated with the user input may be identified, for example, from a mapping of the user input to the associated casting action (step306).

One of more target devices that are to output a piece of content may be identified (step308). The one or more target devices may be identified based upon the casting action associated with the user input or based upon a determination of a proximity between the control device and one or more client devices105.

Content source information may be identified by the control device (step310). For example, the control device may identify content source information based upon content that is currently being output by the control device or by one or more other client devices105.

Using the content source information, the control device may generate one or more content output instructions (step312), and the one or more content output instructions may be output from the control device to the one or more identified target devices (step314).

FIG. 4is a flowchart illustrating a process400operable to facilitate a retrieval of content in response to receiving a content output instruction in accordance with an exemplary embodiment. A target device may receive a content output instruction (step402), for example, from a control device, and the target device may retrieve content source information from the content output instruction (step404). For example, the content source information may identify a piece of content to be output by the target device, a content source from which the content may be requested, and/or a point within the piece of content from which the target device is to begin outputting the piece of content.

Using the content source information, the target device may generate a content request (step406) and output the content request to a content source associated with the piece of content that is identified from the content output instruction (step408).

The target device may receive the requested content from the content source (step410), and the target device may begin outputting the content (step414).

FIG. 5is a flowchart illustrating a process500operable to facilitate changing an output device from a control device to a target device in accordance with an exemplary embodiment. In response to detecting a display instruction (e.g., user input) associated with changing content output from a control device to a target device (step502), the control device may identify a current point in a piece of content being output at the control device (step504).

The determination may be made whether the target device is powered on (step506). If the target device is powered on, the piece of content may be retrieved and output by the target device beginning at the identified current point in the content (step508). If the target device is not powered on, the target device may be powered on (step510) before outputting the content at the target device (step508).

FIG. 6is a flowchart illustrating a process600operable to facilitate changing an output device from a media device to a control device in accordance with an exemplary embodiment. In response to detecting a display instruction (e.g., user input) associated with changing content output from a media device to a control device (step602), the control device may identify a current point in a piece of content being output at the media device (step604).

The control device may retrieve and start output of the content at the control device beginning at the identified current point in the content (step606), and the stream of the content at the media device may be terminated (step608).

FIG. 7is a flowchart illustrating a process700operable to facilitate a user selection of one or more target devices for outputting content in accordance with an exemplary embodiment. In response to detecting a display instruction (e.g., user input) associated with changing content output from a control device to one or more selected target devices (step702), the control device may identify a current point in a piece of content being output at the control device (step704).

The control device may output a list identifying one or more target devices available for outputting the content (e.g., one or more target devices connected to a LAN associated with the control device) (step706).

The control device may receive user input of a user selection of one or more target devices that are identified within the list (step708).

The control device may determine whether the target device is powered on (step710). If the target device is powered on, the one or more selected target devices may receive and initiate output of the content beginning at the identified current point in the content (step712). If the target device is not powered on, the target device may be powered on (step714) before the content is output at the one or more selected target devices (step712).

FIG. 8is a flowchart illustrating a process800operable to facilitate changing an output device from a control device to all available target devices in accordance with an exemplary embodiment. In response to detecting a display instruction (e.g., user input) associated with changing content output from a control device to each respective one target device of a plurality of target devices (step802), the control device may identify a current point in a piece of content being output at the control device (step804).

The control device may determine whether each respective target device is powered on (step806). If each respective target device is powered on, the content may be received and output of the content is initiated beginning at the identified current point in the content (step808). If each respective target device is not powered on, one or more of the respective target devices may be powered on (step810) before outputting the content at the target device (step808).

FIG. 9is a flowchart illustrating a process900operable to facilitate switching output content from a current piece of content to a previous piece of content in accordance with an exemplary embodiment. In response to detecting a display instruction (e.g., user input) associated with outputting a previous piece of content (step902), the control device, or one or more target devices, may identify from a content list, a piece of content that is earlier in the content list than a piece of content that is currently being output at the one or more target devices (step904).

Output of the currently output piece of content may be stopped at each of the one or more target devices (step906), and an output of the identified piece of content may be started at each of the one or more target devices (step908).

FIG. 10is a flowchart illustrating a process1000operable to facilitate a switching output content from a current piece of content to a next piece of content in accordance with an exemplary embodiment. In response to detecting a display instruction (e.g., user input) associated with outputting a next piece of content (step1002), the control device, or one or more target devices, may identify from a content list, a piece of content that is later in the content list than a piece of content that is currently being output at the one or more target devices (step1004).

Output of the currently output piece of content may be stopped at each of the one or more target devices (step1006), and an output of the identified piece of content may be started at each of the one or more target devices (step1008).

FIG. 11is a flowchart illustrating a process1100operable to facilitate starting a media slide show at one or more target devices in accordance with an exemplary embodiment. In response to detecting a display instruction (e.g., user input) associated with starting a media slide show (step1102), the control device, or one or more target devices, may identify a first piece of audio content from a playlist (step1104) and a first piece of media from a media library (e.g., a piece of media currently being displayed at the control device or one or more target devices) (step1106).

The control device may identify one or more target devices available for outputting the media slide show (step1108).

The control device may determine whether the one or more identified target devices is powered on (step1110). If the one or more identified target devices is powered on, starting with the first piece of media, the control device may initiate a media slide show at each of the one or more identified target devices (step1112) and output the first piece of audio content at each of the one or more identified target devices (step1114). If the one or more identified target devices is not powered on, the one or more identified target devices may be powered on (step1116) before outputting the first piece of media and the first piece of audio content at the one or more identified target devices (steps1112,1114).

If, while the media slide show is ongoing, a subsequent swipe action associated with starting a media slide show is detected (step1118), a next piece of audio content may be identified from the playlist (step1120), and the next piece of audio content may be output at the one or more identified target devices in place of the current piece of audio being output (step1122). If, while the media slide show is ongoing, no subsequent swipe action is detected, output of the currently output piece of audio content is continued (step1124).

FIG. 12is a flowchart illustrating a process1200operable to facilitate switching output devices based upon a detected change in proximity between a control device and one or more target devices in accordance with an exemplary embodiment. With a proximity mode enabled and content being cast from a control device to a first target device, the control device may detect a proximity between the control device and a second target device that is less than a threshold proximity (step1202). For example, a first channel may be utilized by the control device to determine a proximity between the control device and one or more client devices105. The proximity information retrieved by the control device over the first channel may indicate a client device105that is nearest to the control device.

The control device may identify a current point in the content that is being cast to the first target device (step1204).

The determination may be made whether the second target device is powered on. If the second target device is powered on (step1206), the piece of content may be retrieved and output by the second target device beginning at the identified current point in the content (step1208). If the second target device is not powered on (step1206), the second target device may be powered on before outputting the content at the second target device (step1210).

FIG. 13is a flowchart illustrating a process1300operable to facilitate switching output devices from a first target device based upon an increased distance between the first target device and a control device in accordance with an exemplary embodiment. With a proximity mode enabled and content being cast from a control device to a first target device, the control device may detect a proximity between the control device and the first target device that is greater than a threshold proximity (step1302). For example, a first channel may be utilized by the control device to determine a proximity between the control device and one or more client devices105. The proximity information retrieved by the control device over the first channel may indicate that the control device has been moved away from the first target device.

The control device may identify a current point in the content that is being cast to the first target device (step1304).

Using proximity information retrieved by the control device, the control device may determine whether another target device is within a certain proximity of the control device (step1306). If another target device is not within a certain proximity of the control device, the control device may initiate an output of the content at the control device beginning at the identified current point in the content (step1308). If another target device is within a certain proximity of the control device (step1306), the control device may initiate an output of the content at the other target device beginning at the identified current point in the content (step1310).

FIG. 14is a flowchart illustrating a process1400operable to facilitate outputting media to a remote target device in response to a sharing authorization in accordance with an exemplary embodiment.

The Swipe feature includes the selection of one or more SMDs that are in remote locations, for which the feature is enabled on those SMDs and for which the mobile client is authorized to share content. For example, a user (user #1) elects to Swipe (share) a photo with a friend (user #2) who is remotely located (step1402). User #2 uses their mobile application or SMD application to authorize User #1's device (step1404). User #1 will then be presented with the option to Swipe content to User #2's SMD. In response, the content may be output at the remote target device (step1406).

FIG. 15is a flowchart illustrating a process1500operable to facilitate adding a remote target device to a list of target devices in response to a sharing authorization in accordance with an exemplary embodiment. The control device may receive a user request to share media with a remote target device (step1502). In response to receiving a sharing authorization from a remote target device (step1504), a control device may add the remote target device to a list of one or more target devices that are available for accepting shared media from the control device (step1506).

FIG. 16is a flowchart illustrating a process1600operable to identifying a target device based upon a direction of a detected swipe action in accordance with an exemplary embodiment.

The control device may detect a display instruction associated with changing the output from the control device to a target device (step1602). User has the option to manually select a target device based on the directional location detected by the control device. For example, if the target device is detected to be in front of the user, swiping content forward when in this mode, would initiate the display of that content on the target device directionally located in front of the control device. The control device may identify a current point in the content being output (step1604) and identify a direction associated with the swipe action (step1606). The control device may identify a target device that is located in the direction associated with the swipe action (step1608) and stop output of the content (step1610). If the identified target device is powered on (step1612), the output of the content is started at the identified target device beginning at the current point in the content identified by the control device (step1614). If the identified target is not powered on, the target device is powered on (step1616) then starts outputting the content is started at the identified target device beginning at the current point in the content identified by the control device (step1614).

FIG. 17is a block diagram of a hardware configuration1700operable to facilitate the control of displayed content at multiple devices in accordance with an exemplary embodiment. The hardware configuration1700can include a processor1710, a memory1720, a storage device1730, and an input/output device1740. Each of the components1710,1720,1730, and1740can, for example, be interconnected using a system bus1750. The processor1710can be capable of processing instructions for execution within the hardware configuration1700. In one implementation, the processor1710can be a single-threaded processor. In another implementation, the processor1710can be a multi-threaded processor. The processor1710can be capable of processing instructions stored in the memory1720or on the storage device1730.

The memory1720can store information within the hardware configuration1700. In one implementation, the memory1720can be a computer readable medium. In one implementation, the memory1720can be a volatile memory unit. In another implementation, the memory1720can be a non-volatile memory unit.

In some implementations, the storage device1730can be capable of providing mass storage for the hardware configuration1700. In one implementation, the storage device1730can be a computer-readable medium. In various different implementations, the storage device1730can, for example, include a hard disk device, an optical disk device, flash memory or some other large capacity storage device. In other implementations, the storage device1730can be a device external to the hardware configuration1700.

The input/output device1740provides input/output operations for the hardware configuration1700. In embodiments, the input/output device1740can include one or more of a network interface device (e.g., an Ethernet card), a serial communication device (e.g., an RS-232 port), one or more universal serial bus (USB) interfaces (e.g., a USB 2.0 port), one or more wireless interface devices (e.g., an 802.11 card), and/or one or more interfaces for outputting video and/or data services to a client device105ofFIG. 1(e.g., television, computer, tablet, mobile device, etc.). In embodiments, the input/output device can include driver devices configured to send communications to, and receive communications from one or more networks (e.g., subscriber network120ofFIG. 1, WAN115ofFIG. 1, etc.).

The subject matter of this disclosure, and components thereof, can be realized by instructions that upon execution cause one or more processing devices to carry out the processes and functions described above. Such instructions can, for example, comprise interpreted instructions, such as script instructions, e.g., JavaScript or ECMAScript instructions, or executable code, or other instructions stored in a computer readable medium.

Particular embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results, unless expressly noted otherwise. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some implementations, multitasking and parallel processing may be advantageous.