U.S. patent application number 13/370751 was filed with the patent office on 2012-08-16 for system and method for using an application on a mobile device to transfer internet media content.
Invention is credited to Osama Al-Shaykh, Richard June, James J. Kosmach, Eva MacKay, Greg Sherwood.
Application Number | 20120210205 13/370751 |
Document ID | / |
Family ID | 46637852 |
Filed Date | 2012-08-16 |
United States Patent
Application |
20120210205 |
Kind Code |
A1 |
Sherwood; Greg ; et
al. |
August 16, 2012 |
SYSTEM AND METHOD FOR USING AN APPLICATION ON A MOBILE DEVICE TO
TRANSFER INTERNET MEDIA CONTENT
Abstract
A system and a method use an application on a mobile device to
transfer internet media content to a rendering device in a home
network. The application may use an HTML rendering engine to
display a web page to a user of the mobile device, and the web page
may have controls for accessing the internet media content. The
application may receive a user interaction signal which may
indicate that a user invoked one of the controls for accessing the
internet media content. In response, the application may initiate
transfer of the internet media content to the rendering device in
the home network and/or may queue the internet media content for
later playback using the rendering device.
Inventors: |
Sherwood; Greg; (Inverness,
IL) ; Kosmach; James J.; (Geneva, IL) ;
Al-Shaykh; Osama; (San Diego, CA) ; June;
Richard; (Groton, MA) ; MacKay; Eva; (North
Andover, MA) |
Family ID: |
46637852 |
Appl. No.: |
13/370751 |
Filed: |
February 10, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61463088 |
Feb 11, 2011 |
|
|
|
Current U.S.
Class: |
715/234 |
Current CPC
Class: |
G06F 16/972 20190101;
H04N 21/47217 20130101; H04M 1/72561 20130101; H04N 21/41407
20130101; H04L 12/2809 20130101; H04L 67/025 20130101; G06F 16/44
20190101; H04L 2012/2849 20130101; H04N 21/43615 20130101; G06F
40/14 20200101; H04L 12/2836 20130101; H04M 1/72583 20130101; G06F
40/151 20200101; H04N 21/6125 20130101; H04N 21/4782 20130101; H04N
21/6175 20130101; G06F 16/9574 20190101; H04L 12/281 20130101; H04L
12/2812 20130101 |
Class at
Publication: |
715/234 |
International
Class: |
G06F 17/00 20060101
G06F017/00 |
Claims
1. A method for transferring internet media content using an
application on a mobile device to transfer internet media content,
the method comprising the steps of: receiving web content for a web
page on the mobile device wherein the web content has original
media controls for accessing the internet media content and further
wherein each of the original media controls has a corresponding
internet media content object; identifying the original media
controls wherein the application on the mobile device processes the
web content to identify the original media controls; modifying the
web content to form modified web content having one or more
additional media controls wherein the application modifies the web
content and further wherein each of the additional media controls
corresponds to one of the original media controls; displaying the
modified web content as a rendered web page using an HTML rendering
engine; receiving a user interaction signal which indicates user
interaction with the rendered web page wherein the application
receives the user interaction signal; processing the user
interaction signal wherein the application processes the user
interaction signal to identify one of the additional media controls
invoked by the user; and initiating a media action corresponding to
the identified additional media control wherein the media action
involves the internet media content object which corresponds to the
original media control to which the identified additional media
control corresponds.
2. The method of claim 1 further comprising the step of: the
application receiving the web content in response to a content
request message sent by the application.
3. The method of claim 1 further comprising the step of: the HTML
rendering engine receiving the web content in response to a content
request message sent by the HTML rendering engine.
4. The method of claim 1 further comprising the step of: the HTML
rendering engine generating the user interaction signal in response
to user interaction with the rendered web page.
5. The method of claim 1 wherein the mobile device has an operating
system which provides the HTML rendering engine.
6. The method of claim 1 further comprising the step of: the
application modifying the web content using a structured
representation of the web page created by the HTML rendering
engine.
7. The method of claim 1 wherein one of the additional media
controls is an HTML <a> tag which links to a first URL
wherein the user interaction signal conveys the first URL to the
application.
8. The method of claim 1 wherein one of the additional media
controls is created by a scripting code fragment provided by the
application to the HTML rendering engine.
9. The method of claim 1 wherein one of the additional media
controls is created by a scripting code fragment retrieved by the
application from a database of scripting code fragments wherein
each of the scripting code fragments in the database corresponds to
a content source.
10. The method of claim 9 wherein the database is remote from the
mobile device and accessible to the mobile device via the
internet.
11. The method of claim 9 further comprising the step of: the
application retrieving the scripting code fragment by querying the
database using a content source identifier.
12. The method of claim 1 wherein the user interaction signal is
generated by a scripting code fragment inserted into the web
content by the application.
13. The method of claim 1 wherein the media action instructs an
external rendering device to play the internet media content
object.
14. The method of claim 1 wherein the media action adds the
internet media content object to a playback queue.
15. A method for transferring internet media content using an
application on a mobile device to transfer internet media content,
the method comprising the steps of: retrieving a web page having
media controls for accessing internet media content; displaying the
web page in a user interface of the mobile device; presenting
application controls for selecting a playback mode from a plurality
of playback modes; accepting first user input which selects a first
playback mode using the application controls; accepting second user
input which selects a first media control from the media controls
of the web page wherein the first media control is for accessing
first internet media content; and playing the first internet media
content using the first playback mode.
16. The method of claim 15 wherein the first media content is
played in response to the first user input.
17. The method of claim 15 wherein the first media content is
played in response to the second user input.
18. The method of claim 15 wherein the first playback mode is one
of playback on the mobile device, playback on an external rendering
device connected to the mobile device by a local network, and
addition to a playback queue.
19. A method for transferring internet media content using an
application on a mobile device to transfer internet media content,
the method comprising the steps of: retrieving first web content
for a web page for display on the mobile device using a first
content request having a first requester identification field which
specifies one of the mobile device and a mobile device web browser;
creating a rendered web page from the first web content wherein an
HTML rendering engine creates the rendered web page and further
wherein the rendered web page is displayed to a user of the mobile
device; receiving a user interaction signal generated in response
to user input on the mobile device wherein the user input is
accepted after display of the rendered web page and further wherein
the application receives the user interaction signal; retrieving
second web content for the web page using a second content request
having a second requester identification field which is different
than the first requester identification field; analyzing the second
web content to determine an alternate version of the internet media
content for display on an external rendering device in
communication with the mobile device; and initiating transfer of
the alternate version of the internet media content to the external
rendering device.
20. The method of claim 19 further comprising the steps of:
analyzing the first web content to identify media controls; and
modifying the first web content to insert additional media controls
displayed on the mobile device.
21. The method of claim 19 wherein the HTML rendering engine
generates the user interaction signal.
22. The method of claim 19 wherein the second web content is not
used to display a web page on the mobile device.
23. The method of claim 19 wherein the second web content has a set
of visual elements necessary for display of the second web content
as a web page and further wherein retrieval of the second web
content does not retrieve the visual elements.
24. The method of claim 19 wherein the application initiates the
transfer of the alternate version of the internet media content in
response to receiving the user interaction signal.
25. The method of claim 19 wherein the second requester
identification field specifies a full web browser which the mobile
device is not capable of running.
26. A method for transferring internet media content using an
application on a mobile device to transfer internet media content,
the method comprising the steps of: retrieving web content for a
web page wherein the web content is retrieved from a first content
source; querying a database of script code fragments wherein the
application queries the database and further wherein the query
identifies the first content source wherein the database identifies
one or more script code fragments available from the database which
correspond to the first content source in response to the query;
receiving a first script code fragment from the database wherein
the application receives the first script code fragment from the
database wherein the first script code fragment is one of the one
or more script code fragments identified by the database in
response to the query; inserting the first script code fragment
into the web content to produce modified web content; and
displaying the modified web content as a web page on the mobile
device.
27. The method of claim 26 wherein the database is remote from the
mobile device and accessible to the mobile device via a
network.
28. The method of claim 26 wherein the first script code fragment
identifies one or more original media controls in the web page
wherein the one or more original media controls allow a user to
access internet media content from the web page.
29. The method of claim 26 wherein the first script code fragment
adds one or more additional media controls to the web page wherein
the one or more additional media controls correspond to media
actions which apply to internet media content accessible from the
web page.
30. The method of claim 26 wherein the first script code fragment
directly invokes a function of the application in response to user
interaction with the web page.
31. The method of claim 26 wherein the database of script code
fragments has script code fragments which correspond to each
content source of a plurality of content sources wherein the first
content source is one of the plurality.
32. The method of claim 26 wherein an HTML rendering engine
displays the modified web content and further wherein the HTML
rendering engine uses a scripting engine to execute the first
script code fragment.
Description
[0001] This application claims the benefit of U.S. Provisional
Application Ser. No. 61/463,088 filed Feb. 11, 2011.
BACKGROUND OF THE INVENTION
[0002] The present invention generally relates to a system and
method for using an application on a mobile device to transfer
internet media content to a rendering device in a home network.
More specifically, the application may use an HTML rendering engine
to display a web page to a user of the mobile device, and the web
page may have controls for accessing the internet media content.
The application may initiate transfer of the internet media content
to the rendering device in the home network and/or may queue the
internet media content for later playback using the rendering
device.
[0003] The internet has a large and still growing number of content
sites which offer access to digital media content, such as digital
photographs, digital music files and/or streams, digital video
files and/or streams, and/or the like. Such internet media content
is typically accessible through web pages provided by the content
site or by a third party site, such as a search engine provider or
a content indexing service. Therefore, end users typically access
internet media content using a web browser to discover, select
and/or play back the internet media content. The internet media
content is typically played using media playback capabilities of
the web browser. Alternatively, the internet media content may be
played by a companion media player which may be a separate
application or which may be added to the web browser in the form of
a "browser plug-in."
[0004] For example, a user may access Flickr (trademark of Yahoo!
Inc., domain at www.flickr.com) in a web browser to search for and
view photographs uploaded by users of the Flickr photo sharing
site. As another example, a user may visit YouTube (trademark of
Google Inc., domain at www.youtube.com) to search for and view
video content uploaded by users of the YouTube video sharing
service. As another example, a user may pull up the Google search
engine (trademark of Google Inc., domain at www.google.com) to
perform a free-form search, and, as a result, the user may obtain a
page of search results which includes and provides access to
internet media content from various content sites. Accordingly, a
user has many avenues to explore content sites and/or to discover
digital media content available on the internet.
[0005] Web browsers were originally created for full-function
personal computer devices, such as desktop and laptop PC's.
However, as a result of the constant evolution of computing
technology, a wide array of consumer electronics devices now have
web browsers. For example, web browsers are currently present in
mobile phones, smartphones, PDA's, tablet computing devices,
televisions and gaming devices. Web browsers in such electronic
devices often have browsing capabilities similar to the browsing
capabilities of a PC browser. For example, the web browser in a
modern smartphone may have full HTML rendering capabilities; may be
capable of running scripting languages, such as JavaScript
(trademark of Oracle America, Inc.) and Flash (trademark of Adobe
Systems Inc.); may be capable of playing media content discovered
through web pages; and/or similar web browsing capabilities.
[0006] However, web browsers on such electronic devices still lack
the extensibility and flexibility of a typical PC browser. For
example, web browsers for mobile phones, smartphones and PDA's
typically do not have a "plug-in" architecture and, therefore, do
not support the ability to accept external plug-ins or toolbars for
adding new functionality to the web browser. There are practical
reasons for this limitation. For example, such extensibility may
present security concerns for the mobile device web browser. As
another example, mobile devices often have limited screen size and
user input facilities for which display of a toolbar or
implementation of additional user interface functions for
interaction with a plug-in may be impractical.
[0007] The discovery of and access to digital media content is, of
course, not limited to web browsers. Multimedia home networking
technologies, such as UPnP AV (trademark of UPnP Forum Non-Profit
Corp.) and DLNA (trademark of Digital Living Network Alliance
Corp.), allow users to consume digital media content through a
growing array of consumer electronics devices. For example, a user
may have a library of digital music files on a media server device
in a home network, and the user may access and play back the
digital music files using a DLNA-compliant networked stereo device.
In a similar fashion, the user may have digital video files stored
in the home network, and the user may access and play back the
digital video files using a DLNA-compliant television attached to
the home network. A DLNA-compliant rendering device may have an
internal control point which enables the device to present a user
interface by which the user may browse media servers and sources to
discover, select, retrieve, and/or play back the media content
available through the home network. Alternatively or additionally,
a DLNA-compliant rendering device may support external control so
that an external control point device and/or an external control
point application may be used to send media content to the
rendering device. Moreover, an external control point device and/or
an external control point application may instruct the rendering
device to retrieve media from a media server and/or may control the
media playback on the rendering device.
[0008] The assignee of the present application created a web
browser plug-in product called "Twonky Beam" which enables media
content discovered in a PC web browser to be sent to an external
rendering device, such as a DLNA-compliant television, stereo
and/or photo frame device. Embodiments of the web browser plug-in
product are disclosed in the application for U.S. patent published
as U.S. App. Pub. No. 2010/0332565, herein incorporated by
reference in its entirety. The web browser plug-in product
disclosed in U.S. App. Pub. No. 2010/0332565 utilizes the plug-in
architecture available on most PC web browsers; however, this
plug-in architecture may be lacking on the web browsers available
for other electronic devices, such as mobile phones, smartphones
and PDA's.
[0009] The assignee of the present application also created a
networked media controller product which may reside in a home
network and may provide control point functionality, media playback
control, queued playback, and/or other media control functions. The
networked media controller may enable other electronic devices,
such as mobile devices, to access such media control functions
through the home network using one or more control interfaces
provided by the networked media controller. Embodiments of the
networked media controller product are disclosed in the application
for U.S. patent published as U.S. Pub. No. 2010/0095332, herein
incorporated by reference in its entirety.
[0010] Many non-PC computing devices now support downloadable
applications. For example, the "App Store" (trademark of Apple
Inc.) provides downloadable applications for Apple devices such as
the iPhone, iPad and iPod Touch (all trademarks of Apple Inc.). As
another example, the Android Marketplace provides downloadable
applications for use on Android OS devices, such as Android
smartphones and tablets (trademark of Google Inc.). As a third
example, the ability to download and execute applications is built
into many devices, such as televisions, media player devices,
Blu-ray players (trademark of Blu-ray Disc Association) and gaming
consoles.
[0011] Operating systems, such as iOS (trademark of Apple Inc.) and
the Android OS, provide a rich application development environment.
As a result, the downloadable applications may access various
OS-provided functions and services related to graphics display,
user input, network access, rendering of web content, scripting,
media playback, and/or the like. For example, the Android operating
system has a WebView class which is capable of rendering web pages,
executing JavaScript (trademark of Oracle America, Inc.) code,
processing user interaction, and the like. However, current web
browsers, such as the web browsers provided by iOS and the Android
OS, do not have a plug-in architecture to enable the mobile device
to use a plug-in product to transfer internet media content to a
rendering device in a home network.
SUMMARY OF THE INVENTION
[0012] The present invention generally relates to a system and
method for using an application on a mobile device to transfer
internet media content to a rendering device in a home network.
More specifically, the application may use an HTML rendering engine
to display a web page to a user of the mobile device, and the web
page may have controls for accessing the internet media content.
The application may receive a user interaction signal which may
indicate that a user invoked one of the controls for accessing the
internet media content. In response, the application may initiate
transfer of the internet media content to the rendering device in
the home network and/or may queue the internet media content for
later playback using the rendering device.
[0013] It is, therefore, an advantage of the present invention to
provide a system and a method for using an application on a mobile
device to transfer internet media content to a rendering device in
a home network.
[0014] Another advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which use a standard HTML rendering engine to render a web
page on the mobile device and provide controls in the rendered web
page for accessing the internet media content.
[0015] And, another advantage of the present invention is to
provide a system and a method for using an application on a mobile
device to transfer internet media content to a rendering device in
a home network which analyze web content to identify controls for
accessing the internet media content.
[0016] A further advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which modify web content to insert additional media
controls into the web content and use a standard HTML rendering
engine to render the modified web content.
[0017] Another advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which provide script fragments for processing a standard
representation of a web page.
[0018] Yet another advantage of the present invention is to provide
a system and a method for using an application on a mobile device
to transfer internet media content to a rendering device in a home
network which enable the application to receive a user interaction
signal from a standard HTML rendering engine and respond by
instructing the rendering device to render the internet media
content.
[0019] A further advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which present playback mode selection controls for
selecting a playback mode which determines media playback behavior
for internet media content selected in a rendered web page.
[0020] Another advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which have a media transcoder component provided by the
application for transcoding the internet media content based on
capabilities of the rendering device.
[0021] Yet another advantage of the present invention is to provide
a system and a method for using an application on a mobile device
to transfer internet media content to a rendering device in a home
network which have a media server component provided by the
application for proxying the transfer of internet media content to
the rendering device.
[0022] Another advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in the home
network which transfer the internet media content using a rendering
control component in the home network which is separate from the
mobile device and the rendering device.
[0023] And, another advantage of the present invention is to
provide a system and a method for using an application on a mobile
device to transfer internet media content to a rendering device in
a home network which retrieve and render a web page on the mobile
device and retrieve an alternative version of the web page having
controls for accessing a different version of the internet media
content of the web page.
[0024] Yet another advantage of the present invention is to provide
a system and a method for using an application on a mobile device
to transfer internet media content to a rendering device in a home
network which do not require that the mobile device browser has a
plug-in architecture.
[0025] A further advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which enable web browsing to occur with enhanced multimedia
functions for the internet media content.
[0026] Another advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which use an HTML rendering engine external to the
application.
[0027] And, another advantage of the present invention is to
provide a system and a method for using an application on a mobile
device to transfer internet media content to a rendering device in
a home network which render the internet media content in the home
network without downloading the internet media content to a media
server in the home network.
[0028] Another advantage of the present invention is to provide a
system and a method for using an application on a mobile device to
transfer internet media content to a rendering device in a home
network which enable the user to send the internet multimedia
content to any compatible rendering device in the home network.
[0029] Yet another advantage of the present invention is to provide
a system and a method for using an application on a mobile device
to transfer internet media content to a rendering device in a home
network which implement a user interface which combines web
browsing tasks with the tasks of selecting, managing and
controlling rendering devices in the home network.
[0030] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0031] FIGS. 1-4 and 6 illustrate black box diagrams of systems for
using an application on a mobile device to transfer internet media
content to a rendering device in a home network in embodiments of
the present invention.
[0032] FIG. 5 illustrates a black box diagram of web content and
modified web content used in an embodiment of the present
invention.
[0033] FIG. 7 illustrates a flowchart of a method for using an
application on a mobile device to transfer internet media content
to a rendering device in a home network in an embodiment of the
present invention.
[0034] FIGS. 8 and 9 illustrate embodiments of a user interface for
using an application on a mobile device to transfer internet media
content to a rendering device in a home network in embodiments of
the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0035] The present invention generally relates to a system and
method for using an application on a mobile device to transfer
internet media content to a rendering device in a home network.
More specifically, the application may use an HTML rendering engine
to display a web page to a user of the mobile device, and the web
page may have controls for accessing the internet media content.
The web page may be based on web content retrieved from a content
source. The application may analyze the web content to identify the
controls for accessing the internet media content, and/or the
application may modify the web content to insert additional media
controls. The application may receive a user interaction signal
which may indicate that a user invoked one of the controls for
accessing the internet media content and/or one of the additional
media controls. In response, the application may initiate transfer
of the internet media content to the rendering device in the home
network and/or may queue the internet media content for later
playback using the rendering device.
[0036] Referring now to the drawings wherein like numerals refer to
like parts, FIG. 1 generally illustrates a network configuration 10
in which an embodiment of the present invention may operate. The
network configuration 10 may have a mobile device 11 connected to a
local network 12 which may have one or more rendering devices. For
example, the local network 12 may have a first rendering device 21,
a second rendering device 22, and/or a third rendering device 23
(collectively hereafter "the rendering devices 21, 22, 23").
[0037] The present invention is not limited to a specific number of
rendering devices, and the local network 12 may have any number of
rendering devices.
[0038] The local network 12 may be, for example, a local area
network, a home network, an office network, and/or the like. The
local network 12 may be based on one or more network technologies
such as IEEE 802.11 ("WiFi"), Ethernet, Firewire (trademark of
Apple Inc.), Multimedia over Coax ("MoCa"), Bluetooth, and/or the
like. The local network 12 is not limited to these examples, and
the local network 12 may incorporate any network connection
technology known to one skilled in the art. The local network 12
may incorporate various connection technologies using wires,
routers, network adapter devices, antennas and/or the like.
[0039] The local network 12 may be connected to and/or may be in
communication with the internet 13 and/or a similar wide area
network which provides access to content sources. For example, the
local network 12 may use a cable modem, a DSL modem, a home
networking router, and/or a similar device which provides an
internet connection. The present invention is not limited to a
specific technique for connecting the local network 12 to the
internet 13, and the local network 12 may be connected to the
internet 13 using any means known to one skilled in the art.
[0040] The mobile device 11 may be a mobile phone, a smartphone, a
personal digital assistant, a laptop PC, a tablet device, a
portable gaming device, a portable media player, and/or the like.
The mobile device 11 may be a general purpose computing device with
capability to execute applications. The mobile device 11 may have
pre-installed applications. Further, the mobile device 11 may
enable a user 15 of the mobile device 11 to download and/or install
applications which may be subsequently accessed and used on the
mobile device 11. The mobile device 11 may have web browsing
capabilities, media playback capabilities, networking capabilities,
and/or the like.
[0041] As previously set forth, the local network 12 may have
and/or may be connected to one or more rendering devices, such as,
for example, the rendering devices 21, 22, 23. Each of the one or
more rendering devices may be a networked television device, a
networked stereo device, a digital photo frame device, a desktop
PC, a laptop PC, another mobile device, a gaming console, and/or
the like. One or more of the rendering devices may be compatible
with multimedia networking standards, such as, for example, UPnP AV
and/or DLNA. The one or more rendering devices may have rendering
capabilities; for example, the one or more rendering devices may be
capable of rendering multimedia content of a particular format,
multimedia content encoded using particular codecs, multimedia
content encoded using a particular set of properties, multimedia
content encoded using particular profiles and/or levels, multimedia
content protected by a particular DRM technology, multimedia
content transported using a particular streaming format, and/or the
like.
[0042] The rendering devices may be capable of advertising and/or
communicating the rendering capabilities to other devices. For
example, the rendering devices may communicate the rendering
capabilities based on UPnP discovery and device description
processes and/or based on other techniques, such as exchange of an
SDP session description. The present invention is not limited to
these example techniques, and the rendering devices may communicate
the rendering capabilities using any technique known to one skilled
in the art.
[0043] The user 15 may use the mobile device 11 to browse the web,
to view and interact with web pages, and to access and play back
internet multimedia content discovered using the web pages. The
mobile device 11 may request and/or may retrieve web content from
one or more content sources available through the internet 13. For
example, the mobile device 11 may use the internet 13 to request
and/or retrieve web content from a first content source 31, a
second content source 32 and/or a third content source 33
(collectively hereafter "the content sources 31, 32, 33"). The
present invention is not limited to a specific number of content
sources, and the mobile device 11 may use the internet 13 to
request and/or retrieve web content from any number of content
sources.
[0044] The mobile device 11 may display the web content as one or
more web pages to the user 15. The user 15 may interact with the
web pages to search for, discover and/or select internet multimedia
content. The mobile device 11 may play back internet multimedia
content selected from the web pages by the user 15. Further, the
mobile device 11 may present enhanced multimedia functions, such
as, for example, transferring the selected internet multimedia
content to one of the rendering devices in the local network 12,
and/or adding the selected internet multimedia content to a
playback queue. For example, the mobile device 11 may transfer the
selected internet multimedia content to one of the rendering
devices 21, 22, 23.
[0045] The content sources, such as, for example, the content
sources 31, 32, 33, may provide various types of internet content.
For example, the content sources may provide web content, web
pages, search results, text, web formatting, images, graphics,
style sheets, URLs, digital audio files, digital audio streams,
digital video files, digital video streams, scripting code,
embedded media players, and/or the like. The scripting code may be,
for example, JavaScript (trademark of Oracle America, Inc.),
ECMAScript, Flash (trademark of Adobe Systems Inc.) and/or the
like. Each of the content sources may be, for example, a web
server, a media server, a search engine, a content service, a media
sharing site, a social networking site, a news site, a sports site,
and/or the like. One or more of the content sources may be multiple
independent servers; for example, a content source may be a server
farm with well-known properties, such as load balancing and
failover.
[0046] A single web page may reference and/or may embed elements
from various servers and/or content sources. Thus, retrieval and/or
display of a single web page may require that the mobile device 11
requests and/or retrieves elements from multiple different web
servers, media servers and/or content sources. Therefore, actions
for requesting and/or retrieving a web page, as discussed in more
detail hereafter, have all necessary requests and retrievals
required to obtain the various elements necessary to construct
and/or to render the web page.
[0047] The local network 12 may have and/or may be connected to a
rendering control component 25 which may be external to the mobile
device 11. If available, the rendering control component 25 may
provide various rendering control functions to other devices in the
local network 12. For example, the rendering control component 25
may provide standard UPnP AV and/or DLNA functions, such as device
discovery, capability exchange, and/or control point functions. The
rendering control component 25 may instruct a rendering device in
the local network 12, such as one of the rendering devices 21, 22,
23, to request, retrieve, and/or render media content. The
rendering control component 25 may control how a rendering device
in the local network 12 renders the media content. For example, the
rendering control component 25 may raise or lower the playback
volume. Further, the rendering control component 25 may move
playback forward or backward in a media object and/or in a playlist
of media objects. The rendering control component 25 may provide
queued playback to a rendering device in the local network 12. For
example, the rendering control component 25 may internally maintain
a queue state which tracks media objects which the rendering
control component 25 is directing a rendering device to play back
in sequence.
[0048] The rendering control component 25 may provide an interface
by which another device, such as the mobile device 11, may access,
invoke, and/or control the various rendering control functions
provided by the rendering control component 25. In an embodiment,
the rendering control component 25 may be the "Control Element 100"
of U.S. App. Pub. No. 2010/0095332, herein incorporated by
reference in its entirety. The present invention is not limited to
a specific embodiment of the rendering control component 25, and
the rendering control component 25 may be any known component for
providing rendering control functions to other devices in the local
network 12.
[0049] The rendering control component 25 may have additional
functionality. For example, the rendering control component 25 may
have a media server element capable of proxying internet media
content and/or making proxied internet media content available to a
rendering device in the local network 12. The media server element
may support well-known server protocols; for example, the media
server element it may be a UPnP AV compliant media server. The
rendering control component 25 may have a media transcoder element
capable of transcoding the internet media content for compatibility
with the rendering capabilities of a rendering device.
[0050] In an embodiment, the mobile device 11 may utilize the
rendering control component 25 to transcode and/or to proxy the
internet media content before the internet media content is
transferred to a rendering device in the local network 12. In
another embodiment, the mobile device 11 may transcode and/or may
proxy the internet media content, and, as a result, the mobile
device 11 may provide such functions without relying on the
rendering control component 25.
[0051] FIG. 2 generally illustrates a system 40 for using an
application 41 executed by the mobile device 11 to transfer
internet media content to a rendering device 42 in the local
network 12. In an embodiment, the local network 12 may be a home
network. The rendering device 42 may be, for example, one of the
rendering devices 21, 22, 23. The application 41 may use a HTML
rendering engine 48 to present enhanced media functions to the user
15 of the mobile device 11. In an embodiment, the HTML rendering
engine 48 may be a separate element provided by the mobile device
11 relative to the application 41. For example, the HTML rendering
engine 48 may be provided by the operating system of the mobile
device 11. The enhanced media functions may enable the user 15 to
initiate transfer of selected internet media content to the
rendering device 42 in the local network 12, to control the
rendering of the internet media content, to add the internet media
content to a playback queue, and/or the like.
[0052] The application 41 may be pre-installed on the mobile
device. For example, the application 41 may be installed on the
mobile device 11 before the mobile device 11 is purchased by the
user 15. Alternatively, the application 41 may be installed at the
direction of the user 15. For example, the application 41 may be
downloaded from an application store at the direction of the user
15. The application 41 may be provided by a non-transitory
computer-readable medium, such as register memory, processor cache
and Random Access Memory (RAM), which may have program instructions
executed by the mobile device.
[0053] The user 15 may interact with the application 41 and/or the
HTML rendering engine 48 through one or more user interface
components of the mobile device 11, such as a user interface 49 of
the mobile device 11. In an embodiment, the application 41 may be
used for web browsing instead of the default web browser of the
mobile device 11. As discussed in more detail hereafter, the user
interface 49 may be the user interface facilities provided by the
operating system of the mobile device 11.
[0054] The HTML rendering engine 48 may be capable of rendering web
content. For example, the HTML rendering engine 48 may process web
content to create a rendered web page. Then, the rendered web page
may be displayed to the user 15 of the mobile device 11.
[0055] The HTML rendering engine 48 may have additional
functionality related to the rendering of web content. For example,
the HTML rendering engine 48 may retrieve the web content
corresponding to a web page from one or more web servers, media
servers, and/or content sources. For example, the HTML rendering
engine 48 may retrieve the web content corresponding to a web page
from a content source 44, and the content source 44 may be one of
the content sources 31, 32, 33. The HTML rendering engine 48 may
construct, may maintain and/or may provide access to a structured
representation of the web page and elements related to the web
page. For example, the HTML rendering engine 48 may support a
Document Object Model ("DOM") as known to one skilled in the art.
As a result, the HTML rendering engine 48 may enable the
application 41 to use the DOM to access the web page and/or
elements related to the web page. As another example, the HTML
rendering engine 48 may have one or more scripting engines. As a
result, the HTML rendering engine 48 may execute scripting code,
such as Javascript, ECMAscript, Flash and/or the like. The
scripting code may be included in the web page as originally
retrieved from a content source. Alternatively, the scripting code
may be added to the web page by the application 41 an/or may be
directly communicated to the HTML rendering engine 48 by the
application 41.
[0056] The HTML rendering engine 48 may provide a rendered web page
for display on the mobile device 11. The rendered web page may
displayed within a larger application user interface created and/or
maintained by the application 41, and the application user
interface may be displayed in the user interface 49 of the mobile
device 11. Various communication models known to one skilled in the
art may support display of the rendered web page within a larger
application user interface. As a first example, the application 41
may designate a portion of a screen area for use by the HTML
rendering engine 48, and subsequently the HTML rendering engine 48
may be responsible for rendering the rendered web page in the
designated portion of the screen area as needed. The HTML rendering
engine 48 may communicate directly with the user interface 49 of
the mobile device 11 to display the rendered web page.
[0057] As a second example, the application 41 may request the
rendered web page directly from the HTML rendering engine 48 as
needed, and the application 41 may subsequently create and/or
maintain an application user interface which provides the rendered
web page. In a preferred embodiment, the user interface 49 of the
mobile device 11 may provide the application user interface. The
present invention is not limited to a specific means for displaying
the rendered web page to the user 15 of the mobile device 11. The
division of responsibility for displaying the application user
interface and/or the data flow by which the rendered web page is
displayed may depend on the user interface facilities available
from the operating system of the mobile device 11.
[0058] The HTML rendering engine 48 may support user interaction.
For example, the HTML rendering engine 48 may detect user selection
of a particular control, icon, button and/or link within the web
page. As a result, the HTML rendering engine 48 may communicate to
the application 41 that the user 15 selected the control, the icon,
the button and/or the link. Alternatively or additionally, the HTML
rendering engine 48 may detect lower level user interaction events.
For example, the HTML rendering engine 48 may detect that the user
15 pressed a physical button on the mobile device 11, moved a
pointing device, touched a particular location and/or area of a
touchscreen display, rotated the mobile device 11 from one display
orientation to another, and/or the like. As a result, the HTML
rendering engine 48 may communicate such lower level user
interaction events to the application 41.
[0059] The HTML rendering engine 48 may support additional browsing
functions. For example, the HTML rendering engine 48 may maintain a
browsing history to enable the user 15 and/or the application 41 to
access history functions, such as a "Go Back" function to return to
the previous web page and/or a "Go Forward" function to move to the
next web page in the browsing history. The HTML rendering engine 48
may support functions to add the current web page to a favorites
list. The HTML rendering engine 48 may support in-page navigation
techniques, such as panning, vertical scrolling, zooming the page
view in and out, and/or the like. The HTML rendering engine 48 may
support standard browsing interaction techniques, such as tables,
text boxes, and/or form submission.
[0060] The HTML rendering engine 48 may support, may facilitate
and/or may enable playback on the mobile device 11 of internet
media content selected from a web page by the user 15. The HTML
rendering engine 48 may access a default media player and/or
another media playback resource to support the playback of the
selected internet media content.
[0061] The HTML rendering engine 48 may be provided by the
operating system of the mobile device 11. Alternatively, the HTML
rendering engine 48 may be provided by another component of the
mobile device 11 and/or may be accessible to the application 41.
For example, the HTML rendering engine 48 may provide one or more
classes, function calls, application programming interfaces
("API's"), libraries and/or the like by which the application 41
may access the functionality of the HTML rendering engine 48.
[0062] The HTML rendering engine 48 may be any collection of one or
more components, services, classes, libraries and/or API's which
provide the functionality described herein for the HTML rendering
engine 48. The present invention does not require that a single
component, service, class, library or API implements all of the
functionality of the HTML rendering engine 48. For example, the
operating system of the mobile device 11 may have one service which
renders web content and may have a different service which handles
user interaction for the displayed web content, and each of the two
services may be a portion of the HTML rendering engine 48.
[0063] The operating system of the mobile device 11 may have a
collection of classes, functions, API's, libraries, services and/or
the like for displaying the user interface 49 of the mobile device
11 and/or for enabling the user 15 to interact with the user
interface 49. The application 41 may communicate with the user
interface 49 to display the application user interface. For
example, the application 41 may display text, graphics, controls
and/or the like which are not part of the rendered web page. As
previously set forth, the application 41 may be responsible for
obtaining the rendered web page from the HTML rendering engine 48
and/or communicating the rendered view to the user interface 49 for
display to the user 15. Alternatively, the HTML rendering engine 48
may directly communicate the rendered web page to the user
interface 49 through a communication connection 50 as shown FIG. 2.
Examples of the user interface 49 in embodiments of the present
invention are detailed in FIGS. 7 and 8.
[0064] Referring again to FIG. 2, the application 41 may
communicate with the HTML rendering engine 48 to request the
retrieval of a new web page, analyze web content for the current
web page, modify the web content of the current web page, receive
user interaction signals, and/or the like. Specific examples of
such communication are provided in subsequent figures.
[0065] The mobile device 11 may have a network interface 52. The
application 41 and/or the HTML rendering engine 48 may use the
network interface 52 to communicate with the local network 12
and/or the internet 13. The application 41 and/or the HTML
rendering engine 48 may communicate with one or more content
sources through the network, such as, for example, the content
sources 21, 22, 23. For example, the application 41 and/or the HTML
rendering engine 48 may request web content from a content source,
and the content source may respond by transmitting the web content
to the application 41 and/or the HTML rendering engine 48 through
the local network 12 and/or the internet 13.
[0066] The application 41 may use the network interface 52 and/or
the local network 12 to communicate with the rendering control
component 25 and/or the rendering device 42, such as one of the
rendering devices 21, 22, 23. For example, the application 41 may
instruct the rendering control component 25 to initiate rendering
of media content on the rendering device 42. As another example,
the application 41 may instruct the rendering control component 25
to add media content to a playback queue maintained by the
rendering control component 25. As yet another example, the
application 41 may directly instruct the rendering device 42 to
initiate rendering of media content and/or may directly communicate
with the rendering device 42 to control the rendering of media
content.
[0067] FIG. 3 generally illustrates a system 60 for using the
application 41 to retrieve, analyze and/or modify web content for
the purpose of transferring internet media content to a rendering
device in an embodiment of the present invention. The system 60 may
use the structure and connections previously described for FIG.
2.
[0068] Referring again to FIG. 3, the application 41 may use a
content request transmission 61 to send a content request to a
content source 55. The content source 55 may be, for example, one
of the content sources 31, 32, 33 and the content source 44. In
response, the application 41 may receive a web content transmission
62 from the content source 55. The web content transmission 62 may
provide the web content requested by the application 41. In this
way, the application 41 may send one or more content requests to
one or more content sources to obtain the web content corresponding
to a web page. Each content request may be an HTTP GET request or a
similar request as known to one skilled in the art.
[0069] Each content request may have a requester identification
field which may identify the mobile device 11, the web browser, the
software client, and/or the application sending the content
request. For example, the content request may identify the mobile
device 11 and/or the application 41. In an embodiment, the
requester identification field may be a "user-agent" field. The
content source 55 may adapt the web content based on the requester
identification field. For example, the content source 55 may format
a web page differently depending on whether the requester
identification field indicates a mobile device web browser
targeting a small screen on a mobile device, or a PC web browser
targeting a high resolution computer monitor. Therefore, the
application 11 may use a requester identification field associated
with the mobile device 11 and/or a mobile device web browser to
obtain a version of the web content suitable for display on the
mobile device 11.
[0070] The application 41 may analyze the web content to identify
media controls for accessing internet media content. The media
controls may enable the user 15 to select, access, retrieve and/or
play back the internet media content using a standard web browser.
For example, the application 41 may search the web content for HTML
"<a>" tags which link to media content files available from
an internet content source. As another example, the application 41
may search the web content for scripting code which is capable of
accessing media content from an internet content source. The
application 41 may identify the media controls which may be links,
active thumbnail images, icons, buttons, regions of the displayed
web page, scripting code segments, and/or the like.
[0071] The application 41 may modify the web content to insert
additional media controls. The additional media controls may be
provided using links, graphic images, icons, buttons, scripting
code, and/or the like. The application 41 may insert the additional
media controls in proximity to corresponding media controls
identified during the web content analysis described above.
Moreover, the application 41 may create and/or may insert the
additional media controls so that the additional media controls are
displayed in proximity to the corresponding media controls when the
web page is displayed by the HTML rendering engine 48.
[0072] For example, the application 41 may analyze the web content
to detect a first media control for accessing first internet media
content. The first media control may enable the user 15 to play
back the first internet media content in the web browser and/or
using a media player helper application selected by the web
browser. After detecting the first media control, the application
41 may modify the web content to insert a first additional media
control and/or a second additional media control for display in
proximity to the first media control. For example, the first
additional media control may correspond to transferring the
internet media content to an external rendering device, and/or the
second external media control may correspond to adding the internet
media content to a playback queue. The first additional media
control and/or the second additional media control may have, may
include and/or may correspond to a link which the user 15 may
invoke in the web page rendered from the web content, and the link
may reference a URL created by and/or known to the application 41.
Alternatively, the first additional media control and/or the second
additional media control may correspond to scripting code which may
respond to user input in the web page rendered from the web
content. For example, the scripting code may interact with the
application using a function call, a class instance, an API, and/or
a similar mechanism in response to user input in the web page
rendered from the web content.
[0073] These steps for analyzing and modifying the web content may
utilize information about organizational and/or formatting
properties of a content site and/or a search engine. For example, a
content site may provide access to a library of video content and
may have a particular way of organizing, formatting and/or
presenting search results in order to present active links to the
video content relevant to the search. For example, a specific
content site may provide web pages with twenty video results per
page, and the controls for accessing the individual video contents
may be JPEG thumbnail images which are active links pointing to
HTTP URLs with a .flv (Flash Video File) extension. The application
41 may use this information when analyzing web content retrieved
from the specific content site. As a result, the application 41 may
identify the various JPEG thumbnail images which form the media
controls for accessing internet video content from the specific
content site.
[0074] Moreover, the application 41 may have information regarding
how to optimally insert additional media controls into the web
content provided by a specific content site. The information may
be, for example, a graphical style for the additional media
controls, an absolute or relative location for placement of the
additional media controls, a parameter for sizing the additional
media controls, a list of the additional media controls relevant to
the specific content site, and/or a rule for determining the
location to place the additional media controls within web content,
such as HTML code and/or scripting code. The information may enable
the application 41 to insert the additional media controls with
minimal impact to the graphical layout and appearance of the
resulting web page. The information may be programmed into the
application 41 and/or may be retrieved by the application 41 from a
database of information corresponding to specific content sites.
Thus, the information corresponding to popular internet content
sites may be maintained in the database and/or may be updated based
on changes to the organizational and/or formatting properties of
the specific content sites. The database may be accessible to the
application 41 through the local network 12 and/or the internet
13.
[0075] For the specific content site of the preceding example, the
application 41 may identify the HTML <a> tag which contains
the JPEG thumbnail image for accessing a particular internet video
content stream. The application 41 may have information for the
particular content site, and the information may have a
predetermined rule for inserting two additional HTML <a> tags
which reference and display graphic button images corresponding to
the first additional media control and/or the second additional
media control. The application 41 may process the web content
corresponding to the complete search result page in a similar
manner. As a result, the application 41 may identify each of the
twenty JPEG thumbnail images present in the web content of the
search result page from the particular content site. Then, the
application 41 may modify the web content by inserting forty
additional HTML <a> tags representing the additional media
controls, namely the graphic button images which expose enhanced
media functionality provided by the application 41.
[0076] The application 41 may access a database which may have
scripting code fragments. Each of the scripting code fragments may
correspond to a content source. In an embodiment, each of the
scripting code fragments may analyze web content provided by the
corresponding content source to identify media controls for
accessing internet media content available from the content source.
The application 41 may query the database for scripting code
fragments corresponding to a particular content source and may
retrieve one or more scripting code fragments from the database to
analyze web content from the particular content source. In an
embodiment, the database may have scripting code fragments which
modify web content provided by the content source to insert
additional media controls. The application 41 may retrieve one or
more scripting code fragments from the database to insert media
controls into the web content from a particular content source. In
an embodiment, the database may be accessible to the application
using the internet 13.
[0077] The application 41 may not have information regarding the
organizational properties and/or the formatting properties of a
particular content site. For example, the information may be
missing from a database built into the application 41 and/or a
remote information database accessible to the application 41. In
this case, the application 41 may have default logic for analyzing
the web content to identify the media controls for accessing
internet media content and/or for modifying the web content to
insert the additional media controls. For example, the application
41 may search the web content for structures commonly used to
access internet media content. Such structures may be HTML
<a> tags which link to objects which have a MIME type or a
file extension associated with internet media content. Further,
such structures may be embedded scripting code which matches code
known to access internet media content. The application 41 may have
a default approach to inserting the additional media controls in
web content from content sites for which the application has no
information. For example, the application 41 may have default
button images which correspond to the additional media controls
and/or which may be inserted into the web content in proximity to
the identified media controls.
[0078] In an embodiment, the application 41 may access, may examine
and/or may analyze a description of the web page to identify the
media controls for accessing internet media content. The
description of the web page may have a page source which may
include a markup source, links, scripts and/or active objects. The
markup source may include, for example, HTML, xHTML, XML and/or the
like. The links may be, for example, URLs which may reference
additional markup source, scripts, active objects and/or media
content. The scripts and/or the active objects may include, for
example, JavaScript, ECMAScript, VBScript, Flash ActionScript,
and/or code written in other scripting languages which may be
executed during interaction with and/or rendering of the web page.
Alternatively, the description of the web page may be an internal
representation of a previously retrieved and/or parsed web page.
For example, the description of the web page may be a Document
Object Model ("DOM") representation of a webpage accessed using a
standard API provided by a web browser as known to one having
ordinary skill in the art. The DOM representation may enable the
application 41 to access the structure, the content, the links, the
scripts and/or the active objects of the web page. The present
invention is not limited to a specific embodiment of the
description of the web page, and the present invention may utilize
any description of the web page known to one having ordinary skill
in the art.
[0079] The identification of the media controls for accessing
internet media content may utilize a set of known media types, file
types, file extensions and/or MIME types relevant to media content
to identify the internet media content. Relevant image file types
may be, for example, bitmap files, JPEG files, TIFF files, PNG
files, SVG files and/or the like. Relevant audio file types may be,
for example, MP3 files, AAC audio files, Windows Media Audio files,
FLAC files, Ogg audio files and/or the like. Relevant video types
may be, for example, Flash Video files, MP4 files, 3GPP media
files, 3GPP2 media files, Windows Media Video files, AVI files, ASF
files, QuickTime files, Ogg video files and/or the like. The
identification of the web content is not limited to file detection,
and streaming representations of the various media types may be
detected. For example, "rtsp" links that direct to streams
representing audio content and/or video content may be
identified.
[0080] The relevant media types may be detected using known file
extensions. For example, JPEG image files typically have a ".jpg"
extension, MP3 audio files typically have a ".mp3" extension, and
QuickTime files typically have a ".mov" extension. Alternatively,
the relevant media types may be detected using known MIME type
associations as defined by the Internet Assigned Numbers Authority
(IRNA). For example, JPEG image files may be associated with a
"image/jpeg" description, MP3 audio files may be associated with an
"audio/mpeg" description, and MP4 video files may be associated
with a "video/mp4" description. Therefore, the application 41 may
analyze the description of the web page for web content, links
and/or references which have the known media types, file types,
file extensions and/or MIME types associated with the web
content.
[0081] In an embodiment, protocol exchanges with a remote web
server and/or media server may be observed, may be initiated and/or
may be analyzed. The protocol exchanges may be observed, may be
initiated and/or may be analyzed to recognize the media types, the
file types, the file extensions and/or the MIME types. For example,
the MIME type associated with media content may be returned in
response to a HTTP GET message requesting the media content. Thus,
header information in an HTTP GET protocol exchange may be analyzed
to determine whether the MIME type of the media content sent in
response corresponds to a known media type.
[0082] In an embodiment, a portion of a media content object of the
web page may be requested using a link and/or a reference to the
media content object identified using the description of the web
page. Analysis of the portion of the object may be used to
determine whether to identify the media content object as a whole
as internet media content. For example, most media content types
have up-front identifiers, known to one having ordinary skill in
the art as "Magic Numbers," placed at and/or near the front of the
media content file. The up-front identifiers may be sufficient to
identify the object as a media content file. For example, a Flash
video file may begin with an up-front identifier of an ASCII
representation of "FLV." As a further example, leading portions of
an MP4 or 3GPP file may have an up-front identifier of an "ftyp"
atom having recognizable brands represented in ASCII form as
"3gp4," "3gp5," "isom," "mp41" and/or other brands. The definition
of the recognizable brands may be found in standard specifications
from ISO/IEC, 3GPP and/or other standards organizations, and such
brands are known to one having ordinary skill in the art. Thus, the
identification of the media controls for accessing internet media
content may involve requesting a portion of a media content object
to enable the portion of the media content object to be parsed
and/or analyzed to determine whether up-front identifiers and/or
other identifying information are present.
[0083] The identification of the media controls for accessing
internet media content may use media publication and/or syndication
standards, such as, for example, RSS, to detect the media controls.
For example, if the web page has and/or references an RSS feed, the
identification of the media controls for accessing internet media
content may involve analysis of the RSS feed to detect the internet
media content in the RSS feed. The present invention may make use
of one or more of the methods disclosed herein for identifying the
media controls for accessing internet media content; however, the
present invention is not limited to these methods and may employ
other methods for identifying the media controls for accessing
internet media content known to one having ordinary skill in the
art.
[0084] The application 41 may provide the web content and/or the
modified web content to the HTML rendering engine 48 in a web
content and/or modified web content transmission 63. In an
embodiment, the application 41 modifies the web content to insert
the additional media controls; in another embodiment, the
application 41 does not modify the web content to insert the
additional media controls. The HTML rendering engine 48 may use the
web content and/or the modified web content received in the web
content and/or modified web content transmission 63 to create a
rendered web page which may be displayed to the user 15 of the
mobile device 11. If the application 41 modified the web content,
the rendered web page may have the additional media controls.
[0085] The user 15 may interact with the rendered web page. For
example, the user 15 may select, may point at, may touch, may
invoke, and/or may click on one of the media controls or the
additional media controls. In response, the HTML Rendering Engine
48 may generate a user interaction signal 64 and/or may communicate
the user interaction signal 64 to the application 41. The user
interaction signal 64 may indicate that the user 15 selected,
pointed at, touched, invoked, and/or clicked on an object, image,
button and/or link in the rendered web page. The user interaction
signal 64 may identify the object, the image, the button and/or the
link. The user interaction signal 64 may identify and/or may
provide a URL corresponding to the object, the image, the button
and/or the link. The application 41 may use the user interaction
signal 64 and/or the URL to determine that the user 15 invoked one
of the media controls previously identified by the application 41
and/or that the user 15 invoked one of the additional media
controls inserted by the application 41.
[0086] Alternatively, the user interaction signal 64 may convey a
lower level user interaction event. For example, the user
interaction signal 64 may indicate that the user 15 selected,
pointed at, touched and/or clicked on a particular location within
the rendered web page. In this case, the application 41 may compare
the particular location to the known locations of the media
controls previously identified by the application 41 and/or the
additional media controls inserted by the application 41. As a
result, the application 41 may use the user interaction signal 64
to determine the particular control invoked by the user 15.
[0087] Still further, the user interaction signal 64 may cause a
portion of the application 41 to execute. For example, one of the
additional media controls may be scripting code capable of
interacting with the application 41 in response to user input in
the rendered web page. In this case, the scripting code may invoke
the application 41 using a particular function, class, API and/or
library associated with the application. Therefore, the user
interaction signal 64 may be a direct invocation of the application
41 or part of the application 41 by the additional media controls,
and/or the application 41 or the part of the application 41 may be
in the form of scripting code executed by the HTML rendering engine
48.
[0088] As an example, the following JavaScript code fragment is
suitable for addition to mobile device web pages provided by the
YouTube video sharing service (domain at www.youtube.com). The
application 41 may insert the code fragment into web content
retrieved from the YouTube video sharing service and/or may provide
the code fragment to the HTML rendering engine 48. The HTML
rendering engine 48 may execute the code fragment in a scripting
engine of the HTML rendering engine 48. The code fragment may
process a touch event invoked by the user 15 touching a location
(x,y) on the touchscreen of the mobile device 11. The code fragment
may examine the web content to determine whether the touched
location corresponds to a media control for playing YouTube video
content accessible from the corresponding web page. If the touched
location corresponds to a media control, the code fragment may
invoke the application 41 using a function provided by the
application 41, namely mediaControlClicked( ). As a result, the
mediaControlClicked( ) function and/or the application 41 may
initiate an appropriate media action.
TABLE-US-00001 function processTouchEvent_YouTube(x, y) { var
touchedElement = document.elementFromPoint(x,y); if
(touchedElement) { var WATCH_THUMB = "watch_thumb"; var
PAGE_ELEMENT_ID = "page_element_id" var elem = touchedElement; var
mediaControlFound = false; while (elem != null &&
!mediaControlFound) { if (elem.nodeName == "DIV") { var node =
elem. getAttributeNode(PAGE_ELEMENT_ID); if (node &&
(node.value == WATCH_THUMB)) mediaControlFound = true; } elem =
elem.offsetParent; } if (mediaControlFound) {
window.HTMLOUT.mediaControlClicked( ); } else {
window.HTMLOUT.mediaControlNotClicked( ); } } else {
window.HTMLOUT.mediaControlNotClicked( ); } }
[0089] The application 41 may initiate a media action in response
to receipt of the user interaction signal 64. For example, the
application 41 may play the internet media content corresponding to
the control invoked by the user 15 on the mobile device 11.
Further, the application 41 may transfer the internet media content
corresponding to the control invoked by the user 15 to a rendering
device in the local network 12, such as one of the rendering
devices 21, 22, 23. Still further, the application 41 may add the
internet media content corresponding to the control invoked by the
user 15 to a playback queue. The media action may depend on the
specific control invoked by the user 15 as determined by the
application 41 based on the user interaction signal 64.
[0090] FIG. 4 generally illustrates an embodiment of a system 70
for using the application 41 to retrieve, analyze and/or modify web
content for the purpose of transferring internet media content to a
rendering device in an embodiment of the present invention. The
system 70 may use the structure and connections previously
described for FIG. 2.
[0091] Referring again to FIG. 4, the HTML rendering engine 48 may
request and/or retrieve web content corresponding to a web page.
The request and/or the retrieval of the web content may be in
response to instructions from the application 41 and/or may be
based on user interaction with a previously rendered web page. For
example, the user 15 may have selected a link for a new web page,
and the HTML rendering engine 48 may attempt to load the new web
page in response to the selection of the link by the user 15.
[0092] The HTML rendering engine 48 may use a content request
transmission 71 to send a content request to a content source 75.
The content source 75 may be, for example, one of the content
sources 31, 32, 33 and the content source 44. In response, the HTML
rendering engine 48 may receive a web content transmission 72 from
the content source 75. The web content transmission 72 may provide
the web content requested by the HTML rendering engine 48. In this
way, the HTML rendering engine 48 may send one or more content
requests to one or more content sources to obtain the web content
corresponding to a web page. The HTML rendering engine 48 may
utilize any of the various techniques for retrieving web content
previously described herein.
[0093] The HTML rendering engine 48 may construct a structured
representation of the web content corresponding to the web page.
For example, the HTML rendering engine 48 may construct a DOM model
of the web page. The HTML rendering engine 48 may enable the
application 41 to access the structured representation of the web
page. Such access may be exposed to the application 41 using an
API, a class, a function call, and/or another suitable
mechanism.
[0094] The application 41 may perform an analysis and/or a
modification 73 of the web content. For example, the application 41
may access the structured representation of the web page to analyze
the web content, to identify the media controls for accessing the
internet media content, and/or to modify the web content by
inserting additional media controls. The application 41 may access
the structured representation of the web page through the HTML
rendering engine 48 and may utilize any of the techniques for
analyzing and/or modifying the web content previously described for
FIG. 3.
[0095] Alternatively, the application 41 may provide scripting code
to the HTML rendering engine 48 so that the scripting code may use
the structured representation to perform the analysis and/or the
modification 73 of the web content. For example, the application 41
may provide a JavaScript code fragment to the HTML rendering engine
48. The HTML rendering engine 48 may have a scripting engine to
execute the JavaScript code fragment. The Javascript code fragment
may access the structured representation of the web page to
identify the media controls for accessing the internet media
content. The Javascript code fragment may generate a result which
identifies the media controls, and/or the HTML rendering engine 48
may forward the result to the application 41.
[0096] The HTML rendering engine 48 may use the web content and/or
the modified web content to create a rendered web page displayed to
the user 15 of the mobile device 11. If the application 41 modified
the web content, the rendered web page may have the additional
media controls. The user 15 may interact with the rendered web
page. For example, the user 15 may select, may point at, may touch,
may invoke and/or may click on one of the media controls and/or the
additional media controls. In response, the HTML rendering engine
48 may generate a user interaction signal 74 and/or may communicate
the user interaction signal 74 to the application 41. The user
interaction signal 74 may indicate that the user selected, pointed
at, touched, invoked, and/or clicked on an object, an image, a
button and/or a link in the rendered web page. The user interaction
signal 74 may identify the object, the image, the button and/or the
link. The user interaction signal 74 may identify and/or may
provide a URL corresponding to the object, the image, the button
and/or the link. The application 41 may use the user interaction
signal 74 and/or the URL to determine that the user 15 invoked one
of the media controls previously identified by the application 41
and/or one of the additional media controls inserted by the
application 41.
[0097] Alternatively, the user interaction signal 74 may convey a
lower level user interaction event. For example, the user
interaction signal 74 may indicate that the user 15 selected,
pointed at, touched and/or clicked on a particular location within
the rendered web page. In this case, the application 41 may compare
the particular location to the known locations of the media
controls previously identified by the application 41 and/or the
additional media controls inserted by the application 41. As a
result, the application 41 may use the user interaction signal 74
to determine the particular control invoked by the user 15.
[0098] Still further, the user interaction signal 74 may cause a
portion of the application 41 to execute. For example, one of the
additional media controls may be scripting code capable of
interacting with the application 41 in response to user input in
the rendered web page. In this case, the scripting code may invoke
the application 41 using a particular function, class, API and/or
library associated with the application. Therefore, the user
interaction signal 74 may be a direct invocation of the application
41 or part of the application 41 by the additional media controls,
and/or the application 41 or the part of the application 41 may be
in the form of scripting code executed by the HTML rendering engine
48.
[0099] The application 41 may initiate a media action in response
to receipt of the user interaction signal 74. For example, the
application 41 may play the internet media content corresponding to
the control invoked by the user 15 on the mobile device 11.
Further, the application 41 may transfer the internet media content
corresponding to the control invoked by the user 15 to a rendering
device in the local network 12, such as one of the rendering
devices 21, 22, 23 and/or the rendering device 42. Still further,
the application 41 may add the internet media content corresponding
to the control invoked by the user 15 to a playback queue. The
media action may depend on the specific control invoked by the user
as determined by the application 41 based on the user interaction
signal 74.
[0100] Referring again to FIGS. 3 and 4, the systems 60, 70 may
enable the mobile device 11 to receive web content for a web page
having original media controls for accessing internet media
content. Each original media control may have a corresponding
internet media content object. In an embodiment, the application 41
may receive the web content in response to a content request
message sent by the application 41. In another embodiment, the HTML
rendering engine 48 may receive the web content in response to a
content request message sent by the HTML rendering engine 48.
[0101] Then, the application 41 on the mobile device 11 may process
the web content to identify the original media controls. Then, the
application 41 may modify the web content to form modified web
content having one or more additional media controls. In an
embodiment, the application 41 may modify the web content using a
structured representation of the web page created by the HTML
rendering engine 48. Each of the additional media controls may
correspond to one of the original media controls. One or more of
the additional media controls may be an HTML <a> tag which
links to a first URL conveyed by the user interaction signal 64, 74
to the application 41. One or more of the additional media controls
may be created by a scripting code fragment provided by the
application 41 to the HTML rendering engine 48.
[0102] One or more of the additional media controls may be created
by a scripting code fragment retrieved by the application 41 from a
database of scripting code fragments. The database may be remote
from the mobile device 11 and/or may be accessible to the mobile
device 11 through the internet 13. Each of the scripting code
fragments in the database may correspond to a content source. The
application 41 may retrieve the scripting code fragment by querying
the database using a content source identifier.
[0103] Then, the modified web content may be displayed as a
rendered web page using the HTML rendering engine 48. The
application 41 may receive the user interaction signal 64, 74 which
indicates user interaction with the rendered web page. In an
embodiment, the HTML rendering engine 48 may generate the user
interaction signal 64, 74 in response to user interaction with the
rendered web page. The user interaction signal 64, 74 may be
generated by a scripting code fragment inserted into the web
content by the application 41.
[0104] The application 41 may process the user interaction signal
41 to identify one of the additional media controls invoked by the
user 15. Then, the application 41 may initiate a media action
corresponding to the identified additional media control, and the
media action may involve the internet media content object
corresponding to the original media control to which the identified
additional media control corresponds. The media action may instruct
an external rendering device to play back the internet media
content object; alternatively, the media action may add the
internet media content object to a playback queue.
[0105] FIG. 5 generally illustrates web content 80 and modified web
content 81 used in an embodiment of the present invention. FIG. 5
depicts a conceptual illustration of the web content 80
corresponding to a web page, and FIG. 5 is not intended to
represent a web page in rendered form.
[0106] The web content 80 may be retrieved by the application 41
and/or the HTML rendering engine 48. The web content 80 may be
and/or may have a single element, such as an HTML file, or may be
and/or may have multiple files that reference multiple elements,
such as graphic images, style sheets, borders, scripting code,
media objects, and/or the like. The web content 80 may be stored in
a structured representation by the application 41 and/or the HTML
rendering engine 48. For example, the web content 80 may be stored
in a DOM format.
[0107] The application 41 may identify media controls 88. In the
example illustrated in FIG. 5, the application 41 may identify a
first media control 91, entitled "C1"; a second media control 92,
entitled "C2"; and/or a third media control 93, entitled "C3." The
media controls 88 may enable the user 15 to access internet media
content present in the original web content retrieved from a
content source.
[0108] The application 41 may insert additional media controls 89
in the web content 80 to form the modified web content 81. For
example, in the example illustrated in FIG. 5, the application 41
may insert a first additional media control 101, entitled "C1a"; a
second additional media control 102, entitled "C1b"; a third
additional media control 103, entitled "C2a"; a fourth additional
media control 104, entitled "C2b"; a fifth additional media control
105, entitled "C3a"; and/or a sixth additional media control 106,
entitled "C3b." The present invention is not limited to a specific
number of media controls or additional media controls, and any
number of media controls and additional media controls may be
used.
[0109] The additional media controls 89 inserted by the application
41 may correspond to the media controls 88 provided by the rendered
web page 105. For example, the first additional media control 101
and/or the second additional media control 102 of the modified web
content 81 may correspond to the first media control 91 of the web
content 80. The third additional media control 103 and/or the
fourth additional media control 104 of the modified web content 81
may correspond to the second media control 92 of the web content
80. The fifth additional media control 105 and/or the sixth
additional media control 106 of the modified web content 81 may
correspond to the third media control 93 of the web content 80.
[0110] Therefore, the first additional media control 101 and/or the
second additional media control 102 may correspond to enhanced
media functions which operate on the internet media content
accessible using the first media control 91. In a similar fashion,
the third additional media control 103 and/or the fourth additional
media control 104 may correspond to enhanced media functions which
operate on the internet media content accessible using the second
media control 92. The fifth additional media control 105 and/or the
sixth additional media control 106 may correspond to enhanced media
functions which operate on the internet media content accessible
using the third media control 93.
[0111] The additional media controls 89 inserted by the application
41 may depend on properties of the internet media content. For
example, the application 41 may determine that an additional media
control for transferring media content for playback on a
DLNA-compatible stereo device may be relevant to a digital music
track found in the web content for a web page. However, the
additional media control may not be relevant to a digital video
clip identified in the web content for the same web page.
Therefore, the application 41 may insert a different set of the
additional media controls 89 for each of the media controls 88
identified by the application 41, and each set of the additional
media controls 89 may be appropriate for the internet media content
accessible by the corresponding one of the media controls 88.
[0112] FIG. 6 generally illustrates a system 200 for using the
application 41 on the mobile device 11 to transfer internet media
content to a rendering device in a home network in an embodiment of
the present invention. As previously set forth, the application 41
may communicate with one or more user interface components provided
by the mobile device 11 and/or the operating system of the mobile
device 11 to display an user interface 49 and/or receive user
input. The application 41 may communicate with the network
interface 52 provided by the mobile device 11 and/or the operating
system of the mobile device 11 to access the local network 12
and/or a wide area network, such as the internet 13. In this way,
the application may communicate with other devices, such as
rendering devices, rendering control components, content sources,
and/or the like. The application 41 may access a remote database
through the local network 12 and/or the internet 13 to retrieve
content-site specific information for analyzing and/or modifying
web content from a content site.
[0113] The application 41 may communicate with the HTML rendering
engine 48 using one or more classes, functions, API's, and/or the
like. The HTML rendering engine 48 may be provided by the operating
system of the mobile device 11 and/or may be present on the mobile
device 11 for access and use by the application 41. The application
41 may provide the web content 80 and/or the modified web content
81 to the HTML rendering engine 48. The application 41 may
communicate with the HTML rendering engine 48 to request the HTML
rendering engine 48 to retrieve the web content 80 for a web page,
to render the web page, and/or to display the web page. The
application 41 may communicate with the HTML rendering engine 48 to
analyze and/or modify the web content 80 stored and/or maintained
in a structured representation by the HTML rendering engine 48. The
application 41 may provide scripting code fragments to the HTML
rendering engine 48 for insertion into the web content 80 of a web
page and/or for execution in a scripting engine of the HTML
rendering engine 48. The application 41 may receive the user
interaction signal 64, 74 from the HTML rendering engine 48 and may
execute media actions in response to receipt of the user
interaction signal 64, 74.
[0114] The application 41 may have application logic elements 201
which may perform the various logical functions described herein.
The application 41 may have a retrieval element 202 which may
retrieve the web content 80, an analysis element 203 which may
analyze the web content 80, a modification element 204 which may
modify the web content 80 to form the modified web content 81, a UI
control element 205 which may control the application user
interface, an interaction processing element 206 which may process
the user interaction signal 64, 74, and/or a queue control element
207 which may control queued playback. An embodiment of the
application 41 may not have one or more of the application logic
elements 201. For example, an embodiment of the application 41 may
rely on the HTML rendering engine 48 to retrieve the web content;
therefore, the application 41 may not have the retrieval element
202. As another example, an embodiment of the application 41 may
not modify the web content 80 to insert the additional media
controls 89; therefore, the application 41 may not have the
modification element 204. As yet another example, an embodiment of
the application 41 may not support queued playback; therefore, the
application 41 may not have the queue control element 207.
[0115] The retrieval element 202 may send one or more content
requests to one or more content sources to obtain the web content
80 corresponding to a web page. Each of the content requests may be
an HTTP GET request or a similar request as known to one skilled in
the art. The retrieval element 202 may generate the content
requests to have a requester identification field associated with
the mobile device 11 and/or a web browser of the mobile device 11
to obtain the web content 80 in a form suitable for display on the
mobile device 11. The content requests may be sent and/or the
corresponding responses may be received through the network
interface 52.
[0116] The analysis element 203 may examine the web content 80 for
a web page to identify the media controls 88 for accessing internet
media content. The analysis element 203 may examine a
representation of the web page created, stored and/or maintained by
the application 41 as previously set forth in the description of
the embodiment depicted in FIG. 3. Alternatively, the analysis
element 203 may examine a representation of the web page created,
stored and/or maintained by the HTML rendering engine 48 as
previously set forth in the description of the embodiment depicted
in FIG. 4. If the analysis element 203 examines a representation of
the web page created, stored and/or maintained by the HTML
rendering engine 48, the analysis element 203 may communicate with
and/or may interact with the HTML rendering engine 48 to perform
the analysis of the web content 80.
[0117] Analysis of the web content 80 may be performed directly by
the analysis element 203 to analyze the web content 80. For
example, the application 41 may have executable classes, functions
and/or code which may directly examine the web content 80 and/or a
structured representation of the web content 80. The executable
classes, functions and/or code may identify the media controls 88
for accessing the internet media content. The executable classes,
functions and/or code may identify HTML <a> tags which may
link to media content objects, scripting code present in the web
content 80 for accessing media content, and/or the like.
[0118] Alternatively, analysis of the web content 80 may be
performed by scripting code provided by and/or generated by the
analysis element 203 to analyze the web content 80. The scripting
code may be provided to the HTML rendering engine 48 and/or may be
embedded in the web content 80 for the web page. The scripting code
may be executed by a scripting engine of the HTML rendering engine
48. The scripting code may identify the media controls 88 and/or
may communicate information about the media controls 88 to the
application 41. The communication may indicate the number of the
media controls 88, the type of the media controls 88, the location
of the media controls 88 in the web content 80 and/or the rendered
web page, information about the internet media content retrievable
using the media controls 88, and/or the like. For example, the
information may have and/or may be a URL for accessing the media
content, a MIME type of the media content, metadata describing the
media content, and/or the like.
[0119] Analysis of the web content 80 may rely on information
retrieved from a database of content-source specific information.
The information may specify how a particular content source
provides media controls 88 in web pages. The information may
specify rules and/or instructions for analyzing the web content 80
from a particular content source to identify the media controls 88.
The information may have and/or may be executable code and/or
scripting code capable of analyzing the web content 80 from a
particular content source to identify the media controls 88. The
application 41 and/or the analysis element 203 may query the
database using a content source identifier, such as the domain name
of the content source. As a result, the application 41 may obtain
the information relevant to the content source and/or may use the
information to analyze the web content 80 from the content
source.
[0120] The modification element 204 may modify the web content 80
of a web page to insert the additional media controls 89. The
modification element 204 may operate on a representation of the web
page created, stored and/or maintained by the application 41 as
previously set forth in the description of the embodiment depicted
in FIG. 3. Alternatively, the modification element 204 may examine
a representation of the web page created, stored and/or maintained
by the HTML rendering engine 48 as previously set forth in the
description of the embodiment depicted in FIG. 4. If the
modification element 204 examines a representation of the web page
created, stored and/or maintained by the HTML rendering engine 48,
the modification element 204 may communicate with and/or may
interact with the HTML rendering engine 48 to modify the web
content 80 to generate the modified web content 81.
[0121] Modification of the web content 80 may insert HTML code into
the web content 80 of the web page. The inserted HTML code may
display one or more of the additional media controls 89, such as a
text link, an icon, a button, a thumbnail image, and/or the like.
The inserted HTML code may provide a link to a URL created by
and/or known to the application 41. The application 41 may
determine that the user 15 invoked one of the additional media
controls 89 based on receipt of a user interaction signal 64, 74
which contains and/or references the URL.
[0122] Alternatively, modification of the web content 80 may
utilize scripting code. The modification element 204 may embed the
scripting code into the web content 80 and/or may provide the
scripting code to the HTML rendering engine 48. The scripting code
may display the additional media controls 89 in the rendered web
page, may interact with the user 15 through the rendered web page,
and/or may communicate user interaction signals to the application
41.
[0123] The inserted HTML code, graphic images representing the
additional media controls 89, information on how to insert the HTML
code in the web content 80, and/or the like may be content
source-specific and/or may be retrieved by the application 41 from
a database of content-source specific information. In a similar
fashion, the scripting code, the graphic images referenced by the
scripting code, the information on how to insert the scripting code
in the web content 80, and/or the like may be content-source
specific, and may be retrieved by the application 41 from a
database of content-source specific information.
[0124] The UI control element 205 may communicate with one or more
user interface elements of the mobile device 11 and/or the user
interface 49 of the mobile device 11 to display the application
user interface and/or enable the user 15 to interact with the
application user interface. The application user interface which
may be presented by the user interface of the mobile device 49 may
have application controls, such as buttons, menus, dialog boxes,
text entry boxes, and/or other well-known user interface elements,
to enable the user 15 to control and/or to interact with the
application 41. Such application controls may be separate from
and/or in addition to the rendered web page which may have
controls, buttons, links, text entry boxes, and/or the like. In
FIGS. 7 and 8, application controls presented by the application 41
are distinguished from user interface elements which are part of
the rendered web page.
[0125] Referring again to FIG. 6, the UI control element 205 may
control display of the application controls and/or may accept user
input events relevant to the application controls. For example,
application controls may have and/or may be a "Back" button and a
"Forward" button for web browsing. The UI control element 205 may
communicate with one or more user interface components of the
operating system of the mobile device 11 to cause the "Back" button
and the "Forward" button to be displayed in the user interface 49
on the mobile device 11 and/or to register to receive user input
events relevant to these buttons. In a similar fashion, the UI
control element 205 may control the presentation of additional
application controls, such as a control for managing the visual
layout of the screen of the mobile device 11. The UI control
element 205 may manage user input events related to the various
application controls described herein for the various
embodiments.
[0126] The application may have a discover and control renderers
component 208, a renderer control component interface 209
(hereafter "the RCC interface 209"), a media transcoder component
210, and/or a media server component 211. The discover and control
renderers component 208 may discover rendering devices available in
the local network 12. Further, the discover and control renderers
component 208 may determine rendering capabilities of the rendering
devices to determine whether media content may be compatible with
the rendering devices. Still further, the discover and control
renderers component 208 may track the presence and/or the absence
of specific rendering devices available in the network and/or may
maintain records tracking the rendering capabilities of the
available renderers. Moreover, the discover and control renderers
component 208 may communicate with the rendering devices to
initiate, maintain and/or control the rendering of media content on
the rendering devices. The discover and control renderers component
208 may have any of the functions and/or capabilities described for
the "renderer discovery and control component 110" of U.S. Patent
App. Pub. No. 2010/0332565, herein incorporated by reference in its
entirety. In an embodiment, the discover and control renderers
component 208 may be and/or may function as a UPnP AV control
point.
[0127] The RCC interface 209 may communicate with the rendering
control component 25 which may be external to the mobile device 11
and/or may provide renderer control functions to other devices. The
application 41 may communicate with the rendering control component
25 to control rendering devices and/or to access queued playback
functionality provided by the rendering control component 25. The
various rendering control functions and interfaces for accessing
such functions over a network are disclosed in U.S. Patent App.
Pub. No. 2010/0095332, herein incorporated by reference in its
entirety.
[0128] The media transcoder component 210, if present, may provide
transcoding functionality by adapting the internet media content
for compatibility with the rendering capabilities of a rendering
device. The media transcoder component 210 may perform audio codec
transcoding, video codec transcoding, format transcoding, and/or
the like. Internet media content selected by the user 15 for
playback on an external rendering device may be received through
the network interface 52 and/or may be transcoded by the media
transcoder component 210. The resulting transcoded media content
may be made available to rendering devices in the local network 12
through the media server component 211 as described hereafter. The
media transcoder component 210 may have any of the functions and/or
behavior described for the "transcoding engine 90" of U.S. Patent
App. Pub. No. 2010/0332565, herein incorporated by reference in its
entirety.
[0129] The media server component 211, if present, may make the
internet media content available to rendering devices in the local
network 12. The media server component 211 may function as an HTTP
server, a UPnP AV media server, a DLNA compliant media server, a
proxy server, and/or the like. The media server component 211 may
have any of the functions and/or behavior described for the "media
server 100" disclosed in U.S. Patent App. Pub. No. 2010/0332565,
herein incorporated by reference in its entirety.
[0130] The media transcoder 210 and/or the media server 211 may be
provided in the application 41 as shown in FIG. 6. Alternatively,
one or both of the media transcoder 210 and/or the media server 211
may be provided by another component available in the network. For
example, the media transcoder 210 and/or the media server 211 may
be combined in a stand-alone proxy server and/or may be
incorporated into the rendering control component 25 which may be
external to the mobile device 11. The application 41 and/or the RCC
interface 209 may communicate with the separate component which
provides the media transcoder 210 and/or the media server 211. For
example, the application 41 and/or the RCC interface 209 may
instruct the separate component to request, retrieve, transcode
and/or make available a particular internet media content object
which must be transferred to a rendering device as the result of a
media action requested by the user 15 of the mobile device 11.
[0131] The interaction processing element 206 may receive user
interaction signals 64, 74 from the HTML rendering engine 48. The
interaction processing element 206 may process the user interaction
signals 64, 74 to determine and/or to initiate corresponding media
actions. As a first example, the HTML rendering engine 48 may
provide a user interaction signal 64, 74 indicating that the user
15 invoked a media control 88 corresponding to a particular URL in
the rendered web page. The interaction processing element 206 may
receive the user interaction signal 64, 74 and/or may resolve the
particular URL to determine the relevant media content object and
the associated media action. For example, the particular URL may
correspond to one of the additional media controls 89 previously
inserted into the web content 80 by the modification element 204.
The additional media control 89 may correspond to transfer of a
first internet media content object to the first rendering device
21 in the local network 12.
[0132] As a result, the interaction processing element 206 may
initiate the media action. For example, the interaction processing
element 206 may direct the discover and control renderers component
208 of the application 41 to instruct the first rendering device 21
to request, retrieve and/or initiate playback of the first internet
media content object. Alternatively, the interaction processing
element 206 may use the RCC interface 209 of the application 41 to
instruct the rendering control component 25 to communicate with the
first rendering device 21 to initiate transfer of the first
internet media content for playback on the first rendering device
21.
[0133] Initiation of a media action may involve one or more of the
discover and control renderers component 208, the RCC interface
209, the media transcoder component 210 and/or the media server
component 211 of the application 41. The role of each of these
components may vary depending on the embodiment and the media
action being initiated.
[0134] As a second example of the interaction processing element
206 processing the user interaction signals 64, 74, the HTML
rendering engine 48 may provide a user interaction signal 64, 74
which may indicate that the user 15 pointed at, selected, touched
and/or clicked on a particular location in the rendered web page.
The user interaction signal 64, 74 may indicate the location using
(x,y) coordinates into the rendered web page. The interaction
processing element 206 may determine whether the location matches
any of the media controls 88 and/or the additional media controls
89 in the rendered web page. If the location matches one of the
media controls 88 or one of the additional media controls 89, the
interaction processing element 206 may determine which of the media
controls 88 or additional media controls 89 matches the location.
Then, the interaction processing element 206 may initiate a
corresponding media action. For example, the (x,y) location
specified in the user interaction event may match an additional
media control 89 which corresponds to adding a second internet
media content object to a playback queue. Then, the interaction
processing element 206 may cause the second internet media content
object to be added to the playback queue.
[0135] The interaction processing element 206 may communicate with
the queue control element 207 to add the second internet media
content object to an internal playback queue. The interaction
processing element 206 may use the RCC interface 209 to communicate
with the rendering control component 25 to add the second internet
media content object to a playback queue created, controlled and/or
maintained by the rendering control component 25. The specific
steps used to initiate the media action may vary based on the
embodiment and/or based on the presence or absence of the rendering
control component 25.
[0136] As a third example of the interaction processing element 206
processing the user interaction signals 64, 74, the user
interaction signal 64, 74 may be a direct invocation of the
application 41 or of part of the application 41 by a scripting code
fragment. The scripting code fragment may have been inserted into
the web content 80 by the application 41 and/or previously provided
by the application 41 to the HTML rendering engine 48. The
scripting code fragment may have determined that the user 15
invoked an additional media control 89 associated with the
scripting code fragment. The scripting code fragment may have
determined that the additional media control 89 invoked by the user
15 corresponds to transfer of a third internet media content object
to the second rendering device 22 for playback on the second
rendering device 22. The scripting code fragment may directly call,
invoke and/or communicate with a function of the application 41
designed to respond to user interaction signals 64, 74 from such
scripting code fragments. When calling, invoking and/or
communicating with the function, the scripting code fragment may
provide information which may identify which of the additional
media controls 89 the user invoked and/or more specific information
which may specify the third internet media content object, the
media action, and/or the second rendering device 22.
[0137] As a result, the function and/or the application 41 may
initiate the media action. For example, the function and/or the
application 41 may cause the discover and control renderers
component 208 of the application 41 to instruct the second
rendering device to request, retrieve and/or initiate playback of
the third internet media content object. Alternatively, the
function and/or the application 41 may use the RCC interface 209 to
instruct the rendering control component 25 to communicate with the
second rendering device 22 to initiate transfer of the third
internet media content for playback on the second rendering
device.
[0138] If initiating transfer of internet media content to an
external rendering device, the application 41 may determine an
alternate version of the internet media content for display using
the external rendering device. Many content sources adapt their web
pages and media content based on the client device which receives
the web pages and the media content. For example, a content source
may have a first web page format optimized for use on mobile
devices, and a second web page format optimized for use within full
PC web browsers. The first web page format may, for example,
provide access to versions of the internet media content having a
low quality, bitrate and/or resolution suitable for display on a
small mobile device screen. In contrast, the second web page format
may provide access to versions of the internet media content which
have a higher quality, bitrate and/or resolution suitable for
display on a large computer monitor display. Further, the external
rendering device may have a high resolution visual display. For
example, the external rendering device may be a DLNA-compatible
high definition television. Therefore, the version of the internet
media content accessible through the second web page format may be
more suitable for display on the external rendering device relative
to the version of the internet media content accessible through the
first web page format.
[0139] The content source may provide the first web page format in
response to content requests which specify the mobile device 11
and/or a web browser of the mobile device 11 in a requester
identification field of the content requests. In a similar fashion,
the content source may provide the second web page format in
response to content requests which specify a PC and/or a PC web
browser in the requester identification field.
[0140] Therefore, the application 41 may determine a higher quality
version of the internet media content suitable for display using
the external rendering device. For example, the application 41 may
identify a higher quality version of the internet media content
using the method 300 generally illustrated in FIG. 7. The method
300 may be performed by the mobile device 11 executing program
instructions provided by a non-transitory computer-readable medium,
such as register memory, processor cache and Random Access Memory
(RAM).
[0141] At step 301, the first web content 80 for the web page may
be retrieved for display on the mobile device 11. For example,
retrieval may use the content requests specifying the mobile device
11 and/or a web browser of the mobile device 11 in a requester
identification field of the content requests. At step 303, the
first web content 80 may be analyzed to identify the media controls
88 in the web page as previously set forth. At step 305, the first
web content 80 may be modified to insert the additional media
controls 89 if such technique is used in the specific embodiment.
Step 305 is optional; in some embodiments, the first web content 80
is modified to insert the additional media controls 89, and in
other embodiments, the first web content 80 is not modified to
insert the additional media controls 89.
[0142] At step 307, a rendered web page may be created from the
first web content 80 and/or the modified first web content 81. The
HTML rendering engine 48 may create the rendered web page for
display to the user 15. The application user interface which may be
presented by the user interface of the mobile device 49 may display
the rendered web page to the user 15. At step 309, the user may
invoke one of the media controls 88 and/or one of the additional
media controls 89. The media control 88 and/or the additional media
control 89 invoked by the user 15 may be associated with internet
media content. As a result, the HTML rendering engine 48 may send
the user interaction signal 64, 74 to the application 41. At step
311, second web content 80 for the web page may be retrieved using
content requests which specify a full web browser in a requester
identification field of the content requests. At step 313, the
second web content 80 may be analyzed to determine a higher quality
version of the internet media content suitable for display on the
external rendering device. At step 315, the higher quality version
of the internet media content may be transferred to the external
rendering device.
[0143] For the method 300, retrieval of the second web content 80
at step 311 does not require retrieval of all web content elements
necessary for rendering of the web page. The second web content 80
is not used to render a web page on the mobile device 11 or on any
other device; the second web content 80 is only used to determine
the higher quality version of the internet media content suitable
for display on the external rendering device. Consequently, the
retrieval of the second web content 80 at step 311 may omit
elements of the web page, such as graphics, images, style sheets,
and/or other elements which are only used for visual rendering of
the web page.
[0144] The steps of the method 300 may be carried out in any order,
and the present invention is not limited to the order of the steps
presented in the preceding text and FIG. 7. For example, step 311
and/or step 313 may occur at any time earlier in the method 300. In
an embodiment, the first web content and/or the second web content
may be retrieved "up-front" to avoid delay and achieve faster
response time between the user input accepted in step 309 and the
transfer of the higher quality version of the internet media
content to the external rendering device in step 315.
[0145] The queue control element 207 may maintain one or more
playback queues for media playback. As known to one skilled in the
art, a playback queue is typically a first-in, first-out ("FIFO")
queue which may track multiple media objects and may enable
sequential playback of the multiple media objects. A playback queue
may play the multiple media objects using the mobile device 11
and/or an external rendering device.
[0146] For example, the user 15 of the mobile device 11 may
designate a playback queue for playback of digital music content to
an external rendering device which may be a DLNA-compatible
networked stereo device. Then, the user 15 may add a first digital
music track, a second digital music track, and/or a third digital
music track to the playback queue. As a result, the playback queue
may play the first digital music track on the DLNA-compatible
networked stereo device, followed by the second digital music
track, and then the third digital music track.
[0147] The application 41 may support creation, management and/or
use of internal playback queues. Consequently, the queue control
element 207 may create one or more playback queue structures to
provide playback queue functionality to the user 15 of the mobile
device 11. The user 15 may add media objects, such as internet
media content objects, to the playback queue. For example, the user
15 may invoke the media controls 88 and/or the additional media
controls 89 in a rendered web page to add internet media content
objects to a playback queue. Then, the queue control element 207
may instruct an external rendering device to play back the internet
media content objects in sequence based on the position of the
internet media objects within the playback queue. As a media
content object in the playback queue is finished playing on the
external rendering device, the queue control element 207 may
instruct the external rendering device to begin to request,
retrieve and/or play back the next media content object in the
playback queue.
[0148] The queue control element 207 may use the discover and
control renderers component 208 of the application 41 to directly
control the external rendering device. Alternatively, the queue
control element 207 may use the RCC interface 209 of the
application 41 to communicate with the rendering control component
25. The rendering control component 25, if present, may have the
ability to create, manage and use playback queues. In this case,
the queue control element 207 may use the RCC interface 209 to
instruct the rendering control component 25 to create a playback
queue which targets a specific external rendering device.
Subsequently, the queue control element 207 may use the RCC
interface 209 to instruct the rendering control component 25 to add
media content objects to the playback queue and/or to control the
queued playback of media objects by the external rendering device.
As a result, the queue state may be maintained in the rendering
control component 25 instead of the application 41. In a similar
fashion, the responsibility for maintaining and playing the
playback queue may be delegated to the rendering control component
25 which may be external to the mobile device 11. Queue
functionality which may be provided by the rendering control
component 25 is described in detail in U.S. App. Pub. No.
2010/0095332, herein incorporated by reference in its entirety.
[0149] The queue control element 207 may support playback queue
management functions which may be exposed to the user 15 through
application controls displayed in the user interface 49 by the UI
control element 205. For example, the user 15 may be able to view
the current contents of a playback queue, edit the playback queue
to remove and/or rearrange media content objects, delete a playback
queue, create a new playback queue, skip ahead to the next media
content object in the playback queue, skip backward to a preceding
media content object in the playback queue, and/or the like.
[0150] FIG. 8 generally illustrates an embodiment of the
application user interface displayed by the user interface 49
provided by the mobile device 11. The application user interface
displayed by the user interface 49 of the mobile device 11 may be
provided by the application 41 and/or the HTML rendering engine 48.
In the example depicted in FIG. 8, the user 15 may have selected,
may have specified and/or may have navigated to a specific content
site, namely www.tvholic.com. The content site may provide internet
video content and/or may provide a search facility for finding
video content available through the content site. The user 15 may
have used the search facility to execute a search. For example, the
user 15 may have used text entry capabilities of the mobile device
11 and/or the HTML rendering engine 48 to enter "two cats" into a
search form at the top of a rendered web page.
[0151] As a result, the application 41 and/or the HTML rendering
engine 48 may have requested and/or retrieved the web content
corresponding to the search results web page using techniques
previously described. Further, the application 41 may have analyzed
the web content using any of the techniques described herein to
identify the media controls 88 for accessing internet media
content. For example, the application 41 may have identified an
active thumbnail image 110 for accessing a video clip entitled "In
the Alley" as shown in FIG. 8. The application 41 may have
identified other media controls not labeled in FIG. 8, and the
present invention is not limited to the specific embodiment of the
application user interface depicted in FIG. 8.
[0152] The HTML rendering engine 48 may process the web content 80
corresponding to the search results web page to create a rendered
web page 105. The rendered web page 105 may be displayed in the
application user interface. The rendered web page 105 may have the
media controls 88, such as the active thumbnail image 110. The
rendered web page 105 may have text, graphics, borders,
supplementary information about the internet media content, and/or
the like. The rendered web page 105 may have any information
specified in the web content retrieved from the content site. The
present invention is not limited to the specific embodiment of the
rendered web page 105 depicted in FIG. 8.
[0153] The application 41 may display application controls 115 in
the application user interface. As shown in FIG. 8, the application
controls 115 may have and/or may be navigation controls 116 and/or
playback mode selection controls 117. The navigation controls 116
may have and/or may be web browser functions, such as, for example,
a back button, a forward button, a button to add the current page
to a list of favorites, a button to reload and/or refresh the
current page, a button to access a list of web browser
configuration options, and/or the like.
[0154] The playback mode selection controls 117 may enable the user
15 to select a method used to play back media selected in and/or
invoked from the rendered web page 105. For example, the playback
mode selection controls 117 may have and/or may be a local playback
mode control 118, an external renderer playback mode control 119,
an add to queue playback mode control 120, and/or the like. The
user may select one of the playback mode selection controls 117 to
specify a selected playback mode. As a result, the application user
interface may identify the selected playback mode. For example, the
selected playback mode may be highlighted, may be displayed
brightly, may be circled, and/or may be otherwise graphically
distinguished from the other playback modes.
[0155] The local playback mode control 118 may correspond to
playing the internet media content on the mobile device 11. For
example, if the local playback mode control 118 is the selected
playback mode control, the user 15 may select the active thumbnail
image 110 to play the video clip "In the Alley" on the display
screen of the mobile device 11. In a similar fashion, the user 15
may select any of the media controls 88 in the rendered web page
105, and the application 41 and/or the HTML rendering engine 48 may
respond by using the display screen of the mobile device 11 to play
the internet media content corresponding to the selected media
control.
[0156] The external renderer playback mode control 119 may
correspond to playing the internet media content using an external
rendering device, such as one of the rendering devices 21, 22, 23
and/or the rendering device 42. For example, if the external
renderer playback mode control 119 is the selected playback mode
control, the user 15 may select the active thumbnail image 110 to
play the video clip "In the Alley" on an external rendering device,
such as a DLNA-compliant television. In a similar fashion, the user
15 may select any of the media controls 88 in the rendered web page
105, and the application 41 may respond by using the external
rendering device to play the internet media content corresponding
to the selected media control. As previously set forth, the
application 41 may communicate directly with the external rendering
device using the discover and control renderers 208 component of
the application 41, and/or the application 41 may instruct the
rendering control component 25 which may be external to the mobile
device 11 to initiate the transfer of media content to the external
rendering device.
[0157] The add to queue playback mode control 120 may correspond to
adding the internet media content to a queue for queued playback.
For example, if add to queue playback mode control 120 is the
selected playback mode control, the user 15 may select the active
thumbnail image 110 to add the internet video clip "In the Alley"
to the queue. In a similar fashion, the user 15 may select any of
the media controls 88 in the rendered web page 105, and the
application 41 may respond by adding the internet media content
corresponding to the selected media control to the queue. As
previously set forth, the application 41 may have an internal
representation of the playback queue and/or may use a playback
queue provided and maintained by the rendering control component 25
which may be accessible through the local network 12.
[0158] The application user interface may present the playback mode
selection controls 117 adaptively so that the playback mode
selection controls 117 may depend on the available rendering
devices in the local network 12, on the presence or absence of the
rendering control component 25, and/or on the properties of the
internet media content corresponding to the media controls 88
identified by the application 41 for the rendered web page 105. For
example, the application user interface may not present the
external renderer playback mode control 119 if no rendering devices
are available in the local network 12. As another example, the
application user interface may present multiple external renderer
playback mode controls 119 if multiple rendering devices are
available in the local network 12, and each of the multiple
external renderer playback mode controls 119 may correspond to one
of the multiple rendering devices. As yet another example, the
application user interface may not present the add to queue
playback mode control 120 if the application 41 relies on the
presence of the rendering control component 25 to implement queued
playback and the rendering control component 25 is unavailable in
the local network 12.
[0159] The application user interface provided by the user
interface 49 of the mobile device 11 may have additional functions
not shown in FIG. 8. For example, the application user interface
may have a function for selecting a rendering device from the
rendering devices in the local network 12. The selected rendering
device may be the target rendering device for external renderer
playback mode invoked by selection of the external renderer
playback mode 119. The application user interface may have a
function for accessing rendering controls which control playback on
the external rendering device. The application user interface may
have a function to view, access, manage and/or control the playback
queue.
[0160] One or more of the additional functions may be accessible
using the playback mode selection controls 117. In an embodiment,
the user 15 may "touch" one of the playback mode selection controls
117 to select a playback mode and/or may "long press" one of the
playback mode selection controls 117 to configure the playback
mode. For example, a "long press" on the external renderer playback
mode control 119 may be used to access a screen. The screen may
enable the user 15 to select a new target rendering device to use
for external renderer playback mode, and/or the screen may enable
the user 15 to access rendering controls for controlling rendering
on the current target rendering device. In a similar fashion, a
"long press" on the add to queue playback mode control 120 may be
used to access a screen for viewing the current playback queue and
for editing, managing and/or playing back the playback queue.
[0161] As a result, the application 41 may override the original
functions of the media controls 88 presented within the web page by
enabling the media controls 88 to invoke playback methods which may
not have been originally supported by the web page. For example,
the application 41 may use the playback mode selection controls 117
to provide playback methods which may not have been furnished by
the content provider or the designer of the web page.
[0162] For example, an embodiment of the application 41 may
retrieve a web page having the media controls 88 for accessing
internet media content. Then, the web page may be displayed in the
user interface 49 of the mobile device 11. Then, the playback mode
selection controls 117 may be presented to enable the user 15 to
select a playback mode from multiple playback modes. User input may
select a playback mode using the playback mode selection controls
117 and/or may select one of the media controls 88 provided by the
web page. Then, the internet media content accessed by the selected
media control 88 may be played back using the selected playback
mode. The internet media content accessed by the selected media
control 88 may be played in response to selection of the playback
mode using the playback mode selection controls 117 and/or may be
played in response to selection of the media control 88 provided by
the web page. The internet media content accessed by the selected
media control may be played on the mobile device 11 and/or an
external rendering device and/or may be added to a playback
queue.
[0163] In an embodiment, the playback mode selection controls 117
may be implemented independently from other elements disclosed
herein. For example, an embodiment of the application 41 may
implement the playback mode selection controls 117 without.
[0164] FIG. 9 generally illustrates an embodiment of the
application user interface displayed by the user interface 49 of
the mobile device 11. The application user interface may be
provided by the application 41 and/or the HTML rendering engine 48.
The example depicted in FIG. 9 uses the same search results web
page described for FIG. 8. However, FIG. 9 illustrates an
embodiment in which the application 41 modifies the web content to
insert additional media controls.
[0165] As previously set forth, the application 41 and/or the HTML
rendering engine 48 may have requested and/or retrieved the web
content 80 corresponding to the search results web page. The
application 41 may have analyzed the web content 80 to identify the
media controls 88 for accessing internet media content. Further,
the application 41 may have modified the web content 80 to insert
the additional media controls 89 corresponding to the media
controls 88. The steps of analyzing the web content 80 and forming
the modified web content 81 may have used any of the techniques
previously described.
[0166] The HTML rendering engine 48 may have processed the modified
web content 81 to create the rendered web page 105. The rendered
web page 105 may be displayed in the application user interface.
The rendered web page 105 may have the media controls 88, such as
the active thumbnail image 110, and/or the additional media
controls 89 inserted by the application 41. The rendered web page
105 may have text, graphics, borders, supplementary information
about the internet media content, and/or the like. The rendered web
page 105 may have any information specified in the web content
retrieved from the content site.
[0167] The additional media controls 89 may have and/or may be an
external renderer control 130 and/or an add to queue control 131 as
shown in FIG. 9. The external renderer control 130 may correspond
to playback of the associated internet media content on an external
rendering device. The add to queue control 131 may correspond to
addition of the associated internet media content to a queue for
queued playback. Each of the media controls 88 identified by the
application 41 may have corresponding additional media controls 89.
Therefore, each of the additional media controls may correspond to
a particular internet media content object, namely the internet
media content object accessible using the corresponding media
control 88.
[0168] For example, the user 15 may touch the active thumbnail
image 110 for the "In the Alley" video clip to play the video clip
on the mobile device 11. In addition, the user 15 may touch the
external renderer control 130 corresponding to the "In the Alley"
video clip to initiate playback of the video clip using the
external rendering device. In a similar fashion, the user 15 may
touch the add to queue control 131 corresponding to the "In the
Alley" video clip to add the video clip to a playback queue.
[0169] The application user interface may display application
controls 135. For example, the application controls 135 may have
and/or may be the navigation controls 116 which may have web
browser functions, such as a back button, a forward button, a
button to add the current page to a list of favorites, a button to
reload and/or refresh the current page, a button to access a list
of web browser configuration options, and/or the like; controls for
selecting a new target rendering device; playback controls for the
target rendering device; playback queue controls; and/or the like.
The present invention is not limited to these examples, and the
application user interface may have additional application controls
not listed herein.
[0170] In an embodiment, the application 41 may insert the
additional media controls 89 adaptively based on the rendering
devices available in the local network 12, the presence or absence
of the rendering control component 25, and/or properties of the
internet media content corresponding to the media controls 88
identified by the application 41 for the rendered web page 105. For
example, the application 41 may insert a separate external renderer
control 130 for each available rendering device capable of playing
the internet media content. As a result, a particular internet
media content may have zero, one or multiple external renderer
controls 130 inserted by the application 41, depending on the
number of compatible rendering devices available at that time. As
another example, an embodiment of the application 41 may support
queued playback of music content but not of video content. As a
result, the application 41 may only insert the add to queue control
131 for music content objects.
[0171] The embodiments of the application user interface
illustrated in the preceding examples do not limit the present
invention. Variations of the preceding examples may be used in an
embodiment of the present invention. For example, a modified user
interface based on the preceding examples may present the rendered
web page 105 corresponding to the original web content as
illustrated in FIG. 8, but the modified user interface may not
present the playback mode selection controls 117 shown in FIG. 8.
The rendered web page 105 may have the media controls 88, such as
the active thumbnail image 110, and the user 15 may select, may
touch, may invoke and/or may click on one of the media controls 88
in the rendered web page 105. As a result, the HTML rendering
engine 48 may generate the user interaction signal 64, 74 and/or
may communicate the user interaction signal 64, 74 to the
application 41.
[0172] In response to receipt of the user interaction signal 64/74,
the application 41 may display controls to select a media action
for the internet media content corresponding to the one of the
media controls 88 selected by the user 15. For example, the
application 41 may display a dialog window and/or a similar user
input mechanism. The dialog window may prompt the user 15 to select
local playback of the internet media content on the mobile device
11, playback of the internet media content on an external rendering
device, or addition of the internet media content to a queue for
queued playback. The user 15 may select one of these playback
options using the dialog window, and, as a result, the application
41 may initiate a media action corresponding to the selected
playback option.
[0173] FIGS. 8 and 9 depicts a search results web page as an
example. The techniques disclosed herein are not limited to a
search results web page and may be applied to any web page having
controls for accessing internet media content. The application 41
may retrieve, may analyze, may modify, may present and/or may
utilize any web page renderable using the HTML rendering engine
48.
[0174] As a result of the system and method described herein, the
application 41 executed by a mobile device 11 may transfer internet
media content to a rendering device in a home network. The
application 41 may use the HTML rendering engine 48 to display a
web page to the user 15 of the mobile device 11, and the web page
may have the media controls 88 for accessing the internet media
content. The web page may be based on web content 80 retrieved from
a content source. The application 41 may analyze the web content 80
to identify the media controls 88 for accessing the internet media
content, and/or the application 41 may form the modified web
content 89 having the additional media controls 89. The application
41 may receive the user interaction signal 64, 74 which may
indicate that the user 15 invoked one of the media controls 88
and/or one of the additional media controls 89. In response, the
application 41 may initiate transfer of the internet media content
to the rendering device in the home network and/or may queue the
internet media content for later playback using the rendering
device.
[0175] Various changes and modifications to the presently preferred
embodiments described herein will be apparent to those skilled in
the art. Such changes and modifications may be made without
departing from the spirit and scope of the present invention and
without diminishing its attendant advantages. Such changes and
modifications are covered by the appended claims.
* * * * *
References