The present invention is directed to controlling the presentation of digital content. More particularly, and without limiting the scope of the invention, the invention is directed to remotely controlling the presentation of digital content.
To present charts, graphs, and other visual information to an audience, one used to prepare a series of transparent slides and use an overhead or slide projector to sequentially transmit an image of each slide onto a screen. Today, digital multimedia presentations are the norm. Content previously placed on transparencies can be stored and presented electronically using programming applications such as Microsoft's PowerPoint®. With the use of presentation software such as PowerPoint running on a computer connected to a digital projector, an audience can enjoy a high quality multimedia presentation. In addition to still visual information, each digital slide can include sound, animated graphics, and even video clips.
Rooms in businesses, universities, convention centers, and other presentation sites are often equipped with the hardware and programming needed to present digital multimedia slide shows. A presenter need only supply the digital content. Typically, digital content for a presentation is created or assembled away from the presentation site. To transport digital content to the presentation site, a presenter often saves the content on a computer readable medium such as a compact disc or the hard drive of a portable computer. The presenter must be careful to save the content in a format that is compatible with the programming available at the presentation site. For example, such a presentation site may only be equipped to show a PowerPoint presentation. Unfortunately, a presenter often is unaware of the format limitations of a presentation site.
Any time electronic data such as a digital slide show is transferred to a storage medium such as a compact disc or portable computer, the risk of data loss increases. The transfer to the medium may be incomplete or faulty. When traveling to the presentations site, the medium storing the slide show may itself be lost or damaged. Problems can also arise even if the digital content is safely transported to a presentation site. Between the time the digital content is readied for transport and ultimately presented, unexpected events may cause some or all of the slide show's content to become outdated. In many cases the presenter may not have the time or ability to update the content.
Software such as PowerPoint allows a presenter to manually control or navigate through the digital content. Using a device such as a mouse connected to a computer running the software, the presenter can instruct the software to switch from one digital slide to another. However, a presenter often desires to interact and move around amongst the audience. When using a connected device to navigate through a digital slide show, the presenter cannot move freely and is limited to a range of motion defined by the cord connecting the control device to the computer.
Software such as Microsoft's NetMeeting® allows the user of a controlling computer to remotely direct a program such as PowerPoint or other presentation software running on controlled computer. NetMeeting provides a reflective interface. In other words, NetMeeting attempts to display on the controlling computer a real-time reflection of what is being displayed by the controlled computer. This reflective interface is sometimes referred to as a remote desktop. In short, users of the controlling and controlled computers see the same display. The user of the controlling computer sees a real-time reflection of what is being displayed by the controlled computer.
With NetMeeting a user of a controlling computer can remotely direct the presentation of digital content by a second computer. However, NetMeeting causes the digital content to be presented by both computers. When generating a remote desktop, NetMeeting streams the content over a network from the controlled computer to the controlling computer. This can cause problems in at least two situations. First, the controlling computer may be a web enabled PDA (Personal Digital Assistant) or cellular telephone or other device with insufficient computing power to present the digital content. Second, the network connection between the two computers may be too slow or unreliable to stream the content from the controlled computer to the controlling computer.
I
The digital content is electronically transferred to the presentation site after the presenter arrives eliminating much of the risk of data loss or corruption involved with physically transferring the digital content. Using a mobile device to control the presentation also allows the presenter to remain mobile. Up until it is transferred, the digital content can be continuously updated by anyone with access to the content. Even if the presenter cannot update the content, the digital content remains accessible to others who can, thus, helping to ensure that the content presented is relevant and not outdated.
The following description is broken into sections. The first section is a glossary of terms. In the second section, an environment in which the present invention may be implemented is discussed. The hardware and programming components used in a system embodiment of the present invention are described in the third section. In the fourth section, labeled “Operation” steps taken to practice a method embodiment are explained. In the final section, examples of user interfaces for selecting digital content, selecting presentation sites, and controlling the presentation of digital content are described.
G
Program: An organized list of electronic instructions that, when executed, causes a device to behave in a predetermined manner. A program can take many forms. For example, it may be software stored on a computer's disk drive. It may be firmware written onto read-only memory. It may be embodied in hardware such as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits having appropriate logic gates, programmable gate arrays (PGA), field programmable gate arrays (FPGA), or other components.
Client-Server: A model of interaction between two programs. For example, a program operating on one network device sends a request to a program operating on another network device and waits for a response. The requesting program is referred to as the “client” while the device on which the client operates is referred to as the “client device.” The responding program is referred to as the “server,” while the device on which the server operates is referred to as the “server device.” The server is responsible for acting on the client request and returning requested information, if any, back to the client. This requested information may be an electronic file such as a word processing document or spread sheet, a web page, or any other electronic data to be displayed or used by the client. In any given network there may be multiple clients and multiple servers. A single device may contain programming allowing it to operate both as a client device and as a server device. Moreover, a client and a server may both operate on the same device.
Web Server: A server that implements HTTP (Hypertext Transport Protocol). A web server can host a web site or a web service. A web site provides a user interface by supplying web pages to a requesting client, in this case a web browser. Web pages can be delivered in a number of formats including, but not limited to, HTML (Hyper-Text Markup Language) and XML (extensible Markup Language). Web pages may be generated on demand using server side scripting technologies including, but not limited to, ASP (Active Server Pages) and JSP (Java Server Pages). A web page is typically accessed through a network address. The network address can take the form of an URL (Uniform Resource Locator), IP (Internet Protocol) address, or any other unique addressing mechanism. A web service provides a programmatic interface which may be exposed using a variety of protocols layered on top of HTTP, for example, SOAP (Simple Object Access Protocol).
Interface: The junction between a user and a computer program providing commands or menus through which a user communicates with the program. The term user represents generally any individual, mechanism, or other programming desiring to communicate with the program. For example, in the client-server model defined above, the server usually generates and delivers to a client an interface for communicating with a program operating on or controlled by the server device. Where the server is a web server, the interface may be a web page. The web page, when displayed by the client device, presents a user with controls for selecting options, issuing commands, and entering text. The controls displayed can take many forms. They may include push-buttons, radio buttons, text boxes, scroll bars, or pull-down menus accessible using a keyboard and/or a pointing device such as a mouse connected to a client device. In a non-graphical environment, the controls may include command lines allowing the user to enter textual commands. Where the user is another program, an interface is often called a programmatic interface.
Digital Content: Electronic data for a presentation. The digital content for a presentation may be contained in one or more files and may include text, animated and still graphics, audio files and/or motion video clips. A presentation can take many forms—a common form being a slide show. Other forms include audio and motion video presentations.
E
Each presentation site 12 and 14 represents a unique location at which an audience of one or more individuals may view a presentation. Presentation site 12 includes presentation device 21, and presentation site 14 includes presentation device 22. A presentation device is hardware that can be utilized to present digital content. A presentation device may itself include the hardware for presenting audio and video content or it may include hardware for connecting to and controlling other devices for doing the same. For example, in
Content stores 16-18 represent generally any hardware and programming capable of storing and serving digital content. Presentation control device 20 represents any computing device capable of displaying an interface that enables a user to interact with programming at presentation site 12 and/or 14 in order to control the presentation of digital content. Presentation control device 20 is, in this embodiment, a web enabled mobile computing device such as a cellular telephone or PDA (Personal Digital Assistant). Where a particular presentation is a digital slide show, the PDA may include a web browser capable of displaying a web page including controls that when selected by a user send instructions to change the displayed slide. Where a given presentation includes showing a motion video or playing audio files, the web page may instead include controls for volume adjustment, pausing, stopping, fast forwarding, and rewinding.
Link 24 interconnects presentations sites 12 and 14, content stores 16-20 and presentation control device 20. Link 24 represents generally a cable, wireless, or remote connection via a telecommunication link, an infrared link, a radio frequency link, or any other connector or system that provides electronic communication between devices 12 and 14. Link 24 may represent in whole or in part an intranet, the Internet, or a combination of both.
C
Downloader 36 represents generally any programming capable of transferring digital content over link 24. Content identifier 38 represents any programming capable of identifying the format of digital content. For example, digital content may be a Microsoft PowerPoint file, a PDF (Portable Document Format) file or an Adobe PostScript® file. Converter 40 represents any programming capable of converting digital content from one format to another. For example, converter 40 may be capable of converting a PowerPoint file to PDF, PostScript, or HTML (Hypertext Markup Language) format. Such programming is well known to those skilled in the art.
Viewer 42 represents any programming capable of interpreting and presenting digital content in one or more formats. Viewer 42 can be an application such as Microsoft PowerPoint or Adobe's Acrobat®. However, viewer 42 need not include the full functionality of such applications. Microsoft PowerPoint and Adobe Acrobat each include programming for assembling and/or controlling the presentation of digital content where viewer 42 need only include programming for presenting digital content.
As an example, viewer 42 may include programming capable of presenting slide shows in one or more formats. For slideshows, format examples include Microsoft PowerPoint, PDF (Portable Document Format), PostScript, web pages, and any other format that can define the layout and content of individual pages or slides. Each page or slide can contain any combination of text, still and animated graphics, audio, and motion video. Where viewer 42 can only present content in, for example, PostScript format, and transferred content is in PDF format, converter 40 is responsible for converting the transferred content to PostScript.
Viewer 42 may also include programming for playing audio and motion video files in varying formats. Common motion video formats include MPEG (Motion Picture Expert Group) and AVI (Audio Video Interleave). Common audio formats include MP3 (MPEG audio Layer 3) and WAV. Where viewer 42 can only present audio content in, for example, WAV format, and transferred content is in MP3 format, converter 40 is responsible for converting the transferred content to the WAV format.
Viewer control 44 represents any programming capable of directing viewer 42 in the presentation of digital content. For example, where digital content is a slide show, viewer control 44 is responsible for directing viewer 42 to switch its display from one slide to another. Where digital content is audio or motion video, viewer control 44 may be responsible for directing viewer 42 to pause, rewind, fast forward, and play. Viewer control 44 is also responsible for communicating with viewer 42 to determine the current status of a presentation such as whether the presentation is running or has stopped as well as information regarding the content currently being presented.
UI generator 46 represents any programming capable of creating interfaces enabling a user of presentation control device 20 to interact with downloader 36 and viewer control 44. An interface generated to interact with downloader 36 is referred to as a presentation interface and may include controls for identifying and searching content stores 16-18 (shown in
Nonetheless, a command based control interface may display a preview image of the content currently being displayed by viewer 42. A preview image is a limited visual representation of digital content being presented. A preview image is not a reflection of the digital content being presented. Displaying a preview image of digital content being presented is not the same as presenting digital content. To avoid consuming valuable computing resources, a preview image provided in the control interface includes limited graphics and does not include audio or motion video. For example, a preview image may be a low resolution screen capture or still image of what is being displayed by viewer 42. Alternatively, the preview image may merely display a name for the current presentation.
An example of a non-command based interface is the reflective interface provided by NetMeeting as it controls a second application such as PowerPoint. The reflective interface may include controls for guiding the presentation of digital content by PowerPoint, but it also is used to display the results of commands entered through the interface. If a user selects a start or play command, the reflective interface displays or attempts to display the presentation in real time.
A control interface is command based so that it remains small and requires minimal memory. This allows a mobile device such as web enabled PDA or cellular telephone having limited memory and processing capabilities to serve as presentation control device 20. The small size also allows a control interface to be implemented using HTTP (Hypertext Transport Protocol) allowing presentation service 28 to more quickly transmit the control interface to presentation control device 20. A control interface may include information regarding the current status of a presentation such as data identifying the current slide being presented, but it does not make use of a presentation control device 20 to present the digital content. If the control interface were to also be used to present the digital content, transmission time would by greatly increased, and the capabilities of a presentation control device such as a PDA would be maximized or perhaps even overwhelmed.
UI generator 46 generates a control interface according the identified format of digital content transferred for a presentation. Using the examples above, where digital content is a slide show, a generated control interface may include controls that, when displayed on presentation control device 20, allow a user to switch a display from one slide to another. An example of such an interface is discussed below with reference to
Alternatively, UI generator 46 may generate a control interface by selecting an appropriate but previously generated control interface. Once a control interface is generated, a digital representation of that interface may be stored for future retrieval and use. For example, where digital content is identified as a motion video presentation, UI generator 46 may generate a control interface by retrieving a previously generated control interface designed to control the presentation of motion video.
The number and type of controls included in a control interface for interacting with viewer control 44 depend upon the sophistication of viewer 42 and/or viewer control 44. In the present embodiment, only controls for providing directions that can be acted upon by viewer 42 are included. When presenting a slide show a more sophisticated viewer may be able to act on directions to jump to a particular slide where a less sophisticated viewer may only be able to sequentially scroll through the slides. When presenting audio or motion video, a more sophisticated viewer may be able to act on directions to fast forward and rewind where a less sophisticated viewer may only be able to act on directions to start, pause, and stop.
Presentation device 21 also includes server 30 and data 32. Server 30 is responsible for serving presentation service 28. This includes serving interfaces to presentation control device 20. The interfaces enable a user of presentation control device 20 to interact with presentation service 28. Data 32 represents transferred digital content and any other data used by presentation service 28 and server 30 to perform their respective functions.
The interaction of each of the components described above will be discussed in a following section entitled “Operation.” To summarize with reference to
The logical components of a second embodiment of the present invention will now be described with reference to the block diagram of
When compared to presentation service 28 shown in
Synchronizer 60 also controls the timing of directions issued by viewer control 44′ and remote viewer control 44″. For example, where digital content is a slide show, synchronizer 60 makes sure that viewer controls 44′ and 44″ direct viewers 42′ and 42″ to switch from one slide to another at substantially the same time. Where digital content is an audio or video media file, synchronizer 60 makes sure that viewer controls 44′ and 44″, for example, direct viewers 42′ and 42″ to pause playback at the same time. In other words, synchronizer 60 identifies the status of the presentation by viewer 42. Presentation status includes information such as the current slide being shown, the playback position in an audio or video presentation, and data representing commands entered through a control interface. Using the identified presentation status, synchronizer 60 causes viewer control 44″ to keep the presentation of digital content by viewer 42″ synchronized with the presentation of the same digital content be viewer 42′. Synchronizer 60 may utilize SOAP (Simple Object Access Protocol) to communicate with remote presentation service 58′.
In this embodiment UI generator 46′ is also responsible for creating an interface that enables a user to interact, at least indirectly, with and instruct remote downloader 36″ to transfer digital content—the same digital content transferred by downloader 36′. While
O
Initially a user of presentation control device 20 is supplied with a presentation interface (step 62). A presentation interface is an interface having user accessible controls for locating, identifying, and selecting digital content. Where server 30 for presentation service 28 is a web server, requests to access presentation service 28 may be HTTP (Hyper Text Transport Protocol) requests issued by client 34, a web browser, running on presentation control device 20. Upon receiving a request from client 34 to access presentation service 28, server 30 forwards the request to UI generator 46. UI generator 46 creates or otherwise provides server 30 with a presentation interface to return to client 34.
Through the presentation interface, a user of presentation control device 20 manipulates controls to select a content store and to provide any necessary security credentials. A content store selected through the interface is accessed (step 64) and the presentation interface is updated to display a list of one or more digital content files available on the content store (step 66). To perform steps 64 and 66, it is expected that downloader 36, supplying a user's credentials, will request access to a content store identified through the interface. After authenticating the credentials the identified content store will return a list of digital content available to the user. Downloader 36 will provide that list to UI generator 46 which in turn updates the presentation interface to display the list. From the displayed list of content files, a user selects digital content to be presented, and the selected digital content is transferred (step 68).
If digital content is to be presented at a second remote presentation site, the presentation interface supplied in step 62 also includes controls for identifying the remote site. In this case, synchronizer 60 communicates with the remote presentation service 58′ running on remote presentation device 56 at an identified remote presentation site. Synchronizer 60 instructs remote presentation service 58′ to transfer digital content identified through the presentation interface.
The format of the digital content is automatically identified (step 70), and the digital content is automatically converted, if necessary, to a supported format (step 72). For example, the transferred digital content may be automatically reformatted for PowerPoint. Viewer 42 may only be capable of presenting digital content in PDF format. In step 66, content identifier 38 automatically identifies that the transferred content is in PowerPoint format and converter 40 automatically converts the digital content to PDF format. In other implementations, viewer 42 may only be capable of playing audio and motion video in specified formats—MP3 audio and MPEG video formats for example. Converter 40 may then automatically convert audio content to the MP3 format and motion video content to the MPEG format. Where the digital content is also being presented by remote presentation service 58′, the digital content is converted, if necessary, to a format supported by remote viewer 42′.
A command based control interface is generated based upon the display format of the digital content (step 74). The display format may be the original format of the digital content identified in step 70 or the converted/supported format of step 72. As described previously, a control interface includes user accessible controls that, when selected, allow a user to control the presentation of digital content according to the capabilities of viewer 42 and viewer control 44. For example, content identifier 38 may determine that transferred digital content is a digital slide show in PowerPoint format. UI generator 46 then generates a control interface having controls that, when selected by a user, send instructions to viewer control 44. Such instructions may include directions to switch to the next slide or to the previous slide. Where viewer 42 and viewer control 44 are more sophisticated, the instructions may also include directions to jump to a particular slide. Where digital content is identified as a motion video in step 68, UI generator 46 may instead generate a control interface having controls for playing, pausing, fast forwarding, and rewinding. Ultimately, viewer control 44 guides viewer 42 according to instructions entered through a control interface.
A user is then automatically supplied with the control interface generated in step 74 (step 76). To do so, UI generator 46 directs server 30 to send the control interface to client 34 running on presentation control device 20. As noted above, it is expected that server 30 will be a web server and thus client 34 will be a web browser. The control interface may then be in the form of a device independent web page.
Finally, the transferred digital content is presented according to directions entered through the control interface (step 78). Where the digital content is also being presented by remote presentation service 58′, synchronizer 60 communicates with remote presentation service 58′ to coordinate the actions of remote viewer control 44′ with those of viewer control 44. For example, when a user through a control interface, provides an instruction to pause a presentation, synchronizer 60 makes sure that viewer control 44 and remote viewer control 44′ execute the instruction so as to pause the presentation at the same point in the presentation. When the user provides an instruction to restart the presentation, synchronizer 60 is responsible for ensuring that viewer control 44 and remote viewer control 44′ also restart the presentation from the same point.
E
Second frame 84 contains controls for supplying credentials for accessing a content store selected through first frame 82. Here, second frame 84 includes controls 96-100 for providing a user name and password pair. Third frame 86 includes controls 102 and 104 for selecting digital content available on the content store identified in first frame 82 and using the credentials supplied through second frame 84. Control 102 is a list of the digital content available.
It is noted that until a content store is identified and credentials are supplied, the available digital content is not known. Consequently, controls in third frame 86 may not be displayed initially. Once a user selects a content sore and provides credentials, downloader 36 submits the credentials to the identified content store. Based upon the credentials, the identified content store returns to downloader 36 a list of available digital content. Downloader 36 then instructs UI generator 46 to update interface 80 to include the returned list.
Control interface 118 also includes controls 124-136 for controlling the presentation of digital content. In this example controls 124-136 are for controlling the presentation of a slide show. As described above, control interface is generated according to the identified format of the digital content to be presented. Where, the digital content being displayed is of another format, audio or motion video for example, control interface 118 would include controls more suitable for controlling the playback of an audio or video file.
C
Also, embodiments of the present invention can be implemented in any computer-readable medium for use by or in connection with an instruction execution system such as a computer/processor based system or other system that can fetch or obtain the logic from the computer-readable medium and execute the instructions contained therein. A “computer-readable medium” can be any medium that can contain, store, maintain or transmit programs and data for use by or in connection with the instruction execution system. The computer readable medium can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable compact disc.
Although the flow chart of
The exemplary user interface screen displays shown in
The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details, and embodiments may be made without departing from the spirit and scope of the invention which is defined in the following claims.