CROSS-REFERENCE TO RELATED APPLICATIONSThis application claims the priority of Korean Patent Application Nos. 2002-50524, 2002-73476, and 2003-57991, filed on August 26 and Nov. 25, 2002 and Aug. 21, 2003, in the Korean Intellectual Property Office, the disclosures of which are incorporated herein in their entireties by reference.[0001]
BACKGROUND OF THE INVENTION1. Field of the Invention[0002]
The present invention relates to an apparatus for reproducing AV data in an interactive mode, a method of handling a user input, and an information storage medium therefor.[0003]
2. Description of the Related Art[0004]
Digital versatile discs (DVDs), which are capable of playing back AV data in an interactive mode based on a personal computer (PC), are being sold in the marketplace. On interactive DVDs, AV data is recorded according to DVD-Video standards in addition to markup documents for supporting an interactive function. AV data recorded on an interactive DVD may be displayed in two modes: a video mode wherein AV data is displayed in the same way as general DVD-Video data and an interactive mode wherein an AV picture from AV data is embedded in a display window defined in a markup document to be displayed along with a markup document. For example, in a case wherein AV data is a movie title, the movie title is shown in a display window of a screen and various additional pieces of information such as scripts, plots, photos of actors and actresses, and the like are displayed on the remaining portion of the screen. Alternatively, the various additional information may be displayed in synchronization with the title (AV data). For example, when a specific actor or actress appears in the title, a markup document containing information on his or her background may be displayed.[0005]
The interactive mode requires two playback engines, i.e., a playback engine for interpreting and presenting a markup document and an AV playback engine for playing back AV data of a DVD-Video format. In other words, two large domains, which may be navigated by a user, i.e., a markup document and DVD-Video data, exist in the interactive mode. Since the two domains are controlled and navigated by different methods, it is preferable that a control key and a navigation key exist separately. In a case of a conventional interactive DVD, a browser built in a PC serves as a playback engine for playing back a markup document and user input devices of the PC, i.e., a keyboard with relatively many input keys and a mouse capable of pointing anywhere in the markup document, serve as navigation keys.[0006]
However, in an event that a home device, which is controlled by a user input device such as a remote control with limited keys and supports the interactive mode, is desired to be realized, the use of individual navigation keys is not efficient.[0007]
SUMMARY OF THE INVENTIONThe present invention provides an apparatus which reproduces AV data in an interactive mode by effectively handling a user input using a user input device with a limited number of keys, a method which handles the user input, and an information storage medium which stores information therefor.[0008]
A reproducing apparatus manages a user input in a predetermined manner so that an interactive content maker makes interactive contents with which a user may further effectively interact. In addition, a method handles the user input, and an information storage medium stores information therefor.[0009]
According to an aspect of the present invention, an information storage medium includes AV data and a markup document necessary to reproduce the AV data in an interactive mode. The markup document includes first event information to inform by default an AV playback engine, which plays back the AV data, of an occurrence of a key input event corresponding to a user action.[0010]
The first event information may include event registration information to check whether the user performed the action and event handling information to handle the event by controlling an operation of the AV playback engine when the key input event occurs.[0011]
The event registration information may be recorded using an on-click event defined in the markup document, and the event handling information may be created by a function to allow the AV playback engine to perform an operation corresponding to the on-click event, or the event registration information may be recorded using a key input event listener to check whether the key input event occurs, and the event handling information may be recorded using a key input event handler to control the operation of the AV playback engine.[0012]
The AV playback engine may be informed of the occurrence of the key input event via an ENAV engine that interprets and executes the markup document.[0013]
The markup document may include second event information to prohibit the AV playback engine, which decodes the AV data, from being informed of the occurrence of the key input event.[0014]
According to another aspect of the present invention, a method handles a user input in an interactive mode in which played back AV data is displayed with a markup document. When a key input event corresponding to a user action occurs, an ENAV engine, which interprets and executes the markup document, is informed of the occurrence of the key input event. By default, the ENAV engine informs an AV playback engine of the occurrence of the key input event, and the AV playback engine plays back the AV data.[0015]
According to still another aspect of the present invention, a method handles a user input in an interactive mode in which played back AV data is displayed with a markup document. An AV playback engine, which decodes the AV data, is informed by default of an occurrence of a key input event corresponding to a user action. When a second event occurs using second event information recorded in the markup document, the AV playback engine is prohibited from being informed of the occurrence of the key input event.[0016]
According to yet another aspect of the present invention, an apparatus reproduces AV data in an interactive mode. The apparatus includes an AV playback engine that plays back the AV data and an ENAV engine that interprets and executes a markup document. When a key input event corresponding to a user action occurs, the ENAV engine informs, by default, the AV playback engine of the occurrence of the key input event.[0017]
When a second event occurs using second event information recorded in the markup document, the ENAV engine may not inform the AV playback engine of the occurrence of the key input event.[0018]
The ENAV engine may include an interface handler that informs the AV playback engine of the occurrence of the key input event.[0019]
Additional aspects and advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention.[0020]
BRIEF DESCRIPTION OF THE DRAWINGSThese and/or other aspects and advantages of the invention will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:[0021]
FIG. 1 is a conceptional view of a playback system according to an embodiment of the present invention;[0022]
FIG. 2 is a top view of a[0023]remote control400 of FIG. 1;
FIG. 3 is a block diagram of a[0024]playback device200 of FIG. 1;
FIG. 4 is a partial block diagram to illustrate, in more detail, an embodiment of the operation of an enhanced audio video (ENAV)[0025]engine3 of FIG. 3;
FIG. 5 illustrates an example of an interactive screen in accordance with an embodiment of the present invention;[0026]
FIGS. 6A and 6B illustrate “predetermined information on the operations of the ENAV[0027]engine3 and anAV playback engine4” in accordance with an embodiment of the present invention;
FIG. 7 is a flowchart illustrating operations of a method of handling a user input in an interactive mode, according to an embodiment of the present invention;[0028]
FIG. 8 is a flowchart illustrating operations of a method of handling a user input in an interactive mode, according to another embodiment of the present invention;[0029]
FIG. 9 is a flowchart illustrating operations of a method of handling a user input in an interactive mode, according to still another embodiment of the present invention;[0030]
FIG. 10 is a flowchart illustrating operations of a method of handling a user input in an interactive mode, according to yet another embodiment of the present invention; and[0031]
FIG. 11 is a flowchart illustrating operations of a method of handling a user input in an interactive mode, according to still yet another embodiment of the present invention.[0032]
DETAILED DESCRIPTION OF THE EMBODIMENTSReference will now be made in detail to the present embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present invention by referring to the figures.[0033]
The term ‘Interactive contents’ refers to all contents which are displayed or are displayable to a user in an interactive mode. In other words, the term “interactive contents” refers to contents which may be shown by AV data, markup documents, and program codes and/or resource files inserted into or linked to the markup documents. For example, when DVD-Video data is played back in an interactive mode, interactive contents are largely classified into DVD-Video contents (AV contents) and markup documents. A ‘markup document’ is written in markup language such as XML, HTML, or the like. In other words, the ‘markup document’ indicates a markup resource including A.png, A.jpg, and A.mpeg linked to A.xml as well as A.xml. Thus, the markup document serves as an application necessary to play back AV data in an interactive mode and as interactive contents which are displayed with AV data to the user.[0034]
FIG. 1 is a conceptional view of a playback system according to an embodiment of the present invention. Referring to FIG. 1, the playback system includes a[0035]DVD300 as an information storage medium, aplayback device200, aTV100 as a display device, and aremote control400 as a user input device. Theremote control400 receives a user's control command, and then transmits the user's control command to theplayback device200. Theplayback device200 plays back AV data recorded on theDVD300 in an interactive mode. When theDVD300 is loaded into a DVD drive in theplayback device200 and a user chooses an interactive mode, theplayback device200 plays back the corresponding AV data in the interactive mode using a corresponding markup document, and then transmits the corresponding AV data to theTV100. TheTV100 displays an AV picture formed by AV data that has been played back together with a markup picture formed by a markup document by embedding the AV picture in the markup picture. The interactive mode refers to a mode in which an AV picture is displayed in a display window defined in a markup document, i.e., an AV picture is embedded in a markup picture. Here, the AV picture is formed by playing back DVD-Video data recorded on theDVD300, by theplayback device200, and then is displayed on theTV100. The markup picture is formed by interpreting and implementing a markup document recorded on theDVD300, by theplayback device200, and then is displayed on theTV100. The markup picture in which the AV picture is embedded, i.e., a picture displayed in the interactive mode, is called an interactive picture. A “video mode” refers to a mode in which AV data is played back as defined in conventional DVD-Video standards, i.e., only an AV picture formed by playing back corresponding AV data is displayed. In the embodiment of FIG. 1, theplayback device200 supports the interactive mode, the video mode, and a full-screen mode that is a sub-display mode of the interactive mode. The full-screen mode is a display mode defined in Korean Patent Application No. 02-7031, entitled “Information Storage Medium on which Mode Display Information is Recorded, and Playing Back Apparatus and Method therefor”, filed on Feb. 7, 2002 by the applicant of the present invention. The full-screen mode refers to a mode in which an AV picture is magnified and appears on the entire screen in an interactive mode. Furthermore, in the embodiment of FIG. 1, theplayback device200 may fetch a markup document from a network.
FIG. 2 illustrates a top view of the[0036]remote control400 of FIG. 1. Referring to FIG. 2, theremote control400 includes various functional keys. A ‘TV’button41 is utilized to view a broadcast signal received from an external source via theTV100. A ‘DVD’button42 is utilized to view a video title, according to the embodiment of FIG. 2, wherein the video title is AV data transmitted from theplayback device200 via theTV100. Numeral/special character keys43, used to choose channels, are arranged on an upper portion of theremote control400. A ‘Setup’button44 is a key utilized to call an on-screen display (OSD) menu to set up theplayback device200, an ‘H/E’button45 is a language conversion key, an ‘SP’button46 is a space key, and a ‘DEL’button47 is a delete key. A ‘Screen’button48 is a key that is used to convert a display mode of an AV picture into an interactive mode, i.e., from an embedded mode to a full-screen mode, a ‘Menu’button49 is a key that is used to call a menu screen, and a ‘Content’button50 is a key that is used to download predetermined information from the Internet.
[0037]Reference numerals52,53,54, and55 denote an up key, a left key, a down key, and a right key, respectively, which are direction keys to move focus or highlighted information in the interactive picture. An ‘OK’button51 is a key to select elements of a markup document containing focus or highlighted information or a menu.
[0038]Reference numerals56,57,58,59,60, and61 denote a preview key, a next key, a fastrewind key, a stop key, a play/pause key, and a fastforward key, respectively, which are keys to play back the video title. When a video title is played back, a user may convert the language of the audio portion using an ‘Audio’button62, language of the subtitles using a ‘Subtitle’button63, and the angle of a picture using an ‘Angle’button64.
A ‘Focus change’[0039]button65 is used to change to and from different domains in the interactive picture, i.e., to move a focus from an AV picture to a markup picture or from a markup picture to the AV picture. When a user presses the ‘Focus change’button65, a user input corresponding to the button pressed is processed according to an embodiment of the present invention. The detailed descriptions of this process will be explained later.
A ‘Return’[0040]button66 is used to move among hierarchies in a menu having a hierarchical structure. An ‘Exit’button67 is used to move from a menu screen to a playback screen of the video title. Theremote control400 shown in FIG. 2 has been used as an example to specifically manage theDVD300 on which the video title is recorded. Therefore, detailed functional keys of theremote control400 and the number of the functional keys may vary. Also, some of the functional keys may be put into the OSD menu. Alternatively, some items of the OSD menu may be realized as the functional keys.
FIG. 3 is a block diagram of the[0041]playback device200 of FIG. 1. Referring to FIG. 3, theplayback device200 includes areader2, anENAV engine3, anAV playback engine4, and ablender7.
The[0042]reader2 reads AV data, i.e., DVD-Video data and a markup document according to the present embodiment, from theDVD300 in response to a control signal output from theENAV engine3. The markup document contains at least one of first event information, second event information, and third event information as event information according to an embodiment of the present invention. The first event information is used to control an AV picture in an interactive mode, i.e., theAV playback engine4's operation of playing back the DVD-Video data. The second event information is used to prohibit a user input from being transmitted to theAV playback engine4. The third event information is used to control the operation of theENVA engine3 when the user input is forwarded to or prohibited from being forwarded to theAV playback engine4.
A first event occurs when the first event information is used, a second event occurs when the second event information is used, and a third event occurs when the third event information is used.[0043]
The[0044]AV playback engine4 plays back the read AV data. In an embodiment, since AV data is recorded as DVD-Video data, theAV playback engine4 is embodied as a DVD-Video data playback engine to play back DVD-Video data. TheAV playback engine4 communicates with theENAV engine3 via an application program interface (API). In other words, theAV playback engine4 informs theENAV engine3 of a property of the operational status thereof in response to a request made by theENAV engine3 and transmits a trigger to theENAV engine5. For example, when the movie ‘StarWars’ is shown in an interactive mode, the trigger informs theENAV engine3, before or after a point of time at which a war scene is to be displayed, that a quiz corresponding to the war scene is to be displayed in a markup picture when the war scene is displayed in an AV picture.
Moreover, when a key input event occurs via a predetermined key of the[0045]remote control400 pressed by the user, theAV playback engine4 receives the key input event via theENAV engine3. In other words, when the user presses the predetermined key of theremote control400, the key input event occurs and theAV playback engine4 is informed of the occurrence of the key input event so that theAV playback engine4 controls the DVD-Video data using the key input event. When the first event occurs, theAV playback engine4 performs an operation defined by the first event. However, as previously described, when the second event occurs, theAV playback engine4 cannot be informed of the occurrence of the key input event from the user.
The[0046]ENVA engine3 is an interpretation engine which verifies, interprets, and executes markup documents written in markup language, script language and/or other program languages. In an embodiment, theENAV engine3 verifies, interprets, and lays out a markup document in order to play back DVD-Video data which is recorded on theDVD300 in the interactive mode, in the interactive mode. In particular, when the first event information is recorded in the markup document and the first event occurs using the first event information, theENAV engine3 informs theAV playback engine4 of the occurrence of the first event. When the key input event corresponding to the user action occurs, theENAV engine3 may inform, by default, theAV playback engine4 of the occurrence of the key input event. In a case wherein the second event information is recorded in the markup document and the second event occurs using the second event information, theENAV engine3 may prohibit theAV playback engine4 from being informed of the occurrence of the key input event corresponding to the user action. Furthermore, in a case wherein the third event information is recorded in the markup document and the third event occurs using the third event information when the user input is forwarded directly to or prohibited from being forwarded to theAV playback engine4, theENAV engine3 performs an operation corresponding to the third event.
The[0047]ENAV engine3 may include various plug-ins. The plug-ins enable files of various formats contained in or linked to the markup document to be opened. For example, theENAV engine3 may call a WINDOWS MEDIA PLAYER to play back the AV data for the windows media player. Also, theENAV engine3 may be connected to a network to fetch necessary information such as markup documents or the like.
The[0048]blender7 blends and outputs a DVD-Video stream that has been played back with an interpreted markup document. Next, an interactive picture including amarkup picture22 and anAV picture21 is displayed on theTV100.
FIG. 4 is a partial block diagram to illustrate, in more detail, the operation of the[0049]ENAV engine3 of FIG. 3. Referring to FIG. 4, theENAV engine3 includes a parser &interpreter15, adecoder25, and aninterface handler35. When the key input event corresponding to the user action occurs, theinterface handler35 is informed of the occurrence of the key input event corresponding to the user action and informs, by default, theAV playback engine4 of the occurrence of the key input event.
The parser &[0050]interpreter15 parses a markup document and interprets the markup document and script codes recorded in the markup document. The script codes are used to control, dynamically, objects contained in the markup document in an interactive mode. An event serves as a trigger to activate an event handler (function) to control the objects. In other words, in an embodiment, the parser &interpreter15 interprets event information recorded in the markup document in markup language and/or script language and transmits a corresponding command to theinterface handler35 to handle the event according to the interpreted event information.
The[0051]interface handler35 converts a trigger transmitted from theAV playback engine4 into an event that may be interpreted by the parser &interpreter15, a status from theAV playback engine4 into a property that may be understood by the parser &interpreter15, and a command from the parser &interpreter15 into a control command that may be handled by theinterface handler35 or understood by theAV playback engine4.
In an embodiment, when the first event occurs using the first event information to control the AV picture in the interactive mode, the[0052]interface handler35 informs theAV playback engine4 of the occurrence of the first event. Also, when the key input event corresponding to the user action occurs, theinterface handler35 transmits the control command to theAV playback engine4 through a path A using an API command InputRCKey that has a KeyCode assigned to a key of theremote control400 as a parameter. In addition, when the second event occurs using the second event information, theinterface handler35 does not inform theAV playback engine4 of the occurrence of the key input event, even though the key input event corresponding to the user action occurs. Furthermore, when a user input to control the markup document in the interactive mode, i.e., the third event, occurs using the third event information, theinterface handler35 transmits the user input to the parser &interpreter15 so that the parser &interpreter15 may perform an operation corresponding to the user input.
The[0053]decoder25 decodes and renders interactive contents according to the command transmitted from the parser &interpreter15. The term “renders” refers to controlling the layout of pages of a markup document and the output of AV data.
Hereinafter, events according to an embodiment of the present invention will be described in detail. The first event information includes event registration information to check whether the user performs an action corresponding to the first event and event handling information to handle the first event by controlling the operation of the[0054]AV playback engine4. Here, the first event information is recorded in the markup document so that the first event occurs, the event registration information is used to register the first event, and the event handling information is used to handle the first event.
Example 1 of Realization of First Event[0055]
The registration of the first event is realized by a key input event listener to check whether the key input event occurs, and the handling of the first event is realized by a key input event handler to control the operation of the[0056]AV playback engine4.
Example 2 of Realization of First Event[0057]
The registration of the first event is realized by an on-click event defined in markup language, and the handling of the first event is realized by a function to allow the[0058]AV playback engine4 to perform an operation corresponding to the on-click event. Here, the key input event handler or the function serves to transmit a control command corresponding to a key or button pressed by a user to theAV playback engine4.
Source codes of a markup document according to Example 1 of Realization of First Event are represented as follows:
[0059] |
|
| <?xml version =“1.0” encoding=“UTF-8”?> |
| <!DOCTYPE html PUBLIC “-//DVD//DTD XHTML DVD- |
| HTML 1.0//EN” |
| “http://www.dvdforum.org/envideo/dtd/dvdhtml-1-0.dtd”> |
| <html> |
| <head> |
| <title>Example 1</title> |
| <script type= “text/javascript”> |
| function RcKeyEventHandler(evt) |
| { |
| if(evt.keyCode == 12) |
| dvdVideo.InputRCKey(12); |
| } |
| </script> |
| <script type= “text/javascript”> |
| function setupEventHandler( ) |
| { |
| // eventHandler is registered to bodyNode and Interactive Contents |
| bodyNode.addEventListener(“rckeypress”,RcKeyEventHandler,true); |
| } |
| </script> |
| </head> |
| <body id=“bodyNode” onload=“setupEventHandler( )” |
| .............................................................................. |
| </body> |
| </html> |
|
In the markup document according to Example 1 of Realization of First Event, the event registration information is written in JavaScript language as follows:
[0060] |
|
| <script type= “text/javascript”> |
| function setupEventHandler( ) |
| { |
| // eventHandler is registered to bodyNode and Interactive Contents |
| bodyNode.addEventListener(“rckeypress”,RcKeyEventHandler,true); |
| } |
| </script> |
|
As may be seen in the above event registration information, when an event ‘rckeypress’ occurs, i.e., a user presses a predetermined key of the[0061]remote control400, a function ‘RcKeyEventHandler’ is called.
The event handling information is written in JavaScript language as follows:
[0062] | |
| |
| <script type= “text/javascript”> |
| function RcKeyEventHandler(evt) |
| { |
| if(evt.keyCode == 12) |
| dvdVideo.InputRCKey(12); |
| } |
| </script> |
| |
As may be seen in the above event handling information, a function ‘RcKeyEventHandler’ executes dvdVideo.InputRCKey([0063]12) when a key code is12. In other words, when a code assigned to a key pressed by a user is12, theENAV engine3 transmits a corresponding control command to theAV playback engine4 using the command API dvdVideo.InputRCKey so that theAV playback engine4 performs a playback control operation assigned to thekey code12.
In other words, by registering a key input event of the[0064]remote control400 in the ‘body’ of a markup document, when the user presses a key of theremote control400, theENAV engine3 is informed of the occurrence of the key input event and informs theAV playback engine4 of the occurrence of the key input event. Playback of DVD-Video data may be controlled by a method in which a control command corresponding to the pressed key is transmitted to theAV playback engine4 when a markup document maker chooses one of the keys of theremote control400 and the user presses the chosen key.
Source codes of a markup document according to Example 2 of Realization of First Event are represented as follows:
[0065] |
|
| <?xml version =“1.0” encoding=“UTF-8”?> |
| <!DOCTYPE html PUBLIC “-//DVD//DTD XHTML DVD- |
| HTML 1.0//EN” |
| “http://www.dvdforum.org/envideo/dtd/dvdhtml-1-0.dtd”> |
| <html> |
| <head> |
| <title>Example 2</title> |
| <script type=“text/javascript”> |
| <-- |
| function Btn_PlayPause( ) |
| { |
| dvdVideo.InputRCKey(12); |
| } |
| --> |
| </script> |
| </head> |
| <body> |
| <table border=“0” width=“720” height=“480”> |
| <tr> |
| <td width=“277” height=“184” align=“left” valign=“top”> |
| <object data=“dvd:” width=“277” height=“184” border=“0”/> |
| </td> |
| <td width=“443” height=“480” align=“left” valign=“top” rowspan=“2”> |
| <img src=“b1.png” width=“443” height=“400 border=“0”/> |
| <button name=“PlayPause” value=“PLAY/PAUSE” |
| onclick=“Btn_PlayPause( )”> |
| </td> |
| </tr> |
| <tr> |
| <td width=“277” height=“296”> |
| <img src=“b2.png” width=“277” height=“296” border=“0”/> |
| </td> |
| </tr> |
| </table> |
| </body> |
| </html> |
|
In the markup document according to Example 2 of Realization of First Event, the event registration information is written in markup language as follows:
[0066] | |
| |
| <button name=“PlayPause ” value=“PLAY/PAUSE” |
| onclick=“Btn_PlayPause( )”> |
| |
In other words, as shown in FIG. 5, when an on-click event occurs in an interactive picture which is displayed with a[0067]markup picture16 that includes anAV picture26 and a ‘Play/Pause’ key36, i.e., a user presses the Play/Pause key36, a function ‘Btn_PlayPause( )’ is called.
The event handling information is written in JavaScript language as follows:
[0068] | |
| |
| <script type=“text/javascript”> |
| <-- |
| function Btn_PlayPause( ) |
| { |
| dvdVideo.InputRCKey(12); |
| } |
| --> |
| </script> |
| |
As may be seen in the above event handling information, a function ‘Btn_PlayPause’ executes an API command dvdVideo.InputRCKey([0069]12). In other words, when the user presses the ‘Play/Pause’ key36 displayed in the interactive picture, theENAV engine3 transmits a corresponding control command to theAV playback engine4 using the command API dvdVideo.InputRCKey so that theAV playback engine4 performs a playback control operation assigned to thekey code12.
The playback of DVD-Video data may be controlled according to the intention of the interactive content maker using a method by which the API command dvdVideo.InputRCKey(keyCode) is connected to an onclick( ) event of a button in a markup document so that a control command corresponding to the button is transmitted to the[0070]AV playback engine4 when the user clicks on the button.
As described above, when the[0071]AV playback engine4 is informed of the occurrence of the key input event corresponding to the user action by recording the first event information in the markup document, the interactive content maker may transmit the user input to theAV playback engine4.
Without using a method by which the first event information is recorded in the markup document to handle the key input event from the user, the[0072]ENAV engine3 may transmit a control command corresponding to the key input event as the default to theAV playback engine4 via the API command to handle the key input event.
The second event according to an embodiment of the present invention is realized by an API command EnableRCKInput( ). The API command EnableRCKInput( ) is used as an interface between the[0073]AV playback engine4 and theENAV engine3 that support playing back of interactive contents recorded on theDVD300, and is defined as follows:
[object]. EnableRCKeyInput(x)[0074]
1. Summary[0075]
This command serves to prohibit the user input from being transmitted to the[0076]AV playback engine4. In the present embodiment, {object} is dvdVideo.
2. Parameter[0077]
x=0: disable[0078]
x=1: enable[0079]
3. Return value
[0080]| 0 | OK | Successful |
| −1 | GeneralError | Unknown error condition |
|
When the second event, i.e., EnableRCKeyInput (0), occurs using the second event information recorded in the markup document in script language, the user input is transmitted to the[0081]ENAV engine3 and prohibited from being transmitted to theAV playback engine4. For example, if an interactive content maker desires to change the display of a markup document according to a predetermined user input, he or she makes a markup document containing the second event information to generate the API command EnableRCKeyInput to prohibit the user input from being transmitted to theAV playback engine4.
An example of a document in which the second event information is written is shown as follows:
[0082] |
|
| <?xml version =“1.0” encoding=“UTF-8”?> |
| <!DOCTYPE html PUBLIC “-//DVD//DTD XHTML DVD- |
| HTML 1.0//EN” |
| “http://www.dvdforum.org/envideo/dtd/dvdhtml-1-0.dtd”> |
| <html> |
| <head> |
| <title>Prevent Default</title> |
| <script type=“text/javascript”> |
| function RcKeyEventHandler(evt) |
| { |
| switch(evt.keyCode) |
| { |
| case 23 : evt.preventDefault( ); |
| case 24 : evt.preventDefault( ); |
| case 25 : evt.preventDefault( ); |
| case 26 : evt.preventDefault( ); |
| case 27 : evt.preventDefault( ); |
| } |
| } |
| </script> |
| <script type=“text/javascript”> |
| function setupEventHandler( ) |
| { |
| // eventHandler is registered to bodyNode and Interactive Contents |
| bodyNode.addEventListener(“rckeypress”,RcKeyEventHandler,true); |
| } |
| </script> |
| </head> |
| <body id=bodyNode” onload=“setupEventHandler( )” |
| ............................................................................. |
| </body> |
| </html> |
|
As seen in the above markup document, the[0083]AV playback engine4, which handles the markup document in which the second event information is written, does not perform operations corresponding to user inputs, i.e., inputs of thedirection keys52,53,54, and55 in which default operations are defined.
In such a situation, the content maker may further write the third event information that defines the operation of the[0084]ENAV engine3 responding to desired user inputs.
The third event information enables the[0085]ENAV engine3 to receive the user input and perform a predetermined operation even though the user input is directly transmitted to theAV playback engine4. As will be defined later with reference to FIGS. 6A and 6B, the third event information does not define any default operations except the ‘OK’ key51 and thedirection keys52,53,54, and55. Thus, even when any user inputs an instruction other than the ‘OK’ key51 and thedirection keys52,53,54, and55, theENAV engine3 does not operate. However, the markup document maker may record the third event information in the markup document so that the defined default operations are not performed. As a result, although the user presses the ‘OK’ key51 and thedirection keys52,53,54, and55, focus and highlight information are not moved.
FIGS. 6A and 6B each illustrate an example of “predetermined information concerning the operations of the[0086]AV playback engine4 and theENAV engine3”.
The “predetermined information on the operations of the[0087]AV playback engine4 and theENAV engine3” defines the operation of theAV playback engine4 and/or theENAV engine3 when the user presses keys of theremote control400, i.e., a key input event RCKeyEvent corresponding to a user action occurs. As defined above, in a case wherein the operations of theAV playback engine4 and theENAV engine3 are defined to correspond to the keys of theremote control400, a playback device maker and a content maker are highly likely to exist separately. Even in this case, a playback device and contents made according to the “predetermined information on the operations of theAV playback engine4 and theENAV engine3” are most likely to match. Also, even if a plurality of content makers exist, when contents are made using a user input handling method according to the present invention based on the “predetermined information on the operations of theAV playback engine4 and theENAV engine3”, the contents may match with theAV playback engine4 and be suitable for further interactively controlling AV contents and markup contents.
As may be seen in FIGS. 6A and 6B, default operations of the[0088]ENAV engine3 are mostly undefined. An interactive content maker may make a markup document using script language so that theENAV engine3 performs desired operations. A property ‘keyCode’ indicates predetermined key codes of keys pressed by a user and a property ‘keyName’ indicates names of the pressed keys. The descriptions of the operation of theAV playback engine4 are based on “DVD-Video Specifications for Read Only Disc/Part 3. Video Specifications Version 1.0”.
Notes 1), 2), 3), 4), 5), 6), 7), and 8) are explained below.[0089]
Note 1) Keys for which default operations of the[0090]ENAV engine3 are not set may be used as connection keys capable of directly focusing specific elements by using the property ‘keyCode’ or ‘keyName’ as an ‘accesskey’ property value in a markup document.
Note 2) For the ‘Screen’ key[0091]48, default operations of theENAV engine3 are not defined. However, if a markup document is made, in which script codes to support a full-screen mode in an interactive mode (embedment mode) are written, the following operations will be defined.
[object]. FullScreen(x)[0092]
1. Summary[0093]
DVD-Video data is set to an embedded mode or a full-screen mode. In the present embodiment, [object] is dvdVideo.[0094]
2. Parameter[0095]
x=0: set to an embedded mode[0096]
x=1: set to a full-screen mode[0097]
3. Return Value
[0098]| 0 | OK | Successful |
| −1 | General error | Unknown error condition |
|
Note 3) A focus moves to an object element of elements of a markup document embedding DVD-Video data and returns to a state for navigating DVD-Video data. In other words, highlighted information may be moved by the[0099]direction keys52,53,54, and55 shown in FIG. 2, and then a corresponding menu may be selected by the ‘OK’ key51 or DVD-Video data may be navigated by DVD playback control keys. An example of a method of navigating DVD-Video data is described in detail in Korean Patent Application No. 02-37515, entitled “Focusing Method in Interactive mode, and Apparatus and Information Storage Medium Therefor”, filed on Jun. 27, 2002 by the applicant of the present invention.
When DVD-Video data has already been navigated, the focus moves to the previously focused element of the markup document.[0100]
Note 4) The ‘Play/Pause’ key[0101]60 complies with the following algorithm to play back DVD-Video data and pause the playback of DVD-Video data. When the operation of theAV playback engine4, i.e., the playback of DVD-Video data, stops, a first playback program chain of DVD-Video data is played back. When DVD-Video data is being played back, a ‘Pause_On( )’ operation is carried out. When the playback of DVD-Video data pauses, a Pause_Off( ) operation is performed. The ‘Pause_On( ) and Pause_Off( )’ operations are user operation functions defined in “DVD-Video Specifications for Read Only Disc/Part 3. Video Specifications Version 1.0”.
Note 5) A title is played back by moving from a current part of title (PTT) number to a previous PTT number. If a PTT number one less than the current PTT number does not exist in the title, the last PTT number of a previous part of the title is played back. The title is played back by moving a first PTT number that is the smallest title number to a last PTT number that is the largest title number. PTT numbers are described in detail in the “DVD-Video Specifications for Read Only Disc/[0102]Part 3. Video Specifications Version 1.0”.
Note 6) A title is played back by moving a current PTT number to a next PTT number. If a PTT number one greater than the current PTT number does not exist in the title, a first PTT number of a next part of the title is played back. The title is played back by moving a last PTT number that is the largest title number to a first PTT number that the smallest title number.[0103]
Note 7) The change of a sub picture is performed. The sub picture is basically set so that it is not to be displayed on a screen. Thus, if a user desires to display the sub picture on the screen, the user has to change the defaults on the[0104]playback device200 to display the sub picture. Then, a specific sub picture stream having one of subpicture stream numbers0 through31, set in theplayback device200, is displayed. Whenever the user presses the ‘Subtitle’ key63, a sub picture stream, which has a sub picture stream number obtained by adding 1 to the specific sub picture stream number, is displayed. However, the sub picture stream always has the sub picture stream number zero after the last sub picture stream number. Changing the sub picture is described in detail in the “DVD-Video Specifications for Read Only Disc/Part 3. Video Specifications Version 1.0”.
Note 8) The change of an angle of a picture is carried out. The default is set to display the picture starting from an[0105]angle number1. Whenever the user presses the ‘Angle’ key64 to change a current angle, an angle number obtained by adding 1 to the current angle number is displayed. When the user re-presses the ‘Angle’ key64 when the last angle number is displayed, the last angle number is changed into theangle number1. Changing the angle is explained in detail in the “DVD-Video Specifications for Read Only Disc/Part 3. Video Specifications Version 1.0”.
Note 9) A change in audio preferences is performed. The basic default of the audio settings is set not to include or select an audio stream. After the audio stream is selected, an audio stream having an audio stream number obtained by adding 1 to a current audio stream number is displayed whenever the user presses the ‘Audio’ key[0106]62. When the user re-presses the ‘Audio’ key62 while a last audio stream number is being displayed, the last audio stream number is changed into theaudio stream number1. Changing the audio stream is described in detail in the “DVD-Video Specifications for Read Only Disc/Part 3. Video Specifications Version 1.0”.
The operations of the keys of ‘RCKeyEvent’ are defined below:
[0107] |
|
| interface RCKeyEvent : UIEvent { |
| const unsigned long VK_0 = 0; // keyCode is “0”, keyName is “0” |
| const unsigned long VK_1 = 1; // “1” |
| const unsigned long VK_2 = 2; // “2” |
| const unsigned long VK_3 = 3; // “3” |
| const unsigned long VK_4 = 4; // “4” |
| const unsigned long VK_5 = 5; // “5” |
| const unsigned long VK_6 = 6; // “6” |
| const unsigned long VK_7 = 7; // “7” |
| const unsigned long VK_8 = 8; // “8” |
| const unsigned long VK_9 = 9; // “9” |
| const unsigned long VK_A = 10; // keyCode is “10”, keyName is “A” |
| const unsigned long VK_B = 11; // “B” |
| const unsigned long VK_PLAY_PAUSE = 12; // “PlayPause” |
| const unsigned long VK_STOP = 13; // “Stop” |
| const unsigned long VK_FF= 14; // “FastForward” |
| const unsigned long VK_FR= 15; // “FastRewind” |
| const unsigned long VK_SKIP_PREV = 16; // “Prev” |
| const unsigned long VK_SKIP_NEXT = 17; // “Next” |
| const unsigned long VK_SUBTITLE = 18; // “Subtitle” |
| const unsigned long VK_ANGLE = 19; // “Angle” |
| const unsigned long VK_AUDIO = 20; // “Audio” |
| const unsigned long VK_ROOTMENU = 21; // “RootMenu” |
| const unsigned long VK_TITLEMENU = 22; // “TitleMenu” |
| const unsigned long VK_UP = 23; // “Up” |
| const unsigned long VK_LEFT = 24; // “Left” |
| const unsigned long VK_RIGHT = 25; // “Right” |
| const unsigned long VK_DOWN = 26; // “Down” |
| const unsigned long VK_OK = 27; // “OK” |
| const unsigned long VK_RETURN = 28; // “Return” |
| const unsigned long VK_EXIT = 29; // “Exit” |
| const unsigned long VK_CONTENT_INFO = 30; // “Content” |
| const unsigned long VK_SCREEN_MODE = 31; // “Screen” |
| const unsigned long VK_FOCUS_CHANGE = 32; // “FocusChange” |
| readonly attribute unsigned long keyCode; |
| readonly attribute DOMString keyName; |
| void initRCKeyEvent (in DOMString typeArg, |
| in boolean canBubbleArg, |
| in boolean cancelableArg, |
| in unsigned long keyCode, |
| in unsigned long keyName); |
|
A method of handling user inputs in an interactive mode according to an embodiment of the present invention will be described below, based on the above-described structure.[0108]
FIG. 7 is a flowchart to illustrate operations of a method of handling a user input in an interactive mode, according to an embodiment of the present invention. Referring to FIG. 7, in[0109]operation701, a determination is made as to whether a key input event occurs as a first event according to first event information recorded in a markup document or via a predetermined key of theremote control400 pressed by a user. If inoperation701, it is determined that the key input event occurs, inoperation702, theAV playback engine4 is informed of the occurrence of the key input event via theENAV engine3. Inoperation703, a determination is made as to whether a second event occurs. If inoperation703, it is determined that the second event occurs, inoperation704, theENAV engine3 prohibits theAV playback engine4 from being directly informed of the occurrence of the key input event.
Meanwhile, if in[0110]operation703, the key input event matches with the second event information recorded in the markup document so that the second event occurs, inoperation704, theENAV engine3 transmits a control command corresponding to the second event to theAV playback engine4.
FIG. 8 is a flowchart to illustrate operations of a method of handling a user input in an interactive mode, according to another embodiment of the present invention. Referring to FIG. 8, in[0111]operation801, a determination is made as to whether a key input event occurs as a first event according to first event information recorded in a markup document or via a predetermined key of theremote control400 pressed by a user. If inoperation801, it is determined that the key input event occurs, inoperation802, theAV playback engine4 is informed of the occurrence of the key input event via theENAV engine3. Inoperation803, a determination is made as to whether a third event occurs. If inoperation803, it is determined that the third event occurs, inoperation804, theENAV engine3 performs a predetermined operation corresponding to the third event.
FIG. 9 is a flowchart to illustrate operations of a method of handling a user input in an interactive mode, according to still another embodiment of the present invention. Referring to FIG. 9, in[0112]operation901, a user presses a predetermined key of theremote control400. Inoperation902, a key input event occurs. Inoperation903, theinterface handler35 of theENAV engine3 handles the key input event by transmitting a playback control command corresponding to the key input event to theAV playback engine4.
FIG. 10 is a flowchart to illustrate operations of a method of handling a user input in an interactive mode, according to yet another embodiment of the present invention. Referring to FIG. 10, in[0113]operation1001, a user presses a predetermined key of theremote control400. Inoperation1002, a key input event occurs and theinterface handler35 of theENAV engine3 is informed of the occurrence of the key input event, and theinterface handler35 of theENAV engine3 informs theAV playback engine4 of the occurrence of the key input event. Inoperation1003, theAV playback engine4 performs an operation corresponding to the key input event. For example, when the user presses the ‘fasffoward’ key61, theAV playback engine4 performs a ‘FORWARD_SCAN(SPEED)’ operation according to the “predetermined information on the operations of theENAV engine3 and theAV playback engine4” illustrated in FIGS. 6A and 6B.
FIG. 11 is a flowchart to illustrate operations of a method of handling a user input in an interactive mode, according to still yet another embodiment of the present invention. Referring to FIG. 11, in[0114]operation1101, a user clicks on a button made in a markup document. Inoperation1102, an onclick event occurs. Inoperation1103, theinterface handler35 of theENAV engine3 handles the onclick event by transmitting a playback control command corresponding to the onclick event to theAV playback engine4.
As described above, the present invention provides a method of effectively handling interactive contents using a limited user input device in an interactive mode, and an apparatus and information storage medium therefor. Accordingly, a user input may be transmitted to an ENAV engine, and then the ENAV engine may transmit a playback control command corresponding to the user input to an AV playback engine, or the user input may be transmitted directly to the AV playback engine without passing through the ENAV engine. As a result, markup and AV contents may be interactively controlled in the interactive mode.[0115]
In other words, conventional modes and definitions for user inputs used by a markup document viewer to interpret and display a markup document, e.g., a browser, may be employed in the present invention. Also, user inputs may be effectively handled in the interactive mode. Therefore, a user may conveniently navigate an interactive picture (a markup picture and an AV picture) or control an object (contained in the markup document) displayed in the interactive picture without confusing a key input.[0116]
The above-described method of handling a user input in an interactive mode may be written as a computer program. Codes and code segments of the computer program may be easily analogized by a computer program. Also, the computer program is stored in a computer-readable medium and is read and executed by a computer so that the method of handling a user input in an interactive is realized. Computer-readable media may include magnetic recording media, optical recording media, and carrier wave media.[0117]
Although a few embodiments of the present invention have been shown and described, it would be appreciated by those skilled in the art that changes may be made in this embodiment without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.[0118]