声明性地响应交互式多媒体环境中的状态变化的制作方法

文档序号:6776677阅读:136来源:国知局

专利名称::声明性地响应交互式多媒体环境中的状态变化的制作方法声明性地响应交互式多媒体环境中的状态变化相关申请的声明本申请要求于2005年7月1日提交的(美国)临时申请第60/695,944号的优先权,该申请通过引用被包含在此。背景多媒体播放器是呈现视频、音频或数据内容的组合("多媒体演示")供用户消费的设备。诸如DVD播放器等多媒体播放器当前在视频内容播放期间并不提供许多(如果有的话)用户交互——通常中断视频内容播放来接收用户输入而非播放速度调节。例如,DVD播放器的用户一般必须停止他正在播放的电影以返回到包括允许他选择和接收诸如音频解说、演员传记、或游戏等特征的各选项的菜单。交互式多媒体播放器是与传统的视频、音频或数据内容并发地呈现交互式内容的组合("交互式多媒体演示")的设备(这样的设备可包括硬件、软件、固件或其任何组合)。尽管任何类型的设备可以是交互式多媒体播放器,但诸如光学介质播放器(例如,DVD播放器)、计算机、和其它电子设备等设备尤其适用于允许创建有商业价值的交互式多媒体演示,且允许消费者对其的需求,因为它们提供了对大量相对较不昂贵、便携的数据存储的访问。交互式内容一般是任何用户可选的可视或可听对象,它们可单独演示或与其它视频、音频或数据内容并发演示。一种类型的可视对象是图形对象,诸如圆圈,它可用于标识和/或跟随视频内容内的某些事物——例如,出现在电影中的人、汽车或建筑物。一种类型的可听对象是被播放来指示用户已使用了诸如遥控器或鼠标等设备选择了诸如圆圈等可视对象的的点击声。交互式内容的其它示例可包括,但不限于,菜单、文字说明和动画。为了增加对交互式多媒体播放器和交互式多媒体演示的投资,期望确保交互式多媒体演示中的交互式内容组成部分与这样的演示中的传统视频、音频或数据内容组成部分的准确同步。准确同步一般对视频、音频或数据内容组成部分的可预测且无假信号的播放给予优先级。例如,当在电影中的汽车周围呈现一圆圈时,电影一般不应暂停以等待该圆圈被绘制完成,且在汽车移动时,该圆圈应跟随它。许多交互式多媒体环境当前是在通常出于成本原因而特意在"瘦"播放器,即处理能力、存储器和其它资源方面资源受到约束的计算平台上实现的,或者计划在这样的平台上实现。为有效地利用可用资源,运行在播放器上的应用程序使用通常导致更简单且较不处理器密集的程序设计的声明性方法可能是合乎需要的。在声明性程序设计范例中,获得期望结果所需的语义在该结果的描述中是隐含的。通常不需要提供一单独的过程(即,编写脚本或嵌入可执行代码)来获得期望的结果。应用程序作者使用声明性程序设计来生成通常以断言的形式来表达的声明性内容。例如,网页通常被认为是声明性的,因为它们描述了该页面应当看上去如何一例如,标题、字体、文本、图像一但没有描述如何在计算机显示器上实际呈现这些图形和网页。诸如浏览器或交互式媒体播放器应用程序等另一应用程序取声明性内容来呈现图形以满足作者的目标。声明性方法与过程性方法(也成为"命令性"方法)形成对比,过程性方法使用诸如Fortran、C和Java等传统语言,这一般需要程序员指定要运行来控制或操纵交互式媒体播放器的算法。由此,声明性程序使目标变得明确,并且保持算法是隐含的,而命令性程序使得算法明确,但保持目标是隐含的。注意,应用程序不必是单纯声明性或单纯过程性的。声明性应用程序通常利用了本质上本身为过程性的脚本,并且可在声明性应用程序中嵌入过程性对象。声明性程序设计语言的常见示例包括HTML(超文本标记语言)和XML(可扩展标记语言)。这是组合文本与被称为"标签"的补充或描述文本的信息的两种标记语言。"XML"是较新的语言,通过对用户创建标签的支持,由于其可扩展性,可以看到XML越来越多地用于创建图形、用户界面、web服务(诸如电子购物和web搜索)以及其它功能,其中标签是关于该标签的准许的使用来描述和定义的。因此,XML提供了一种应用程序用于为用户生成交互体验的灵活且直截了当的工具。然而,由于标记语言固有的声明性本质,因此作者当前可能难以编写能够对交互式多媒体环境中的变化进行响应的应用程序。即,交互式多媒体通常在动态环境中操作,其中运行在播放器上的应用程序的状态在视频内容进展并且系统(即,播放器及其应用程序)接收到诸如用户输入等事件时改变。因此,尽管许多交互式多媒体安排能够非常令人满意地执行,但是对于使用声明性方法的安排而言,能够捕捉并响应该环境中的状态变化同时保持高度的资源效率仍是合乎需要的。可以理解,所要求保护的主题不限于解决特定交互式多媒体演示系统或其各方面的任何或所有缺点的实现。概述使用声明性语言应用程序指令,与播放交互式多媒体演示的交互式内容相关联的动作基于特定媒体对象的状态变化而有条件地触发。媒体对象包括,例如通常与交互式多媒体演示中的视频并发地演示的用户可选择的可视或可听对象。某些声明性应用程序指令指定了媒体对象的特性,而其它声明性应用程序指令指定了基于一个或多个属性状态变化的、与播放或呈现该交互式内容相关联的动作。在一个说明性示例中,状态变化是通过查询诸如文档对象模型("DOM")等应用程序的结构化表示来检测的,该模型包括与应用程序指令、媒体对象和/或特性相关联的节点。当检测到状态变化时,触发一个或多个所指定的动作,以声明性地响应状态变化。在一个说明性示例中,内容元素属性包括选自前景(Foreground)、已启用(Enabled)、已聚焦(Fo腿sed)、已作用(Actioned)、指针(Pointer)和值(Value)的属性,它们在DOM中排列,并使用XPATH查询来递归地内观(introspect)。与这些属性相关联的值通常在交互式媒体演示期间改变,并且这些值确定用户交互或事件被如何分发到运行在交互式多媒体演示中的应用程序。提供该概述以便以简化的形式介绍一些概念。这些概念将在详细描述一节中进一步描述。除概述中所述的以外的元素或步骤是可能的,且没有任何元素或步骤是必需的。该概述并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用来协助确定所要求保护的主题的范围。附图简述图1是交互式多媒体演示系统的简化功能框图2是可从图1中所示的播放列表中查明的说明性演示时间线的图示;图3是与图1中所示的交互式多媒体演示相关联的应用程序的简化的功能框图4是更详细示出图1的定时信号管理块的简化的功能框图5是示出,对于连续定时信号,说明性事件对图4中所示的某些时间基准的值的影响的示意图6是使用图3所示的某些应用程序指令来播放交互式多媒体演示的方法的流程图7是可结合图6所示的方法的各方面来使用的文档对象模型的图示;图8是可结合图1中所示的交互式多媒体演示系统的各方面使用的通用计算单元的简化的功能框图9是可在其中实现或使用图1中所示的交互式多媒体演示系统的操作系统的说明性配置的简化的功能框图;以及图IO是可在其中实现或使用图1中所示的交互式多媒体演示系统的客户机一服务器体系结构的简化的功能框图。详细描述一般而言,交互式多媒体演示包括视频内容组成部分和交互式内容组成部分。视频内容组成部分为说明起见而被称为电影,但是实际上可以是视频、音频、数据或其任何组合。演示的交互式内容组成部分被安排成由交互式内容管理器以基于一定时信号的速率来呈现,该组成部分采用一个或多个应用程序的形式。应用程序包括声明性形式(例如,XML"标记")或脚本形式的指令。提供应用程序指令用于组织、格式化和同步媒体对象对用户的演示,该演示通常是与视频内容组成部分并发进行的。应用程序的脚本和标记组成部分可分别通过使用脚本API(应用程序编程接口)或标记API来调用各种方法或服务。此处所讨论的方法、系统、装置和制品使用了声明性形式的应用程序指令来触发与播放交互式多媒体演示的交互式内容组成部分相关联的动作。如上所述可使用的应用程序指令的示例包括标记元素和属性。媒体对象的特性可由与媒体对象相关联的内容元素的样式或非样式属性来指定。某些可使用的属性由一个或多个XML模式来定义。例如,由DVD论坛(DVDForum)发布的一个或多个XML模式阐明了基于在交互式高清晰度DVD电影的播放期间接收到的用户输入来改变值的属性。与播放交互式内容相关联的动作还可在定时、样式和动画元素内指定。可用此方式使用的某些元素在由DVD论坛发布的XML模式中阐明。其它元素由万维网联盟("W3C")公布的用于同步的多媒体集成语言("SMIL")的XML模式来定义。可使用XPATH查询来查询诸如DOM等应用程序的结构化表示,以检测属性的值以及这些值的变化。现在转向附图,其中同样的参考标号指定同样的组件,图1是交互式多媒体演示系统("演示系统")100的简化的功能框图。演示系统100包括音频/视频内容("AVC")管理器102、交互式内容("IC")管理器104、演示管理器106、定时信号管理块108、以及混合器/呈现器110。一般而言,设计选择规定了如何实现演示系统100的特定功能。这样的功能可使用硬件、软件或固件、或其组合来实现。在操作中,演示系统100处理交互式多媒体演示内容("演示内容")120。演示内容120包括视频内容组成部分("视频组成部分")122和交互式内容组成部分("IC组成部分")124。视频组成部分122和IC组成部分124—般,但不一定分别由AVC管理器102和IC管理器104作为单独的数据流来处理。演示系统100也便于将演示内容120作为已播放演示127向用户(未示出)演示。已播放演示127表示与由混合器/呈现器110产生且可由用户通过诸如显示器或扬声器(未示出)等设备接收的演示内容120相关联的可视和/或可听信息。为讨论起见,假定演示内容120和已播放演示127表示任何格式的高清晰度DVD电影内容。然而,可以理解,演示内容120和已播放演示127可以是现在已知或将来开发的任何类型的交互式多媒体演示。视频组成部分122表示演示内容120中的传统视频、音频或数据组成部分。例如,电影一般具有一个或多个版本(例如,针对成年观众的一个版本、以及针对年轻观众的一个版本);一个或多个标题131,其具有与每一标题相关联的一个或多个章节(未示出)(标题在以下结合演示管理器106进一步描述);一个或多个音轨(例如,电影可使用一种或多种语言来播放,带有或不带有字幕);以及诸如导演的评论、附加镜头、预告片等。可以理解,标题与章节之间的区别纯粹是逻辑上的区别。例如,单个可感知的媒体片段可以是单个标题/章节中的一部分,或可由多个标题/章节组成。由内容创作源来确定适用的逻辑区别。也可理解,尽管视频组成部分122被称为电影,但视频组成部分122实际上可以是视频、音频、数据或其任何组合。形成视频组成部分122的视频、音频或数据的各组样本被称为剪辑123(剪辑123在视频组成部分122、AVC管理器120和播放列表128内示出)。参考AVC管理器102,与剪辑123相关联的信息从一个或多个媒体源160接收并在解码器块161处解码。媒体源是可从中导出或获取视频、音频或数据的任何设备、位置或数据。媒体源的示例包括但不限于,网络、硬盘驱动器、光学介质、备用的物理盘以及引用特定视频、音频或数据的存储位置的数据结构。解码器块161表示用于从自媒体源160接收的信息中检索可呈现视频、音频或数据内容的任何设备、技术或步骤。解码器块161可包括例如编码器/解码器对、多路分解器、或解密器。尽管示出了解码器与媒体源之间的一对一关系,但可以理解,一个解码器可服务于多个媒体源,反之亦然。音频/视频内容数据("A/V数据")132是与视频组成部分122相关联的数据,这些数据被准备来由AVC管理器120呈现并被传输给混合器/呈现器110。A/V数据134的帧通常对每一活动剪辑123包括剪辑中的一部分的呈现。在特定帧中呈现的剪辑的精确部分或量可基于若干因素,诸如剪辑的视频、音频或数据内容的特征、或用于对该剪辑编码或解码的格式、技术或速率。再次参考演示内容120,IC组成部分124包括媒体对象125以及用于演示可视或可听对象的任何指令(被示为应用程序155,并在以下进一步讨论),媒体对象是用户可选择的可视或可听对象,它可任选地可与视频组成部分122并发地演示。媒体对象125可以是静态或动画的。媒体对象的示例包括视频样本或剪辑、音频样本或剪辑、图形、文字及其组合等。媒体对象125源自一个或多个源(未示出)。源可以是可从中导出或获取媒体对象的任何设备、位置或数据。媒体对象125的源的示例包括但不限于,网络、硬盘驱动器、光学介质、备用物理盘、以及引用特定媒体对象的存储位置的数据结构。媒体对象125的格式的示例包括但不限于,可移植网络图形("PNG")、联合图片专家组("JPEG")、运动图片专家组("MPEG")、多图像网络图形("MNG")、音频视频交错("AVI")、可扩展标记语言("XML")、超文本标记语言("HTML")、可扩展HTML("XHTML")、可扩展样式表语言("XSL")以及WAV。应用程序155提供演示系统100用于向用户演示媒体对象124的机制。应用程序155表示电子地控制对数据的预定操作的任何信号处理方法或已存储的指令。为讨论起见,假定IC组成部分124包括三个应用程序155,它们将在以下结合图2和3来讨论。第一应用程序在电影之前演示版权通知,第二应用程序与电影的视频方面并发地演示提供具有多个用户可选择项的菜单的某些媒体对象,第三应用程序演示提供可用于标识和/或跟随出现在电影中的一个或多个项(例如,人、汽车、建筑物或产品)的图形覆盖物(诸如,圆圈)的一个或多个媒体对象。交互式内容数据("IC数据")134是与IC组成部分124相关联的数据,它被准备来由IC管理器104呈现并被传输给混合器/呈现器110。每一应用程序具有一相关联的队列(未示出),该队列保存与呈现应用程序相关联的一个或多个工作项(未示出)。演示管理器106被配置成与AVC管理器104和IC管理器102两者通信,它便于对演示内容120的处理以及已播放演示127向用户的演示。演示管理器106能访问播放列表128。播放列表128包括可向用户演示的剪辑123和应用程序155(包括媒体对象125)的时间排序序列等。剪辑123和应用程序155/媒体对象125可被安排成形成一个或多个标题131。为说明起见,此处讨论一个标题131。播放列表128可使用可扩展标记语言("XML")文档或另一数据结构来实现。演示管理器106使用播放列表128来査明标题131的演示时间线130。概念上,演示时间线130指示标题131内何时可向用户演示特定剪辑123和应用程序155的时间。结合图2示出并讨论了示例演示时间线130,它示出了剪辑123和应用程序155的演示之间的说明性关系。在某些情况中,使用播放列表128和/或演示时间线130来査明视频内容时间线("视频时间线")142和交互式内容时间线("IC时间线")144也是有用的。演示管理器106向AVC管理器102和IC管理器104提供信息,包括但不限于关于演示时间线130的信息。基于来自演示管理器206的输入,AVC管理器102准备好A/V数据132以便呈现,IC管理器104准备好IC数据134以便呈现。定时信号管理块108产生各种定时信号158,这些信号被用于控制AVC管理器102和IC管理器104分别对A/V数据132和IC数据134进行的准备和产生的定时。具体地,定时信号158被用于实现A/V数据132和IC数据134的帧级同步。定时信号管理块108和定时信号158的细节将在以下结合图4进一步讨论。混合器/呈现器在视频平面(未示出)中呈现A/V数据132,并在图形平面(未示出)中呈现IC数据134。图形平面一般,但不一定被覆盖在视频平面上以便为用户产生已播放演示127。继续参考图1,图2是播放列表128内的标题131的示例演示时间线130的图示。时间在水平轴220上示出。关于视频组成部分122(示出了剪辑123)和IC组成部分(示出了演示媒体对象125的应用程序155)的信息在垂直轴225上示出。关于视频组成部分122——示出了两个剪辑123,第一视频剪辑("视频剪辑l")230和第二视频剪辑("视频剪辑2")250。关于IC组成部分124,如以上结合图l所述,第一应用程序负责演示构成版权通知260的一个或多个媒体对象(例如,图像和/或文字)。第二应用程序负责演示提供菜单280的用户可选项(例如,带有相关联文字或图形的按钮)的某些媒体对象。第三应用程序负责演示提供图形覆盖物290的一个或多个媒体对象。如图所示,菜单280与视频剪辑1230和视频剪辑2250并发地显示,而图形覆盖物290可与视频剪辑1230和菜单280并发地显示。沿水平轴220的其中可向用户演示标题131的特定时间量被称为标题131的播放持续时间292。播放持续时间292内的特定时间被称为标题时间。在演示时间线130上示出了四个标题时间("TT")——TT1293、TT2294、TT3295和TT4296。因为标题可被播放一次或一次以上(例如,以循环方式),所以基于标题131的一次重复来确定播放持续时间292。播放持续时间292可关于任何所需基准来确定,包括但不限于,预定播放速度(例如,正常即lx播放速度)、预定帧速率或预定的定时信号状态。播放速度、帧速率和定时信号将在以下结合图4进一步讨论。可以理解,诸如显示技术和关于播放序列和每一标题的剪辑和媒体对象之间的定时关系的特定规则等实现专用因素都会影响标题的播放持续时间及其中的标题时间的精确值。术语播放持续时间和标题时间旨在包括所有这样的实现专用细尽管可演示与IC组成部分124相关联的内容的标题时间一般是预定的,但可以理解,在用户与这样的内容交互时所采取的动作可仅基于播放已播放演示127时用户的输入来确定。例如,用户可在已播放演示127的播放期间选择、激活或停用某些应用程序、媒体对象和/或与之相关联的附加内容。也在此处定义和讨论播放持续时间292内的其它时间和/或持续时间。视频演示间隔240由播放持续时间292的开始和结束时间来定义,在此期间可播放与视频组成部分122相关联的特定内容。例如,视频剪辑1230具有在标题时间TT2294与TT4296之间的演示间隔240,而视频剪辑2250具有在标题时间TT3295与TT4296之间的演示间隔240。应用程序演示间隔、应用程序播放持续时间、页演示间隔、以及页持续时间也在以下结合图3来定义和讨论。继续参考图1和2,图3是单个应用程序155的功能框图。应用程序155—般表示负责演示媒体对象260、280和290(图2所示)的应用程序。应用程序155包括指令304(以下进一步讨论),包括内容指令302、定时指令306、脚本指令308、样式指令310、媒体对象指令312和事件指令360。应用程序155具有与之相关联的零个或多个资源包数据结构340(以下进一步讨论)、应用程序播放持续时间320、以及一个或多个应用程序演示间隔321。应用程序播放持续时间320是特定的时间量,指的是其中可向已播放演示127的接收方演示和/或可由其选择与应用程序155相关联的媒体对象125的一定量(一部分或全部)的播放持续时间292。在图2的上下文中,例如负责版权通知260的应用程序155具有由TT1293和TT2294之间的时间量组成的应用程序播放持续时间。负责菜单3卯的应用程序具有由TT2294和TT4296之间的时间量组成的应用程序播放持续时间。负责图形覆盖物290的应用程序具有由TT2294与TT3295之间的时间量组成的应用程序播放持续时间。当与特定应用程序相关联的应用程序播放持续时间在演示时间线上概念化时获取的由开始和结束标题时间所定义的间隔被称为应用程序演示间隔321。例如,参考图2,负责版权通知260的应用程序具有开始于TT1293并结束于TT2294的应用程序演示间隔,负责菜单280的应用程序具有开始于TT2294并结束于TT4296的应用程序演示间隔,负责图形覆盖物290的应用程序具有开始于TT2294并结束于TT3295的应用程序演示间隔。再次参考图3,在某些情况中,应用程序155可具有一个以上的页。页是在特定应用程序播放持续时间320和/或应用程序演示间隔321内可同时演示的一个或多个媒体对象的逻辑分组。示出了初始页330和后续页335。每一页又具有其自己的页持续时间。页持续时间是特定的时间量,指的是其中向用户演示(和/或由用户选择)与特定页相关联的媒体对象125的一定量(一部分或全部)的应用程序播放持续时间330。如图所示,初始页330具有页持续时间332,后续页335具有页持续时间337。与特定页相关联的媒体对象可并发地、串行地或按其组合来演示。如图所示,初始页330具有相关联的初始媒体对象331,后续页335具有相关联的媒体对象336。当与特定页相关联的页持续时间在演示时间线上概念化(见图2)时所获取的由开始和结束标题时间所定义的间隔被称为页演示间隔343。页演示间隔343是应用程序演示间隔321中可演示特定媒体对象331、336的子间隔。特定的媒体对象演示间隔345也可在页演示间隔343内定义。与给定标题相关联的应用程序和页的数目,以及与每一应用程序或页相关联的媒体对象一般是逻辑上的区别,这是设计选择的问题。例如,对特定初始页的指定不是必需的、可并发地演示应用程序一个以上的页、或者可从没有页(或不包含任何内容的初始页)来开始应用程序。应用程序的页可被加载和卸载,同时保持应用程序和脚本原封不动。当期望管理(例如,限制)与应用程序相关联的、在应用程序执行期间被加载到存储器内的资源的数目或数量时,可使用多个页。应用程序的资源包括应用程序所使用的媒体对象、以及用于呈现媒体对象的指令304。例如,当带有多个页的应用程序可被演示时,有可能仅将与应用程序的当前可演示页相关联的那些资源加载到存储器中。资源包数据结构340被用于便于将应用程序资源加载到存储器中(可任选地,在应用程序执行之前)。资源包数据结构340引用应用程序的资源所处的存储器位置。资源包数据结构340可与其所引用的资源一起或分开地存储在任何期望的位置。例如,资源包数据结构340可被安置在诸如高清晰度DVD等光学介质上,位于与视频组成部分122分开的区域中。或者,资源包数据结构340可被嵌入到视频组成部分122中。在又一替换中,资源包数据结构可放置在远程位置。远程位置的一个示例是联网的服务器。涉及处理用于应用程序执行的资源以及在应用程序之间的转换的主题将不在此处详细讨论。再次参考应用程序155本身,当指令304被执行时,它基于用户输入执行关于呈现与应用程序155相关联的媒体对象125的任务。一种类型的用户输入(或其结果)是用户事件。用户事件是由已播放演示127的接收方启动的涉及IC组成部分124的动作或发生的事情。用户事件一般,但不一定是异步的。用户事件的示例包括但不限于,用户与已播放演示127内的媒体对象的交互,诸如对菜单280内的按钮的选择、或对与图形覆盖物290相关联的圆圈的选择。这样的交互可使用现在已知或将来开发的任何类型的用户输入设备来进行,包括键盘、遥控器、鼠标、指示笔、或语音命令。可以理解,应用程序155可响应除用户事件以外的事件,诸如系统事件、文档对象模型事件或其它类型的事件。在一个实现中,指令304是编码在计算机可读介质(以下结合图8和9进一步描述)内的计算机可执行指令。在此处所述的示例中,使用脚本308或标记元素302、306、310、312、360来实现指令304。尽管可单独使用脚本或标记元素中的任何一个,但一般而言,脚本和标记元素的组合允许创建高清晰度DVD电影的一组综合的交互式能力。脚本308包括以非声明性程序设计语言,诸如命令性程序设计语言编写的指令304。命令性程序设计语言按照将由处理器执行的命令的序列来描述计算。在使用脚本308的大多数情况中,使用脚本来响应用户事件。然而,脚本可用于其它上下文中,诸如处理单独使用标记元素不容易或不能高效实现的问题。这样的上下文的示例包括系统事件、状态管理和资源管理(例如,访问高速缓存的或持久存储的资源)。在一种实现中,脚本308是如由国际欧洲计算机制造协会(ECMAInternationa)在ECMA-262规范中定义的ECMAScript。落入ECMA-262中的常用的脚本化程序设计语言包括JavaScript和Jscript。在某些设置中,可能期望使用ECMAScript262的子集来实现308。标记元素302、306、310、312和360表示以声明性程序设计语言,诸如可扩展标记语言("XML")编写的指令304。在XML中,元素是XML文档内使用开始标签和结尾标签定义的逻辑信息单元。XML文档是由被称为实体(也被称为容器)的存储单元组成的数据对象,这些存储单元包含已经解析或未解析的数据。已解析的数据由字符组成,其中某些字符形成字符数据,某些字符形成标记。标记对文档的存储布局和逻辑结构的描述编码。在XML文档中存在一个根元素,其任何部分都不在任何其它元素的内容中出现。对所有的其它元素,开始标签和结尾标签位于其它元素的内容内,彼此嵌套。XML模式是一类XML文档的句法的定义。。某些XML模式由万维网联盟("W3C")定义。DVD论坛公布了其它XML模式,用于遵循高清晰度视频的DVD规范的XML文档以及其它用途。可以理解,有可能有高清晰度DVD电影的其它模式以及其它交互式多媒体演示的模式。在较高层次上,XML模式包括(1)全局元素声明,它将元素名与元素类型相关联,以及(2)类型定义,它定义该类型元素的属性、子元素和字符数据。元素的属性使用名/值对来指定元素的特定特性,诸如以下描述的样式特性和状态特性,一个属性指定单个元素特性。可包括事件元素260的内容元素302被用于标识可由应用程序155向用户演示的特定媒体对象元素312。媒体对象元素312—般又指定安置定义特定媒体对象125的数据的位置。这样的位置可以是,例如本地或远程存储中的位置,包括光学介质、有线或无线、公共或专用网络、诸如因特网、私人管理的网络或万维网上的位置。媒体对象元素312所指定的位置也可以是对位置的引用,诸如对资源包数据结构340的引用。以此方式,媒体对象125的位置可被间接指定。定时元素306被用于指定特定内容元素302可由特定应用程序155向用户演示的时间或时间间隔。定时元素的示例包括XML文档的时间容器内的并行(par)、定时或串行(seq)元素。某些定时元素由W3C公布的用于同步多媒体集成语言("SMIL")的标准来定义。其它定时元素由DVD论坛公布的标准(例如,用于高清晰度视频的DVD规范)来定义。这些标准为所有目的通过引用结合于此。与用于声明性语言文档的其它定时模型相关联的不同定时元素也是可能的。样式元素310(以及相应的样式属性)一般用于指定可由特定应用程序向用户演示的特定内容元素302的外观。某些样式元素由W3C和/或DVD论坛在一种或多种已公布的规范中定义。由W3C公布的规范的示例包括涉及XSL的规范以及涉及层叠样式表("CSS")的规范。事件元素360是具有用户指定的名称以及一组可变的用户定义参数的元素,它可用于标识在标记DOM的回放期间特定条件的发生。在一个说明性示例中,事件元素仅由脚本来消费。由此,事件元素是包含在定时元素(例如,定时元素306)构造内的、用于向脚本(例如,脚本308)通知可由其句法描述的任何类型的条件的声明性元素。事件标签可从由W3C指定的事件标签中导出,或者可与其类似,或者事件标签可以与由W3C指定的事件标签不同。标记元素302、306、310、360具有可用于指定其相关联媒体对象元素312/媒体对象125的某些特性的属性,由此既同步了标记元素的呈现,又协调了标记中声明的事件的激活。在一个说明性实现中,这些属性/特性表示一个或多个时钟或定时信号(以下结合图4进一步描述)的值。使用具有表示时间或持续时间的特性的标记元素的属性是在用户接收己播放演示127的同时实现IC组成部分124与视频组成部分122之间的同步的一种特定方式(即,使用内联时间构造)。然而,要强调的是定时属性不限于仅应用于标记元素,并且一般可应用于此处作为整体描述的事件化系统(例如,演示系统IOO)。在另一说明性实现(以下结合图6讨论)中,周期性地查询这些属性/特性的结构化表示,并且可使用其中的特定值或变化来触发与播放已播放演示127内的IC组成部分124相关联的一个或多个动作。以下描述了包含标记元素的示例XML文档(未示出脚本308)。示例XML文档包括用于对内容元素302执行裁剪动画的样式310和定时306元素,内容元素302引用被称为"id"的媒体对象元素312。定义与"id"媒体对象元素相关联的媒体对象215的数据的位置未被示出。可以理解,以下示例XML文档是出于说明的目的而提供的,并且可能在句法上不是合法的。该示例XML文档以被称为"root"的根元素开始。在该根元素之后,若干名字空间"xmlns"字段引用万维网上可找到定义该示例XML文档的句法的若干模式及其中的容器的位置。在例如用于高清晰度DVD电影的XML文档的上下文中,名字空间字段可引用与DVD论坛相关联的网站。在由标为"body"的标签描述的容器中定义被称为"id"的一个内容元素302。在由标为"head"的标签描述的容器内定义与内容元素"id"相关联的样式元素310(在该示例中,标签"styling"下的元素)。还在由标为"head"的标签描述的容器内定义定时元素306(标签"timing"下的元素)。-<rootxml:lang="en"xmlns="http:〃www.dvdforum.org/2005/ihd"xmlns:style="http:〃www.dvdfomm.org/2005/ihd#style"xmlns:state="http:〃www.dvdforum.org/2005/ihd#state"-<head>(Head是style(样式)和timing(定时)特性的容器)-<styling>(此处为Styling特性)<styleid="s-p"style:fontSize="10px"/〉<styleid="s-bosbkg"style:opacity="0.4"style:backgroundImage="url('../../img/pass/boston.png')"/><styleid="s-div4"style="s-bosbkg"style:width="100px"style:height="200px"/><styleid="s-div5"style:crop="00100100"style="s-bosbkg"style:width="200px"style:height="100px"/><styleid="s-div6"style:crop="10050200150"style="s-bosbkg"style:width="100px"style:height="100px"/〉</styling〉-<Timing>(此处为Timing特性)-<timingclock="title">-<d6fs>-<gid="xcrop"><setstyle:opacity="1.0"/〉<animatestyle:crop="00100200;2000300200"/></g〉-<gid="ycrop"><setstyle:opacity="1.0"/><animatestyle:crop="00100IOO;O100100200"/〉</g>-<gid="zoom"><setstyle:opacity="1.0"/><animatestyle:crop="10050200150;12575150100"/></g></defs>隱<seq><cueuse="xcrop"select='V/div[@id='d4']"dur="3s"/><cueuse="ycrop"select='V/div[@id='d5']"dur="3s"/><cueuse="zoom"select='V/div[@id='d6']"dur="3s"/></seq></timing></head>-<bodystate:foreground="tme">Body是内容元素的容器-<divid="dl">内容从此处开始。-<pstyle:textAlign="center">裁剪动画测试<br/〉<spanstyle:fontSize-"12px"〉启动标题时钟以制作裁剪动画。</span></p></div><divid="d4"style="s-div4"style:position="absolute"style:x="10%"style:y="40%"><pstyle="s-p">x:0->200</p></div>曙<divid="d5"style="s-div5"style:position="absolute"style:x="30%"style:y="40%"><pstyle="s-p">y:0->100</p></div>-<divid="d6"style="s-div6"style:position="absolute"style:x="70%"style:y="60%">-<pstyle="s-p"〉x:100->125<br/>y:50->75</p></div〉</body></root>继续参考图1-3,图4是更详细示出定时信号管理块108和定时信号158的各个组件的简化的功能框图。定时信号管理块108负责处理用于确定演示系统100内的特定时间或持续时间的时钟和/或定时信号。如图所示,由时钟源402以预定速率产生连续的定时信号401。时钟源402可以是与处理系统,诸如通用计算机或专用电子设备相关联的时钟。由时钟源402产生的定时信号401—般如真实世界的时钟一样连续改变——在真实时间的一秒钟内,时钟源402以预定速率产生相当于一秒钟的定时信号401。定时信号401被输入到IC帧速率计算器404、A/V帧速率计算器406、时间基准计算器408和时间基准计算器409。IC帧速率计算器404基于定时信号401产生定时信号405。定时信号405被称为"IC帧速率",它表示IC管理器104产生IC数据134的帧的速率。IC帧速率的一个说明性值是每秒30帧。IC帧速率计算器404可减少或增加定时信号401的速率以产生定时信号405。IC数据134的帧一般根据相关用户事件对每一有效应用程序155和/或其页包括与有效应用程序和/或页相关联的每一媒体对象125的呈现。为说明起见,有效应用程序是具有基于演示时间线130播放持续时间292的当前标题时间落入其中的应用程序演示间隔321的应用程序。可以理解,应用程序可具有一个以上的应用程序演示间隔。也可理解,此处不对基于用户输入或资源可用性的应用程序状态进行特定区分。A/V帧速率计算器406还基于定时信号401来产生定时信号——定时信号407。定时信号407被称为"A/V帧速率",它表示AVC管理器102产生A/V数据132的帧的速率。A/V帧速率可以与IC帧速率405相同或不同。A/V帧速率的一个说明性值为每秒24帧。A/V帧速率计算器406可减少或增加定时信号401的速率以产生定时信号407。时钟源470产生定时信号471,它管控从媒体源160产生与剪辑123相关联的信息的速率。时钟源470可以是与时钟402相同的时钟,或基于与时钟源402相同的时钟。或者,时钟470和402可完全不同和/或具有不同的源。时钟源470基于播放速度输入480来调节定时信号471的速率。播放速度输入480表示所接收的影响已播放演示127的播放速度的用户输入。例如,当用户从电影的一部分跳转到另一部分(被称为"特效播放"),或当用户暂停、慢进、快进、慢退或快退电影时,播放速度受到影响。特效播放可通过从菜单280(图2中示出)作出选择或以其它方式来实现。时间基准452表示在与活动剪辑123相关联的特定演示间隔240内经过的时间量。此处为讨论的目的,活动剪辑是具有基于演示时间线130播放持续时间292的当前标题时间落入其中的演示间隔240的剪辑。时间基准452被称为"经过的剪辑播放时间"。时间基准计算器454接收时间基准452,并产生媒体时间基准455。媒体时间基准455表示基于一个或多个时间基准452已经经过的播放持续时间292的总量。一般而言,当两个或多个剪辑正并发播放时,仅使用一个时间基准452来产生媒体时间基准455。用于确定媒体时间基准455的特定剪辑以及如何基于多个剪辑确定媒体时间基准455是实现偏好的问题。时间基准计算器408接收定时信号401、媒体时间基准455以及播放速度输入480,并产生标题时间基准409。标题时间基准409表示基于对时间基准计算器408的一个或多个输入、在播放持续时间292内已经经过的时间总量。时间基准计算器490接收定时信号401和标题时间基准409,并产生应用程序时间基准492和页时间基准494。单个应用程序时间基准492表示,参考连续定时信号401,特定应用程序播放持续时间320(结合图3示出并讨论)中已经过的时间量。当标题时间基准409指示当前标题时间落入特定应用程序的应用程序演示间隔321内时,确定应用程序时间基准492。在应用程序演示间隔321结束时,应用程序时间基准492复位(例如,变为不活动或重新开始)。应用程序时间基准492也可在其它情况中复位,诸如响应于用户事件或当进行特效播放时。页时间基准494表示,参考连续定时信号401,单个页播放持续时间332、337(也结合图3示出和讨论)中已经过的时间量。当标题时间基准409指示当前标题时间落入适用的页演示间隔342内时,确定应用程序的特定页的页时间基准494。页演示间隔是应用程序演示间隔321的子间隔。页时间基准494可在适用的页演示间隔343结束时复位。页时间基准494也可在其它情况中复位,诸如响应于用户事件或当进行特效播放时。可以理解,也可定义媒体对象演示间隔345,它可以是应用程序演示间隔321和/或页演示间隔343的子间隔。表1示出了在演示系统100播放已播放演示127期间的说明性事件,以及这样的事件对应用程序时间基准492、页时间基准494、标题时间基准409和媒体时间基准455的影响。事件应用程序时间492页时间494标题时间409媒体时间455电影开始不活动,除非/直到应用程序有效不活动,除非/直到适用页有效开始(例如,位于o处)开始(例如,位于o处)下一剪辑开始不活动,除非/直到应用程序有效不活动,除非/直到适用页有效基于之前的标题时间和经过的剪辑播放时间来确定复位/重新开始下一标题开始不活动,除非/直到应用程序有效不活动,除非/直到适用页有效复位/重新开始复位/重新开始应用程序变为有效开始当适用页有效时开始继续/没有影响继续/没有影响特效播放如果适用的应用程序在所跳转到的标题时间有效,则复位/重新开始;否则变为不活动如果适用的页在所跳转到的标题时间有效,则复位/重新开始;否则变为不活动基于所跳转到的位置,前进或后退至对应于演示时间线上已经过的播放持续时间的时间前进或后退至对应于标题内活动剪辑在跳转到的位置上的已经过的剪辑播放时间的时间改变播放速度N倍继续/没有影响继续/没有影响以N倍速度经过以N倍速度经过电影暂停继续/没有影响继续/没有影响暂停暂停电影恢复继续/没有影响继续/没有影响恢复恢复表l图5是更详细示出某些事件502在已播放演示127的播放期间对应用程序时间基准492、页时间基准494、标题时间基准409和媒体时间基准455的影响的示意图。关于连续定时信号,诸如定时信号401的值来示出事件502及其影响。除非另有指示,否则高清晰度DVD电影的特定标题正以正常速度播放,且具有三个可串行演示的页的单个应用程序提供用户交互活动。电影在定时信号具有值O时开始播放。当定时信号具有值10时,应用程序变为有效并激活。应用程序时间492以及与应用程序的页1相关联的页时间494假定为值O。页2和3是不活动的。标题时间409和媒体时间455均具有值10。应用程序的页2在定时信号值15时加载。应用程序时间和页1时间具有值5,而标题时间和媒体时间具有值15。应用程序的页3在定时信号具有值20时加载。应用程序时间具有值IO,页2时间具有值5,页1时间不活动。标题时间和媒体时间2具有值20。电影在定时信号值22时暂停。应用程序时间具有值12,页3时间具有值2,页1和2不活动。标题时间和媒体时间具有值22。电影在定时信号值24时恢复。于是,应用程序时间具有值14,页3时间具有值4,标题时间和媒体时间具有值22。在定时信号值27时,新剪辑开始。应用程序时间具有值17,页3时间具有值7,标题时间具有值25,媒体时间被复位到O。用户在定时信号值32时停用应用程序。应用程序时间具有值22,页时间具有值12,标题时间具有值30,而媒体时间具有值5。在定时信号值39处,用户跳转、后退至同一剪辑中的另一部分。假定应用程序在所跳转到的位置有效,且在之后不久重新激活。应用程序时间具有值O,页l时间具有值O,其它页不活动,标题时间具有值27,媒体时间具有值2。在定时信号值46处,用户改变电影的播放速度,以正常速度的两倍快进。快进继续直到定时信号值53。如图所示,应用程序和页时间继续随连续的定时信号以恒定的步调改变,未受到电影播放速度改变的影响,而标题和媒体时间与电影的播放速度成比例地改变。应注意到,加载应用程序的特定页的时间被绑定至标题时间409和/或媒体时间455(见结合图3对应用程序演示间隔321和页演示间隔343的讨论)。在定时信号值48处,新标题开始,标题时间409和媒体时间455被复位到值0。对于初始标题,这在标题时间具有值62、媒体时间具有值36时发生。应用程序时间492和页时间494的复位(未示出)跟随在标题时间409和媒体时间455的复位之后。能够访问各个时间线、时钟源、定时信号和定时信号基准增强了演示系统100实现已播放演示127内的IC数据124和A/V数据132的帧级同步以及在用户交互活动期间维持这样的帧级同步的能力。继续参考图1-4,图6是用于增强诸如演示系统100等交互式多媒体演示系统同步演示交互式多媒体演示的交互式和视频组成部分(诸如演示内容120/已播放演示127的IC组成部分124和视频组成部分122)的能力的一种方法的流程图。该方法涉及使用声明性形式的某些应用程序指令来有条件地触发与播放IC组成部分124相关联的某些动作。动作基于交互式多媒体演示播放期间一个或多个媒体对象的一个或多个特性的状态(例如,基于用户输入)来触发。图6示出了用于声明性地响应交互式多媒体环境中的状态变化的一个具体的说明性方法,其中使用XPATH来周期性地访问应用程序的结构化表示(诸如图7所示并在相应文字中描述的DOM)以检测然后触发对该环境中的状态变化的响应。除了该声明性方法之外,可替代地使用程序性(即,命令性)事件驱动方法。例如,该环境中的其它对象可被结构化以对特定状态变化作出响应。编程的构造允许状态属性向这些对象通知状态变化,由此触发响应。由此,除了周期性地查询DOM来检测状态变化(一种形式的轮询)之外,可根据特定的要求来利用确定性事件通知,并且例如通过使用脚本、标记API或脚本API将对象的事件处理程序传递给合适的通知方法来实现。然后在状态属性改变时用信号表示状态变化。该方法在框600处开始,并在框602处继续,其中访问具有声明性语言指令的应用程序。某些声明性指令指定了媒体对象的特性。其它声明性指令指定了与播放或呈现该演示的交互式内容相关联的、基于特性的状态变化的动作。在交互式多媒体演示的播放期间,特性通常将具有各种不同的状态。S卩,当一个或多个交互式应用程序加载并运行(例如,创建交互式菜单或向用户提供其它交互式内容)时,由内容元素属性(如下所述)定义的各种状态通常改变以反映该变化的交互式环境。在框604处,周期性地査询诸如以下图7所示的DOM等应用程序的结构化表示以检测状态变化。当检测到相关的状态变化时,如在菱形606处所确定的,在框608处触发由声明性指令指定的动作,并且继续框604处的周期性査询。如果在菱形606处未检测到相关状态变化,则框604处的周期性査询继续。参考框602,诸如内容元素302、样式元素310、媒体对象元素312或事件元素360及其属性等应用程序指令304(图3所示)用于指定可在已播放演示127的播放期间表现出的特定媒体对象125和相关联的特性状态(例如,属性值)。用于出现在高清晰度DVD电影应用程序中的标记元素的某些属性由DVD论坛发布的一个或多个XML模式来定义。在一个说明性示例中,属性包括样式和状态属性。某些属性可相对于用户事件来定义。可影响样式属性或状态属性的值的一种类型的用户事件是姿势事件。姿势事件是影响已播放演示127内的媒体对象的演示的任何用户发起的动作(诸如来自诸如键盘、遥控器或鼠标等设备的输入)。一般的特性状态和属性,尤其是样式或状态属性的值可表现出交替的或二元状态。这种交替或二元状态的示例包括真或假、开或关、零或一等等。或者,特性状态和属性的值可表现出通用值,诸如串值或数字值。在另一替代方案中,特性状态和属性的值可采取预定义集合内的值,诸如表示一组预定颜色内的特定颜色的值。回头参考框602,在应用程序指令304(图3所示)内,使用其它声明性指令指定了可基于特定状态的变化来触发的与播放IC组成部分124相关联的一个或多个动作。这些动作的示例包括内容呈现、事件生成、脚本执行、可变值变化以及其它动作。在应用程序或其页内,可使用多个定时元素,并且定时元素可被同步到相同或不同的时钟。例如,可以直接或间接参考定时信号401和471以建立向其同步定时元素的时钟。例如,可经由时钟源402、IC帧速率计算器404、A/V帧速率计算器406、应用程序时间492、或页时间494来间接参考定时信号401。同样,可经由例如时钟源470、已经过的剪辑播放时间452、时间基准计算器454、媒体时间基准455、时间基准计算器408或标题时间基准409来间接参考定时信号471。另外,涉及对时钟、定时信号、时间基准计算器和/或时间基准的逻辑引用的表达式也可用于指定定时元素的同步。例如,可使用诸如"AND"、"OR"和"NOT"等布尔操作数以及其它操作数或其类型来定义这种表达式或条件。再次参考图6的流程图,在演示系统100的上下文中讨论框604、菱形606和框608处示出的步骤。在演示内容120/已播放演示127的播放期间,与特定应用程序相关联的声明性语言指令(诸如内容元素302、定时元素306、样式元素310、媒体对象元素312、事件元素360和/或其各自的属性(以及可任选地,属性的属性)的状态在应用程序的结构化表示内维护。这一结构化表示的一个示例是DOM。DOM的结构和功能由W3C公布的一个或多个规范来描述。图7是DOM700的图示。DOM700是若干类型的节点的树形分层结构,包括作为根节点的文档节点702、元素节点704、属性节点706、以及文本节点708。通常,在DOM中,定时数据结构与内容数据结构分开。DOM700的结构仅是出于说明的目的而提出的。可以理解,任何元素,包括属性本身,可具有属性或文本。当加载一应用程序时,其标记被加载并解析以创建DOM。当应用程序在交互式环境中运行时,用户与应用程序交互、激发事件、运行脚本等,该环境的各方面,包括状态属性改变,这被反映为对DOM的修改。因此,当应用程序首次启动时原始加载的DOM通常不同于在该应用程序的生命周期期间动态维护的"活"DOM。DOM70(或其部分)可以使用XPATH査询或其它类型的查询(例如XQUERY)来周期性地查询以确定属性节点(诸如样式属性或显示属性)何时具有特定值。在一个实现中,XPATH査询确定属性节点何时改变值。如上所述,属性可具有二元值、数字值、串值或其它类型的值。属性节点(分别由DOM700中的节点704和706表示)在交互式多媒体演示播放时和/或响应于诸如用户事件等事件而被解析成特定值。在一个实现中,XPATH査询基于所查询的值而被解析为真或假。以此方式,可形成用于特定媒体对象的活动时间间隔,并且可在定时结构内有利地使用XPATH来参考和/或监视内容数据结构内的信息。查询可在一个或多个属性节点上并发地执行,并且也可使用涉及对属性的逻辑引用的表达式或条件来定义查询。例如,诸如"AND"、"OR"和"NOT"等布尔操作数以及其它操作数或其类型可用于定义这种表达式或条件。在某些情况下,也可能跳过某些周期性查询。例如,基于对査询结果和/或其它信息的分析,可标识查询结果不改变的时间周期,并且在这些周期期间跳过査询。XPATH查询可按基于诸如定时信号401或定时信号471等定时信号的速率在DOM上执行。可以理解,可以直接或间接参考定时信号401和471来建立查询DOM的时间。例如,可经由时钟源402、IC帧速率计算器404、A/V帧速率计算器406、应用程序时间492或页时间494来间接参考定时信号401。同样,可经由例如时钟源470、已经过的剪辑播放时间52、时间基准计算器454、媒体时间基准455、时间基准计算器408或标题时间基准409来间接参考定时信号471。另外,也可使用涉及对时钟、定时信号、时间基准计算器、和/或时间基准的逻辑引用的表达式来定义何时对DOM执行查询。例如,可使用诸如"AND"、"OR"和"NOT"等布尔操作数以及其它操作数或其类型来定义这种表达式或条件。当特定动作由经由对DOM的查询检测到的状态变化触发时,访问适当的内容并执行与这些动作有关的指令。例如,外部事件处理程序一般访问事件相关内容并安排涉及这些事件的指令的执行。执行与所触发的动作有关的指令所得的工作项(未示出)被放置在队列(未示出)中,并且以预定的速率,诸如由IC帧速率405提供的速率来执行。执行工作项所得的IC数据134(例如,根据用户输入对特定媒体对象的呈现)被发送到混合器/呈现器110。混合器/呈现器110在图形平面中呈现IC数据134以为用户产生已播放演示127的交互式部分。由此,应用程序提供了指定媒体对象的特定特性的状态的某些声明性语言指令,以及指定与播放交互式多媒体演示的交互式内容相关联的、基于特性的状态变化的动作(诸如媒体对象的呈现、事件生成、变量变化和其它动作)的其它声明性语言指令。与播放交互式内容相关联的动作可通过周期性地査询应用程序的结构化表示以检测状态变化来有条件地触发。XPATH功能尤其适用于査询DOM来检测这种状态变化。因此,为向由应用程序生成的图形提供对交互式多媒体环境中的状态变化作出反应的能力,标记元素被安排成包括状态属性。这种状态属性通过使用如上所述的DOM而被展示给应用程序。在一个说明性示例中,状态属性包括表2所示的属性。<table>tableseeoriginaldocumentpage26</column></row><table>表2表2中第1列列出了六个状态属性。第2列列出了该属性可取的值。在该说明性示例中,除了"值"之外的所有属性被安排成利用真或假的布尔值。值属性通常使用从用户为其值输入的文本或其它非布尔信息。应用程序作者能够为状态属性设置初始值,如第3列中所指示的。然而,值基于通过接收如上所述的姿势事件进行的用户交互来改变。具体地,状态属性前景、指针和已作用由演示系统100改变,并且不由标记或脚本改变。g卩,演示系统100的动作覆盖标记和脚本。然而,状态属性已聚焦、已启用和值可由标记或脚本设置,并且如此设置的值将覆盖本来由演示系统100设置的值。并且,具体地,脚本可覆盖状态属性已聚焦和已启用,除非通过经由脚本API实现的"unset"(取消设置)指令明确指示来将控制放弃返回给设置在演示系统100中的动画引擎。管控属性值的改变的规则因此通过建立优先顺序来建立一良好定义的控制顺序,并且在表2的第4列中概括。在本说明性示例中,姿势事件使用标记处理来处理。其它种类的事件通过脚本处理来管理。姿势事件的映射在标记中通过样式和定时表达式来处理,这些表达式对由状态属性描述的状态特性进行预测。姿势事件由演示系统100通过首先将姿势的时间转换成应用程序时间(例如,应用程序时间基准492),然后修改DOM中任何受影响的状态特性来处理。尽管姿势事件由标记处理,但它们仍可通过设置适当的事件监听程序来传播到脚本。提供了如何可在演示系统100中使用图6的方法以演示已播放演示127内特定媒体对象125/IC组成部分124/IC数据134的一个示例。出于讨论的目的,假定已播放演示127是高清晰度DVD电影,媒体对象是按钮图形,并且交互活动由将按钮图形演示为菜单280(图2所示)内的用户可选择项的应用程序155与该电影的至少某些部分并发地提供。应用程序包括被安排为称为"Mybutton"(我的按钮)的按钮图形的内容元素,它具有状态属性"已聚焦"。已聚焦状态属性基于用户的姿势事件可表现出已聚焦和未聚焦(即真或假)状态。如表2所示,诸如Mybutton等内容元素在接收到激活姿势之后变为已聚焦。这一激活姿势例如当用户通过将光标的尖端移至围绕按钮图形的预定区域(称为"范围")内来操纵Mybutton的"热点"区时接收到。创建激活姿势来将内容元素状态属性改为真的另一种方式是使用键盘例如来操纵内容元素以使其具有焦点。当内容元素已聚焦时,它接收诸如用户事件(例如,按钮按下、选择、激活、文本输入等)等焦点事件,而不管其相对显示顺序如何。被称为"Z顺序"的这一顺序表示与内容元素相关联的图形在显示上的分层。对于一组N个图形对象,Z顺序=0意味着该图形出现在最远处,而具有Z顺序二N-1的图形出现在显示上所有其它图形的顶上。由此,在许多情况下,已聚焦的内容元素将具有Z顺序=>1-1,因为它是显示上的最顶部对象,并且是通常参与与用户的交互并接收用户事件的对象。然而,具有已聚焦状态属性的内容元素不必总是必须具有最高的Z顺序。另外,一次最多只有一个内容元素具有焦点。在标记指定一个以上内容元素具有已聚焦状态的情况下,词汇上较后的元素取得优先。在这一说明性示例中,还可能使用样式、动画或XML应用程序编程接口("API")来改变内容元素的已聚焦状态。一旦内容元素的状态属性被设为真,则保持该状态。由此,内容元素在以下两种情况中不是已聚焦(即,其已聚焦属性为假)当用户例如通过从菜单280中选择另一菜单项来选择一不同内容元素来移至已聚焦状态时,以及;当定点设备移至该元素的范围内并且接收到取消姿势时。在这种取消姿势之后,没有任何内容元素具有已聚焦状态属性。如表2所示,已作用状态最初被设为假。已作用状态属性在针对内容元素的激活姿势开始时变为真,并且在激活姿势结束之后返回到假。这种激活姿势通常使用定点设备(例如,遥控器或鼠标)或用键盘来生成。在定点设备的情况下,来自定点设备的激活姿势以点下(pointer-down)事件(诸如按下鼠标按钮)开始,并直到点上(pointer-up)事件(诸如释放鼠标按钮)之后才结束。由键盘传递的激活姿势具有一个报时信号的持续时间。还可使用样式、动画或XMLAPI来对模拟内容元素上的用户激活姿势的指令进行编程以改变内容元素的已作用状态。在实际或模拟的激活姿势两种情况下,已作用事件通过改变其已聚焦状态属性等于真的单个内容元素的已作用状态属性而被传递到该元素。内容元素的指针状态最初为假。只要光标热点与内容元素相交,该值就变为真。否则,该值被设为假。然而,该行为仅在交互式媒体演示中启用了光标的那些时间内发生。由此,指针移动事件通过将指针状态属性改为真而被传递到包含含有该指针的元素的单个应用程序。这一指针移动事件是不考虑应用程序的Z顺序来传递的。指针点击事件被传递到应用程序中包含该指针的元素而不考虑它是否具有焦点。如果内容元素能够接收焦点,则这将作为指针点击的结果来发生。如果内容元素能够被作用,则作为指针点击的结果它将是已作用的。只要应用程序是Z顺序中最前面的应用程序(即,它具有最高Z顺序),则演示系统100就将前景状态属性设为真。只要应用程序位于Z顺序中的其它地方,它就被设为假。通过将前景状态属性改为真,当应用程序获得或丢失焦点时,前景事件被传递到应用程序。已启用状态属性默认被设为真。演示系统100的动作不会改变已启用状态属性。然而,样式、动画或XMLAPI可将内容元素的已启用状态改为假。当为假时,内容元素无法接收焦点。诸如通过用户输入文本来创建值而生成的值事件被传递到包含其值通过改变内容元素的值状态属性而改变的内容元素的应用程序。这些事件在不考虑z顺序的情况下被传递到应用程序。内容元素的值状态能够使用样式、动画或XMLAPI来改变,并且值状态取决于对象类型。通常使用输入、区域和按钮内容元素来表示响应用户事件的用户输入对象。区域内容元素在激活方面与按钮一样表现,但是可在形状和其它参数方面进行定义。与区域和按钮相关联的内容元素最初用假值来设置,如表2所示。该值在内容元素的已作用状态属性改为真时切换。输入或对象内容元素的值状态属性的值被初始化为任何期望的值。默认是空串。当内容元素的焦点状态从假改为真时,取决于所使用的特定输入设备,值状态变为可编辑。以下示出了说明可用于有条件地触发与具有如上所述称为"已聚焦"的状态属性的内容元素(例如,MyButton)相关联的媒体对象的呈现的声明性语言指令的伪代码,该属性基于特定姿势事件可以为真或假<parbegin="id('MyButton,)[state:focused()=tme()],,end="id('MyButton,)[state:focused()=false()],,〃现在运行动画,因为状态已聚焦为真〃如果状态改为假则停止动画可以看到,"par"定时元素阐明了呈现与"Mybutton"元素相关联的媒体对象的动作。该动作在对表示Mybutton元素的已聚焦属性的DOM节点的査询解析为真时被触发(即,呈现媒体对象),并且该动作在对表示Mybutton元素的已聚焦属性的DOM节点的查询解析为假时停止(即,不呈现媒体对象)。尽管在该示例中,可呈现媒体对象是其特性被配置为表现出多个状态的同一媒体对象,但是可呈现媒体对象可以是不同的。可使用诸如以下结合图8所讨论的处理器802等一个或多个通用、多用途或单用途处理器来实现图6中所示的过程。除非另有指示,否则此处所述的方法不限于特定次序或顺序。此外,所述的方法及其元素中的某一些可并发发生或执行。图8是通用计算单元800的框图,它示出了可用于实现演示系统100的各个功能组件或可由其访问或可被包括在其中的某些功能组件。计算单元800的一个或多个组件可用于实现IC管理器104、演示管理器106和AVC管理器102或可由其访问或可被包括在其中。例如,图8的一个或多个组件可被包装在一起或分开包装以按照各种方式来实现演示系统100的功能(整体或部分)。处理器802响应于计算机可读介质804和计算机程序806。处理器802可以是真实或虚拟的处理器,它通过执行计算机可执行指令来控制电子设备的功能。处理器802可在汇编、编译或机器级执行指令以执行特定的过程。这样的指令可使用源代码或任何其它已知的计算机程序设计工具来创建。计算机可读介质804表示任何形式的、现在已知或将来开发的、能够记录、存储或传输诸如可由处理器802执行的指令等计算机可读数据的任何数目的本地或远程设备或其组合。具体地,计算机可读介质804可以是或可包括半导体存储器(诸如只读存储器("ROM")、任何类型的可编程ROM("PROM")、随机存取存储器("RAM")、或闪存);磁存储设备(诸如软盘驱动器、硬盘驱动器、磁鼓、磁带或磁光盘);光存储设备(诸如任何类型的压縮盘或数字多功能盘);磁泡存储器;高速缓冲存储器;磁心存储器;全息存储器;记忆棒;纸带;穿孔卡;或其任何组合。计算机可读介质804也可包括传输介质及其相关联的数据。传输介质/数据的示例包括但不限于,具体化成任何形式的有线或无线传输的数据,诸如由已调制载波信号承载的己分组或未分组数据。计算机程序806表示电子地控制对数据的预定操作的任何信号处理方法或已存储指令。一般而言,计算机程序806是根据基于组件的软件开发的公知实践被实现为软件组件、并被编码到计算机可读介质(诸如计算机可读介质804)中的计算机可执行指令。计算机程序可按照各种方式组合或分布。在演示系统100的上下文中描述的功能/组件不限于由计算机程序的任何具体实施例来实现。相反,功能是传达或变换数据的过程,一般可由硬件、软件、固件或其组合实现或执行,并位于演示系统100的功能元件的任何组合处或可由其访问。继续参考图8,图9是可在其中实现或使用演示系统100的全部或一部分的操作环境卯0的说明性配置的框图。操作环境900—般指示各种各样的通用或专用计算环境。操作环境900仅是合适的操作环境的一个示例,而不旨在对此处所述的系统和方法的使用范围或功能提出任何限制。例如,操作环境900可以是现在已知或将来开发的一种类型的计算机,诸如个人计算机、工作站、服务器、便携式设备、膝上型计算机、图形输入板、或任何其它类型的电子设备,诸如光介质播放器或另一类型的媒体播放器,或其任何方面。操作环境900例如也可以是分布式计算网络或Web服务。操作环境900的一个具体示例是诸如DVD播放器或与其相关联的操作系统等便于播放高清晰度DVD电影的环境。如图所示,操作环境900包括或访问计算单元800的各组件,包括处理器802、计算机可读介质804以及计算机程序806。存储904包括与操作环境900特别相关联的其它或不同的计算机可读介质,诸如光盘,它由光盘驱动器906处理。作为公知且广泛可用的元件的一个或多个内部总线920可用于承载数据、地址、控制信号以及计算环境900或其元件内的、去往它们的或来自它们的其它信息。输入接口908对计算环境900提供输入。输入可使用任何类型的现在已知或将来开发的接口,诸如用户接口来收集。用户接口可以是诸如遥控器、显示器、鼠标、笔、指示笔、跟踪球、键盘等触摸输入设备、麦克风、扫描设备和用于输入数据的所有类型的设备。输出接口910提供来自计算环境900的输出。输出接口910的示例包括显示器、打印机、扬声器、驱动器(诸如光盘驱动器906和其它盘片驱动器)等。外部通信接口912可用于增强计算环境900经由诸如信道信号、数据信号或计算机可读介质等通信介质与另一实体之间往返收发信息的能力。外部通信接口912可以是或可包括诸如线缆调制解调器、数据终端设备、媒体播放器、数据存储设备、个人数字助理、或任何其它设备或组件/其组合以及相关联的网络支持设备和/或软件或接口的各种元件。图10是可结合其使用演示系统100或操作环境900的客户机一服务器体系结构1000的简化功能框图。演示系统100和/或操作环境900的一个或多个方面可表示在体系结构1000的客户机侧1002上或表示在体系结构1000的服务器侧1004上。如图所示,通信架构1003(可以是任何类型的例如有线或无线的公共或专用网络)便于在客户机侧1002与服务器侧1004之间通信。在客户机侧1002上,可使用硬件、软件、固件或其任何组合实现的一个或多个客户机1006响应于客户机数据存储1008。客户机数据存储1008可以是计算机可读介质804,用于存储对客户机1006本地的信息。在服务器侧1004上,一个或多个服务器1010响应于服务器数据存储1012。与客户机数据存储1008—样,服务器数据存储1012可以包括一个或多个计算机可读介质804,用于存储对服务器1010本地的信息。描述了用于与音频/视频内容同步地向用户演示交互式内容的交互式多媒体演示系统的各方面。交互式多媒体演示一般被描述为具有播放持续时间、可变播放速度、视频组成部分和IC组成部分。然而,可以理解,不必使用所有前述组成部分,各组成部分在被使用时也不必同时存在。在演示系统100的上下文中被描述为计算机程序的功能/组件不限于由计算机程序的任何具体实施例来实现。相反,功能是传达或变换数据的过程,一般可使用硬件、软件、固件或其任何组合来实现或执行。尽管使用结构特征和/或方法动作专用的语言描述了此处的主题,但也可以理解,权利要求书中定义的主题不必限于上述的具体特征或动作。相反,上述的具体特征和动作是作为实现权利要求书的示例形式来公开的。还可以理解,当一个元素被指示为响应于另一个元素时,这些元素可直接或间接耦合。此处所述的连接在实践中可以是逻辑或物理的,以实现元素之间的耦合或通信接口。连接可被实现为软件进程之间的进程间通信,或联网计算机之间的机器间通信等。此处使用词语"说明性"指的是用作示例、实例或说明。此处被描述为"说明性"的任何实现或其各方面不必被解释为对于其它实现或其方面是优选的或有利的。如可以理解的,可设计除上述具体实施例以外的实施例,而不背离所附权利要求书的精神和范围,此处主题的范围旨在由所附权利要求书限定。权利要求1.一种用于安排应用程序响应状态变化的方法,所述应用程序包括标记组件以及至少一个脚本组件,并提供了与交互式媒体环境中的视频流同步的一个或多个图形元素,所述方法包括以下步骤响应于用户生成的事件,修改所述标记组件中的内容元素的至少一个状态属性;解析所述标记组件以创建文档对象模型(“DOM”);递归地内观所述DOM以检索所述至少一个状态属性;以及响应于所述递归内观触发处理以响应所述状态变化。2.如权利要求l所述的方法,其特征在于,所述递归内观是使用XPATH査询来执行的。3.如权利要求2所述的方法,其特征在于,所述交互式媒体环境中的时间是使用一报时信号序列来计数的,并且所述XPATH查询是在每一报时信号处执行的。4.如权利要求l所述的方法,其特征在于,所述交互式媒体环境包括至少部分地通过使用光学媒体来提供的高清晰度DVD环境,所述光学媒体选自HD-DVD、蓝光、增强多功能盘、数字多层盘、全息多功能盘、多功能多层盘之一。5.如权利要求l所述的方法,其特征在于,所述至少一个状态属性选自前景、已聚焦、指针、己作用、已启用或值之一。6.如权利要求5所述的方法,其特征在于,所述至少一个状态属性中除了值之外的每一个都是可被描述为或者真或者假的布尔属性。7.如权利要求l所述的方法,其特征在于,所述状态属性的值选自二元值、数字值、串值和预定值集合之一。8.如权利要求l所述的方法,其特征在于,所述DOM是从一个或多个XML文档创建的。9.如权利要求l所述的方法,其特征在于,所述处理包括消费所述事件。10.如权利要求1所述的方法,其特征在于,所述处理包括由至少一个脚本组件通过使用事件监听程序来接收所述事件。11.如权利要求1所述的方法,其特征在于,所述处理包括通过所述应用程序的焦点、Z顺序的改变或用户事件的接收来操纵所述交互式多媒体环境。12.—种包含指令的机器可读介质,所述指令在由设置在电子设备中的一个或多个处理器执行时执行一种用于处理交互式多媒体环境中的用户事件的方法,所述方法包括以下步骤处理一应用程序,所述应用程序的至少一部分使用声明性描述来定义;通过使用所述声明性描述生成文档对象模型("DOM")来为所述应用程序创建运行时上下文,所述DOM包括多个状态元素,并且向所述应用程序提供一接口,由此允许对所述声明性描述的修改;响应于用户事件,修改所述DOM中的多个状态元素之中的一个或多个状态元素;以及根据所修改的状态元素通过所述接口将所述用户事件传递到所述应用程序。13.如权利要求12所述的机器可读介质,其特征在于,修改所述一个或多个状态元素包括改变所述多个状态元素中的至少一个状态元素的状态属性。14.如权利要求12所述的机器可读介质,其特征在于,还包括通过所述DOM中的事件元素将所述用户事件传播到所述应用程序的脚本组件的步骤。15.如权利要求12所述的机器可读介质,其特征在于,所述指令包括第一和第二指令,所述第一指令指定了与XML内容元素相关联的属性,而所述第二指令包括XML定时元素。16.—种包括由至少一个处理器执行的软件的机器可读介质,所述软件包括演示引擎,它被安排成a)解码在交互式多媒体环境中运行的应用程序的声明性描述,以生成包括多个节点的文档对象模型("DOM"),以及b)査询所述DOM以从设置在所述多个节点中的一个节点中的元素检索状态属性;操作上耦合到所述演示引擎的输入事件接口,用于接收与用户交互相关联的事件;以及耦合到所述演示引擎的存储器接口,用于对被安排成储存所述DOM的存储器寻址。17.如权利要求16所述的机器可读介质,其特征在于,所述演示引擎还被安排成修改所述DOM以反映所检索到的状态属性的变化。18.如权利要求16所述的机器可读介质,其特征在于,所述查询包括被周期性地执行以检查所述DOM中的多个节点中的各节点的XPATH查询。19.如权利要求16所述的机器可读介质,其特征在于,所述演示引擎还被安排成根据所检索到的状态属性将所接收到的用户事件传递到所述应用程序。20.如权利要求16所述的机器可读介质,其特征在于,所述演示引擎还被安排成将所接收的用户事件传递到从所解码的声明性描述生成的内容元素。全文摘要使用声明性语言应用程序指令,基于特定媒体对象的状态变化来触发与播放交互式多媒体演示的交互式内容相关联的动作。某些应用程序指令指定了媒体对象的特性,而其它应用程序指令指定了与播放交互式内容相关联的(例如,当媒体对象可呈现时、事件生成、脚本执行、或变量的变化)、基于特性的状态变化的动作。状态变化通过查询诸如文档对象模型等应用程序的结构化表示来检测,该模型包括与应用程序指令、媒体对象和/或特性相关联的节点。当检测到状态变化时,触发一个或多个所指定的动作,由此声明性地响应状态变化。在一个说明性示例中,状态变化是使用包括前景、已聚焦、指针、已作用、已启用和值在内的属性来跟踪的。文档编号G11B27/00GK101288128SQ200680024205公开日2008年10月15日申请日期2006年6月22日优先权日2005年7月1日发明者A·W·杰瑞索伯瑞,J·A·戴维斯,J·C·芬格,S·海耶斯申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1