Embodiments of the subject matter described herein relate generally to the presentation of digital media content at a presentation device. More particularly, embodiments of the subject matter relate to an always-on-top media player that is launched from a web page.
Streaming media techniques can be used to provide content, including audio content and video content, to users of various media presentation devices, such as personal computers, handheld mobile devices, laptop computers, or the like. For example, Sling Media, Inc. provides an online streaming media service that allows users to view video content at their convenience and on demand. Other websites provide hosting services that allow users to upload video clips for purposes of sharing or archiving. Traditionally, web-based streaming media sites provide fixed, embedded, or docked media player components that are rendered and displayed as an integral part of a web page. Some web-based streaming media sites provide stand-alone or undocked media player components that can be launched as browser windows from their respective host web pages. In this regard, an undocked media player is displayed in one distinct and separate browser window, while the originating host web page is displayed in another distinct and separate browser window.
In accordance with conventional techniques, undocked media player windows are generated with no display priority or preference relative to other application windows that might be concurrently open on the media presentation device. In this regard, an undocked media player window will appear “on top” of other windows when the undocked media player window has focus, otherwise, the undocked media player window could be partially or completely obscured, blocked, or overlapped by one or more other application windows. Consequently, the user's view of a conventional undocked media player window can become partially or totally obscured during concurrent use or manipulation of other open applications.
A method is provided for managing the presentation of streaming media. The method directs the displaying of a web page comprising a media player on a display element, and detects activity associated with the media player. In response to the detected activity, the method renders, on the display element, a stand-alone always-on-top media player for presentation of streaming media.
Also provided is a web browser application stored on tangible media of a computing device having a display element associated therewith. The web browser application includes processor-executable instructions that, when executed by the computing device, cause the computing device to perform a method that involves: providing an embedded media player within a web page displayed on the display element; displaying a window for a stand-alone media player on the display element, the window being outside of, distinct from, and separate from the web page, the window by default having always-on-top display characteristics; and presenting streaming media with the stand-alone media player.
Also provided is a method of presenting digital media content using a media presentation device configured to execute a web browser application. This method begins by rendering, on a display element of the media presentation device, a docked media player and a graphical control element that represents an undock media player command. Rendering the docked media player and the graphical control element is controlled by the web browser application. The method also detects selection of the graphical control element and, in response to the detected selection of the graphical control element, launches a stand-alone media player on the display element. The stand-alone media player is undocked from, different than, and independent of the docked media player, and the stand-alone media player has default always-on-top display characteristics. The launching of the stand-alone media player is controlled by the web browser application, and the method proceeds by presenting, with the stand-alone media player, content associated with a digital media file.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
A more complete understanding of the subject matter may be derived by referring to the detailed description and claims when considered in conjunction with the following figures, wherein like reference numbers refer to similar elements throughout the figures.
The following detailed description is merely illustrative in nature and is not intended to limit the embodiments of the subject matter or the application and uses of such embodiments. As used herein, the word “exemplary” means “serving as an example, instance, or illustration.” Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary or the following detailed description.
Techniques and technologies may be described herein in terms of functional and/or logical block components, and with reference to symbolic representations of operations, processing tasks, and functions that may be performed by various computing components or devices. Such operations, tasks, and functions are sometimes referred to as being computer-executed, computerized, software-implemented, or processor-executed. In practice, one or more processor devices can carry out the described operations, tasks, and functions by manipulating electrical signals representing data bits at memory locations in the system memory, as well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic properties corresponding to the data bits. It should be appreciated that the various block components shown in the figures may be realized by any number of hardware, software, and/or firmware components configured to perform the specified functions. For example, an embodiment of a system or a component may employ various integrated circuit components, e.g., memory elements, digital signal processing elements, logic elements, look-up tables, or the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices.
When implemented in software or firmware, various elements of the systems described herein are essentially the code segments or instructions that perform the various tasks. The program or code segments can be stored in a processor-readable medium or transmitted by a computer data signal embodied in a carrier wave over a transmission medium or communication path. The “processor-readable medium” or “machine-readable medium” may include any medium that can store or transfer information. Examples of the processor-readable medium include an electronic circuit, a semiconductor memory device, a ROM, a flash memory, an erasable ROM (EROM), a floppy diskette, a CD-ROM, an optical disk, a hard disk, or the like. The computer data signal may include any signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic paths, or RF links. The code segments may be downloaded via computer networks such as the Internet, an intranet, a LAN, or the like.
According to various embodiments, a separate media player window can be launched from a web page (which may be an online media portal, a web-based content provider, etc.). The launched media player window is separate, distinct, and independent from the web page window from which it originated. In certain embodiments, the launched media player window has “always-on-top” display characteristics by default or by user configuration. In this regard, the media player window remains on top of other application windows on the display element, regardless of which application window has current focus. This always-on-top feature enables the user to view the content presented in the media player window while manipulating or otherwise working with other open application windows.
Turning now to the figures and with initial reference to
In many embodiments, a media presentation device is a general purpose computing device that includes a media player application in software or firmware that is capable of receiving and presenting media content to the user of the device as appropriate. Although any number and different types of presentation devices could be deployed in a practical embodiment,
A media presentation device 106/108 in the system 100 can present audio and/or visual content to a viewer on its respective display element, using a suitable media player application or window. Although not depicted in
The network 104 is any digital or other communications network capable of transmitting messages between senders (e.g., the media/content sources 102) and receivers (e.g., the media presentation devices 106/108). In various embodiments, the network 104 includes any number of public or private data connections, links or networks supporting any number of communications protocols. The network 104 may include the Internet, for example, or any other network based upon TCP/IP or other conventional protocols. In various embodiments, the network 104 also incorporates a wireless and/or wired telephone network, such as a cellular communications network for communicating with mobile phones, personal digital assistants, and/or the like. The network 104 may also incorporate any sort of wireless or wired local area networks, such as one or more IEEE 802.3 and/or IEEE 802.11 networks.
The media/content sources 102 and/or the media presentation devices 106/108 are therefore able to communicate in any manner with the network 104. Such communication may take place over a wide area link that includes the Internet and/or a telephone network, for example; in other embodiments, communications between the media/content sources 102 and the media presentation devices 106/108 may take place over one or more wired or wireless local area links that are conceptually incorporated within the network 104. In various equivalent embodiments, the media/content sources 102 and the media presentation devices 106/108 may be directly connected via any sort of cable (e.g., an Ethernet cable or the like) with little or no other network functionality provided.
As mentioned above, certain embodiments of the system 100 utilize media presentation devices that are based upon computing device platforms. In this regard,
The computing device 200 typically includes at least some form of tangible computer-readable or processor-readable media. In this regard, processor-readable media can be any available media that can be accessed by the computing device 200 and/or by applications executed by the computing device 200. By way of example, and not limitation, processor-readable media may comprise tangible computer storage media, which may be volatile, nonvolatile, removable, or non-removable media implemented in any method or technology for storage of information such as processor-executable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by the computing device 200.
Referring again to
Depending on the exact configuration and type of computing device 200, the memory 204 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. Additionally, the computing device 200 may also have additional features/functionality. For example, the computing device 200 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is represented in
The computing device 200 may also include or support communications connection(s) 212 that allow the computing device 200 to communicate with other devices, such as other networked computing devices, media or content sources, or the like. Depending upon the implementation, the communication connection(s) 212 may include, without limitation, suitably configured interfaces that allow the computing device 200 to communicate with a network such as the Internet, external databases, external memory devices, and the like.
The computing device 200 may also include or communicate with certain input device(s) 214 such as a keyboard, mouse or other pointing device, pen, voice input device, touch input device, etc. The computing device 200 may also include or communicate with output device(s) 216 such as a display element, speakers, printer, or the like. For example, during operation of the computing device 200, a display element may be utilized for playback of digital media content using a media player application. All of these devices are well know in the art and need not be discussed at length here.
An exemplary embodiment of a media presentation device includes a web browser application stored on tangible processor-readable media. A web browser application includes functionality that enables it to retrieve, process, and present information (e.g., web pages, images, media, or other content) available on the Internet and/or on private networks. Web browsers usually identify resources using Uniform Resource Locators (URLs). Web browser applications are well known and, therefore, they will not be described in detail here. Exemplary web browser applications suitable for use with the systems and media player technology described here include, without limitation: the Internet Explorer browser application by Microsoft Corp.; the Firefox browser application by Mozilla; the Safari browser application by Apple, Inc.; and the Chrome browser application by Google.
An exemplary web browser application includes or cooperates with processor-executable instructions that, when executed by its host media presentation device, causes the media presentation device to carry out certain processes, techniques, and methodologies (which are described in more detail below). Of course, such a web browser application can also support conventional and routine web browser features and functionality if so desired. The web browser application and other processor-executable features of the systems described herein may leverage conventional computer science and programming techniques that are applicable to the particular operating system of the host media presentation device or computing device. In this regard, the web browser application may include, initiate, or otherwise cooperate with lightweight applets (e.g., applets written in the Java programming language, ActiveX controls, or the like, which may or may not be operating system specific), plugin modules that add functionality to the core web browser application, and the like. Moreover, the web browser application may be fully compatible with the application programming interface employed by the host operating system (e.g., the Windows operating system from Microsoft Corp.).
For example,
For the embodiments described here, a user can choose to launch a separate stand-alone media player from the web page 301 and/or from the docked media player 302. In this regard,
Notably, the stand-alone media player window 306 is deployed with default always-on-top display characteristics. In other words, when launched, the stand-alone media player window 306 will automatically be displayed in full, and without any other application windows overlapping any portion of it. Moreover, the default always-on-top display characteristics ensure that the stand-alone media player window 306 will be fully displayed regardless of how many other application windows are deployed, and regardless of manipulation, maximizing, resizing, or shifting of other application windows. Accordingly, if video content is being presented in the stand-alone media player window 306, the user can focus on and continue working with one or more “underlying” applications without inadvertently obscuring any portion of the stand-alone media player window 306. In this regard,
The always-on-top display characteristics of the stand-alone media player window 402 prevent the stand-alone media player window 402 from being fully or partially obscured by the other application windows 404/406. Thus, even if one of the underlying application windows 404/406 gains focus (e.g., if the user decides to manipulate or interact with one of those application windows 404/406), the stand-alone media player window 402 will be displayed in its entirety. In certain embodiments, the stand-alone media player window 402 can be resized, repositioned on the display screen, or maximized while still preserving its always-on-top characteristics. The stand-alone media player window 402 could also be minimized if so desired, however, if thereafter restored or maximized, the stand-alone media player window 402 will automatically be displayed on top again.
A media presentation or computing device can be configured to support the default always-on-top functionality of an undocked media player window (described above). In this regard,
The media presentation process 500 may begin by starting, initializing, or launching an appropriate web browser and accessing/displaying a suitable web page using the web browser (task 502). For this embodiment, task 502 is associated with the display of a web page that provides access to digital media files, e.g., a streaming media portal web page. In this regard, the process 500 will direct the displaying (on a display element of the host media presentation or computing device) of a web page that includes a media player element or component. For this exemplary embodiment, the process 500 renders a fixed, embedded, or docked media player in (or otherwise with) the media portal web page (task 504). In conjunction with the display of the web page, one or more graphical control elements associated with the docked media player could be displayed or otherwise provided. For example, a graphical control element corresponding to a “launch media player” command or an “undock media player” command may be displayed on the web page and/or with the docked media player (task 506).
In certain implementations, displaying the web page, the docked media player, and the associated graphical control element(s) is controlled or managed by the web browser application running at the media presentation or computing device. Referring again to
Referring back to
If the process 500 detects a command, instruction, parameter, or other applicable state (query task 510), then it will proceed by launching and rendering the stand-alone media player on the display element (task 512). Accordingly, the stand-alone media player is rendered and displayed in response to the detected activity (e.g., interaction with the docked media player and/or interaction with the web page that includes the docked media player). In certain embodiments, the launching and display of the stand-alone media player is controlled and/or managed by the web browser application. Notably, the stand-alone media player is initially launched such that it has, by default, certain always-on-top characteristics.
The default always-on-top display characteristics of the stand-alone media player window may be user-configurable or fixed. Settings, processor-executable instructions, and/or configuration parameters for the always-on-top display characteristics could be implemented with program code associated with the web browser application, program code associated with the operating system of the host media presentation or computing device, program code maintained by the provider or host of the media portal web page, or the like. For example, the media portal web page might allow a subscriber to log in and select the default always-on-top display characteristics for the stand-alone media player window. As another example, a user might be able to manipulate certain settings on the docked media player such that any stand-alone media player windows launched from the docked media player will have the default always-on-top feature. As yet another example, the web browser application may have a configuration or option setting that determines whether or not a launched media player window will have the always-on-top display characteristics.
In practice, the always-on-top feature of the stand-alone media player could be implemented using appropriate computer programming techniques, approaches, and/or code modifications. For example, the operating system of the host media presentation or computing device might support configurable settings and parameters that control or otherwise dictate the size, position, overlapping behavior, and other display characteristics of child, pop-up, or top-level windows. In this regard, the application programming interface of the host operating system could be programmed to support the default always-on-top feature.
Referring again to
As explained previously, the stand-alone media player window can be maintained on top of other windows (e.g., application windows, operating system windows, pop-up messages, or the like) such that the user has a continuous view of the stand-alone media player window regardless of other activity, application focus, or manipulation of windows rendered on the display element of the host media presentation or computing device (task 518). In this regard, the host system can run at least one processor-executed application (other than the stand-alone media player) while still presenting streaming media in the stand-alone media player window. Moreover, the stand-alone media player window will remain on top of other windows (including any windows used for the other processor-executed applications) and will continue playback of the media content concurrently with manipulation of the other processor-executed applications. For example, as described above with reference to
The exemplary embodiment of the process 500 assumes that the default always-on-top mode of the stand-alone media player window can be changed to a different mode, e.g., an overlapping mode. Thus, if the process 500 detects or obtains an appropriate command to switch from the default always-on-top mode to an overlapping mode (query task 520), then the process 500 can initiate the mode change (task 522). This disables the always-on-top display characteristics of the stand-alone media player window, and, in certain embodiments, causes the stand-alone media player window to behave in a typical manner (such that other windows can partially or completely overlap and obscure it).
The process 500 has been described in the context of handing a given digital media file or a given streaming media event. In practice, some or all of the process 500 may be repeated as needed to support the presentation of any number of media files or events. Moreover, the default always-on-top display setting need not be changed or modified as described above. Furthermore, the media presentation or computing device may be suitably configured to switch back and forth between the default always-on-top mode, the overlapping mode, and possibly other display modes.
It should be appreciated that the stand-alone media player window could be implemented with other default and/or user-configurable display characteristics, features, and functionality (in addition to its default always-on-top feature). For example, it may be desirable to configure the stand-alone media player window such that by default it remains docked at a specified location or area of the display element (e.g., at the top left corner). As another example, it may be desirable to configure the stand-alone media player window such that by default it has a specified display size or resolution.
Furthermore, while at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or embodiments described herein are not intended to limit the scope, applicability, or configuration of the claimed subject matter in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the described embodiment or embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope defined by the claims, which includes known equivalents and foreseeable equivalents at the time of filing this patent application.