temp, mol3 - o39n27/EPUB301-Chinese GitHub Wiki

EPUB Content Document) #Creating Media Overlays 生成媒体叠加
##Overview 概述

本节是说明信息

预先录制的出版物旁白可以表达为一个音频剪辑系列,每一个对应EPUB EPUB内容文件的一部分。例如,一个单一的音频剪辑,通常表示一个单一的短语或段落,但不提示相对于其它剪辑或文本文件的次序。借助SMIL标记,将结构化的音频解说联系到EPUB EPUB内容文件里的对应文本(或其它媒体),媒体叠加解决了这一同步问题。媒体叠加其实是SMIL3.0的简化子集,允许对这些片段的播放顺序加以定义。

主要用于媒体叠加结构的SMIL元素有body(用于主序列),seq(序列)和par(平行)(关于这些元素和其它元素的详细信息,请参阅Media Overlay Document Definition)。

par元素是叠加的基础构件,并且和EPUB EPUB内容文件中的一个短语相对应。元素为内容同步提供了两个关键信息:1)含有对短语进行叙述的音频剪辑;以及2)指向EPUB EPUB内容文件关联片段的指针。par元素使用两个媒体子元素来代表这样的信息:audio元素和text元素的子元素。由于各个par元素对其子元素平行渲染,音频剪辑和EPUB EPUB内容文件片段同时播放,产生同步演示。

text元素的src属性引用关联的短语、句子,或EPUB内容文件的其它IRI引用片段。类似的,audio元素的src属性引用对应音频剪辑的位置,并增加了可选的clipBeginclipEnd属性在剪辑里指定具体的位置。

以下例子显示对一个短语或句子的媒体叠加标记。

<par>                        
    <text src="chapter1.xhtml#sentence1"/>
    <audio src="chapter1_audio.mp3" clipBegin="23s" clipEnd="30s"/>
</par>

各个par元素按照顺序放在一起,形成短语或句子的一个系列。并不是EPUB EPUB内容文件的每个元素在媒体叠加里都有对应的par元素,只是那些和音频旁白相关的元素才有。

下面的例子显示含有短语系列的一个基本媒体叠加文件。body元素起整个文件主次序的作用。

<smil xmlns="http://www.w3.org/ns/SMIL" 
      version="3.0">
    <body>
        <par id="par1">
            <text src="chapter1.xhtml#sentence1"/>
            <audio src="chapter1_audio.mp3" clipBegin="0s" clipEnd="10s"/>
        </par>
        <par id="par2">
            <text src="chapter1.xhtml#sentence2"/>
            <audio src="chapter1_audio.mp3" clipBegin="10s" clipEnd="20s"/>
        </par>
        <par id="par3">
            <text src="chapter1.xhtml#sentence3"/>
            <audio src="chapter1_audio.mp3" clipBegin="20s" clipEnd="30s"/>
        </par>
    </body>
</smil>

par元素也可以添加到seq元素,用于定义章节这样的复杂结构(见Structure)。

##Relationship to the EPUB Content Document,和EPUB EPUB内容文件的关系

本节假设EPUB Content DocumentXHTML内容文件。虽然媒体叠加可以和SVG内容文件一起使用,但是播放行为有可能不连续,因此不能够保证相互操作性。

###Structure,结构

媒体叠加元素的排序必须和EPUB EPUB内容文件的默认阅读顺序相一致。par元素表达短语,seq元素(序列)表达嵌套的EPUB EPUB内容文件容器,如小节、旁白、标题和脚注。 seq的子元素必须是其它的seq或par元素。每个seq元素必须包含一个epub:textref属性,它通过IRI引用EPUB EPUB内容文件的对应元素。

下面的例子说明嵌套seq元素的媒体叠加文件,表达既有标题也有侧栏的一章。侧栏本身有嵌套图。

<smil xmlns="http://www.w3.org/ns/SMIL" 
      xmlns:epub="http://www.idpf.org/2007/ops"
      version="3.0">
    <body>

        <!-- a chapter -->
        <seq id="id1" epub:textref="chapter1.xhtml#sectionstart" epub:type="chapter">

            <!-- the section title -->
            <par id="id2">
                <text src="chapter1.xhtml#section1_title"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:23:23.84" clipEnd="0:23:34.221"/>
            </par>

            <!-- some sentences in the chapter -->
            <par id="id3">
                <text src="chapter1.xhtml#text1"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:23:34.221" clipEnd="0:23:59.003"/>
            </par>
            <par id="id4">
                <text src="chapter1.xhtml#text2"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:23:59.003" clipEnd="0:24:15.000"/>
            </par>

            <!-- an informational sidebar -->
            <seq id="id5" epub:textref="chapter1.xhtml#sidebar" epub:type="sidebar">
                <par id="id6">
                    <text src="chapter1.xhtml#sidebartitle"/>
                    <audio src="chapter1_audio.mp3" clipBegin="0:24:15.000" clipEnd="0:24:18.123"/>
                </par>

                <!-- a figure within the sidebar -->
                <seq id="id7" epub:textref="chapter1.xhtml#figure">
                    <par id="id8">
                        <text src="chapter1.xhtml#photo"/>
                        <audio src="chapter1_audio.mp3" clipBegin="0:24:18.123" clipEnd="0:24:28.764"/>
                    </par>
                    <par id="id9">
                        <text src="chapter1.xhtml#caption"/>
                        <audio src="chapter1_audio.mp3" clipBegin="0:24:28.764" clipEnd="0:24:50.010"/>
                    </par>
                </seq>

                <!-- some sentences in the sidebar -->
                <par id="id10">
                    <text src="chapter1.xhtml#sidebartext1"/>
                    <audio src="chapter1_audio.mp3" clipBegin="0:24:50.010" clipEnd="0:25:28.530"/>
                </par>
                <par id="id11">
                    <text src="chapter1.xhtml#sidebartext2"/>
                    <audio src="chapter1_audio.mp3" clipBegin="0:25:28.530" clipEnd="0:25:45.515"/>
                </par>
            </seq>

            <!-- more sentences in the chapter (outside the sidebar) -->
            <par id="id12">
                <text src="chapter1.xhtml#text3"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:25:45.515" clipEnd="0:26:30.203"/>
            </par>
            <par id="id13">
                <text src="chapter1.xhtml#text4"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:26:30.203" clipEnd="0:27:15.000"/>
            </par>

        </seq>
    </body>
</smil>

 注
 把侧栏、小节标题、图、表和脚注这样的结构归类在seq元素里面的理由,是为了使它们的起止位置能够在播放过程中得以识别。然后阅读系统可以为出版物剪裁出播放选项,比如跳过一个长侧栏,关闭对分页声明的渲染(见Skippability and Escapability),或为适应表格这样的结构定制阅读模式。

下面的例子显示对应于前面媒体叠加例子的EPUB出版物文件。

<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:epub="http://www.idpf.org/2007/ops" 
      xml:lang="en" 
      lang="en">
    <head>
        <title>Media Overlays Example of EPUB Content Document</title>
    </head>
    <body id="sec1">
        <section id="sectionstart" epub:type="chapter">
            <h1 id="section1_title">The Section Title</h1>
            <p id="text1">The first phrase of the main text body.</p>
            <p id="text2">The second phrase of the main text body.</p>
            <aside id="sidebar" epub:type="sidebar">
                <h2 id="sidebartitle">The Sidebar Title</h2>
                <figure id="figure">
                    <img id="photo" 
                         src="photo.png" 
                         alt="a photograph for which there is a caption" />
                    <figcaption id="caption">The photo caption</figcaption>
                </figure>
                <p id="sidebartext1">A phrase in the sidebar.</p>
                <p id="sidebartext2">Another phrase in the sidebar</p>
            </aside>
            <p id="text3">The third phrase of the main text body.</p>
            <p id="text4">The fourth phrase of the main text body.</p>
        </section>
    </body>
</html>

###Granularity,精细度

本节只是说明

媒体叠加的text元素的src属性通过它们的ID(XML)指向EPUB EPUB内容文件的元素。因此媒体叠加的精细程度取决于EPUB是怎么样标记的。如果标记的最小级别是段落,那么,这就是媒体叠加同步能够作成的最细级别。同样的,如果有分段标记,如HTML5里表达短语或句子的span元素,则在媒体叠加里可以实现更小的精细度。当用户按照字、词进行导航,以及搜索文本的时候,教小的精细度给用户更精确的结果用于同步播放。当然,这也增加了媒体叠加文件的大小。

###Embedded Audio and Video,嵌入的音频、视频

任何媒体叠加相关联的EPUB EPUB内容文件都可以包含嵌入的媒体,如视频、音频和图像。媒体叠加的text元素,通过其ID(XML)值,可在这种情况下用于对嵌入媒体的引用。

text元素引用包含音频的嵌入媒体的时候,不需要audio姊妹元素。

对于引用的嵌入式EPUB EPUB内容文件媒体,作者应避免使用脚本来控制其播放,因为这样做有可能与媒体叠加的播放行为相冲突。

###Text-to-Speech,语音合成

除了预录制的音频剪辑,本规范还允许使用语音合成(TTS)。当不带audio姊妹元素的text媒体叠加元素在目标EPUB EPUB内容文件里引用某个元素的时候,被引用的元素的内容必须适合于TTS渲染。例如,它可以是文本的EPUB EPUB内容文件元素,或含有文本备选。

##Semantic Inflection,语义变化

为了表达语义的变化,可以把epub:type属性ContentDocs301)加到媒体叠加的parseqbody元素。

对媒体叠加epub:type属性值的限制,与EPUB EPUB内容文件的epub:type属性完全一样。有关详细信息请参看XHTML Semantic InflectionContentDocs301

epub:type属性为阅读系统提供了行为,适用于指定的语义类型。这些行为的例子是"可跳过"、“可退出”Skippability and EscapabilityTable Reading Mode(表格阅读模式)。

下面的例子显示用于含有侧栏的媒体叠加的语义标记

<smil xmlns="http://www.w3.org/ns/SMIL" 
      xmlns:epub="http://www.idpf.org/2007/ops"
      version="3.0">
    <body>
        <seq id="id1" epub:textref="chapter1.xhtml#sidebar" epub:type="sidebar">
            <par id="id2">
                <text src="chapter1.xhtml#sidebartitle"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:24:15.000" clipEnd="0:24:18.123"/>
            </par>
            <par id="id3">
                <text src="chapter1.xhtml#sidebartext1"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:24:18.123" clipEnd="0:24:38.530"/>
            </par>
            <par id="id4">
                <text src="chapter1.xhtml#sidebartext2"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:24:38.530" clipEnd="0:25:00.515"/>
            </par>
        </seq>
    </body>
</smil>

本规范不加修改地采纳Vocabulary Association里面定义的词汇关联机制。默认词汇ContentDocs301)里面的术语在媒体叠加里使用,不得加前缀。

##Associating Style Information,关联样式信息

当前播放的EPUB内容文件元素的视觉渲染信息,可以使用作者定义的类在EPUB Style Sheets里加以表达。作者定义的这个类的名称应在包文件的元数据里,使用元数据的active-classplayback-active-class属性进行声明。这样,类名就能够被阅读系统发现。

本例演示作者可以可把样式信息与当前播放的EPUB内容文件元素相关联。

注意
虽然这个例子中使用-epub-media-overlay-active -epub-media-overlay-playing和类名,任何类名都是可以的。所选取的类名可以和所有被支持的CSS功能一起使用。

作者定义的CSS类名,使用元数据的active-classplayback-active-class属性在包文件里进行声明。

-epub-media-overlay-active

EPUB样式表,含有作者定义的类名:

.-epub-media-overlay-active
{
    background-color: yellow;
}

相关EPUB内容文件节选:

<span id="txt1">This is the first phrase.</span>
<span id="txt2">This is the second phrase.</span>
<span id="txt3">This is the third phrase.</span>

在本例,阅读系统把作者定义的类-epub-media-overlay-active,当其在播放过程中变成活动状态的时候,应用到EPUB EPUB内容文件的每个文本元素。反过来,当它不再是活动状态的时候,类名称就会被移去。用户会看到每个EPUB EPUB内容文件元素在其整个播放过程中成黄色背景样式。
当媒体叠加开始播放的时候,阅读系统应该把作者定义的-epub-media-overlay-playing类用到EPUB内容文件的文件元素。播放停止的时候,类名也就移去。在XHTML内容文件的情况下,类名会应用到html元素。在SVG内容文件的情况下,类名会应用到svg元素。媒体叠加播放的时候,用户会看到非活动状态的文本元素变成灰色。播放停止的时候,元素的颜色会回到默认色。

##Packaging,打包
###Including Media Overlays,添加媒体叠加
包文件里Manifest的item元素Publications301)可以通过media-overlay属性指定媒体叠加。媒体叠加本身就是manifest的项目,必须通过它们的ID(XML)对它们进行引用。

下面的例子说明如何在包文件的manifest里包含媒体叠加。

<manifest>
    <item id="ch1" 
          href="chapter1.xhtml" 
          media-type="application/xhtml+xml" 
          media-overlay="ch1_audio"/>
    <item id="ch1_audio" 
          href="chapter1_audio.smil" 
          media-type="application/smil+xml"/>
</manifest>

引用媒体叠加的Manifest项目必须如Core Media TypesPublications301)规定的具有application/smil+xml媒体类型。

media-overlay属性必须附加到只引用EPUB Content Document的manifest项目。

单个媒体叠加文件可以引用不止一个EPUB EPUB内容文件,但是一个EPUB EPUB内容文件不得被多个媒体叠加文件所引用。

并非每个EPUB EPUB内容文件manifest的item都需要一个媒体叠加与之相关联。如果一个EUB内容文件全部或部分地被媒体叠加所引用,那么其manifest的item条目必须通过media-overlay属性来加以指明。

本特性向前兼容:2.0版本的阅读系统可以安全地忽略media-overlay属性,并且按照自己的正常方式处理文件。

###Media Overlays Metadata Vocabulary,媒体叠加元数据词汇

以下两个表都定义一组属性,用于包文件元数据,并且构成可引用的词汇。

引用这个词汇的基础IRI是:http://www.idpf.org/epub/vocab/overlays/#

注意
media:”前缀(Publications301)被保留,用于在包元数据中包含这些属性。

active-class 说明: 作者定义的CSS类名称,用于当前播放的EPUB EPUB内容文件元素。
许可值: xsd:string
基数: 0或1个 例子: -epub-media-overlay-active

duration
说明: 整个演示或特定媒体叠加的时长。指定的时长针对著作时已知的声频剪辑,因此不包括来自外部资源和语音合成的实况流。 许可值: 时钟值是SMIL clock values的子集,定义在SMIL。见附录B, Examples of Clock Values
基数: 对出版物和每个媒体叠加,正好1个(Exactly one for the Publication and for each Media Overlay)。
例子: 1:36:20

narrator
说明: 旁白人。
许可值: xsd:string
基数: 0或1个
例子: Joe Speaker

包文件必须包含每个媒体叠加以及整个出版物的时长。包文件也可以包含旁白人的信息,尤其是当每个媒体叠加都有各自的旁白人或为整个出版物指定了一个旁白人的时候。包文件也可以包含作者自定义的CSS类名称,它用于当前播放的EPUB EPUB内容文件元素。

包文件必须包括各媒体叠加以及整个出版物的期限。包文件可能包括叙述者在特定的信息,以及时,每个媒体叠加有其自己的旁白,或有一个叙述者为整个出版物指定。包文件可能还包括一个作家定义的CSS类名被应用到当前播放的EPUB内容文件元素。

当一个meta元素专属单一媒体叠加文件的时候,about属性被用来引用具体哪一个。没有about属性的meta元素被视为整个出版物的。active-class属性不得与about属性一起使用,因为它总是被认为用于整个出版物。

下面的例子说明带有关于媒体叠加元数据的包文件

<package>
    <metadata>
        …        
        <meta property="media:duration" refines="#ch1_audio">0:32:29</meta>
        <meta property="media:duration" refines="#ch2_audio">0:34:02</meta>
        <meta property="media:duration" refines="#ch3_audio">0:29:49</meta>
        <meta property="media:duration">1:36:20</meta>
        <meta property="media:narrator">Joe Speaker</meta>
        <meta property="media:active-class">-epub-media-overlay-active</meta>
        …
    </metadata> 
    …
</package>

##Playback Behaviors 播放行为

###Loading the Media Overlay,加载媒体叠加
EPUB阅读系统加载包文件时,它必须参考manifest里面各个item元素的media-overlay属性来发现用于EPUB EPUB内容文件的相应媒体叠加。媒体叠加元素开始播放(的位置),必须对应于期待播放的EPUB内容文件的起始点。请注意,EPUB EPUB内容文件的开始点,可以对应于媒体叠加的开始或中间。当媒体叠加文件播放完毕,阅读系统应该载入下一个EPUB EPUB内容文件(由包文件spine指定的),并载入其相应的媒体叠加文件,假如提供有的话。

###Basic Playback,基本播放

####Timing and Synchronization,定时与同步

阅读系统必须按顺序渲染body元素的直接子元素。seq元素的子元素必须按顺序渲染,在最后一个子元素播放完毕的时候,播放结束。par元素的子元素必须并列渲染(大家同一时间开始),在所有的子元素播放完毕的时候,播放结束。当body元素的最后一个子元素播放完毕时,媒体覆盖文件的播放结束。

####Rendering Audio,渲染音频

遇到媒体叠加audio元素时,阅读系统必须播放src属性所引用的音频资源,由clipBegin属性给出的剪辑偏移时间开始、并在由clipEnd属性给出的剪辑偏移时间结束。必须遵守以下规则:

  • 如果clipBegin未指定,其值为0。
  • 如果clipEnd未指定,它的值是物理介质的总长时间。
  • 如果clipEnd超过物理介质的总长时间,那么它的值被认为是物理介质的总长时间。

用户可控的音频播放选项应包括时间比例修改,其中改变播放速率不得扭曲音调。建议的范围是半速到倍速。

####Rendering EPUB Content Document Elements,渲染EPUB内容文件元素

当遇到媒体叠加text元素,阅读系统应确保src属性所引用的EPUB内容文件元素在视口中可见。带有[CSS Viewport](CSS Viewport])的阅读系统应该把active-class元数据属性给出的类名添加到正在播放的EPUB内容文件。反过来,当播放状态改变时,类名应该被删除,见Associating Style Information

active-class和playback-active-class元数据属性是可选的,如果省略,阅读系统的行为则取决于实施。

###Interacting with the EPUB Content Document,与EPUB内容文件交互
####Navigation,导航

由于媒体叠加和EPUB EPUB内容文件密切相关,根据媒体叠加播放当前的所在位置,阅读系统很容易在EPUB EPUB内容文件里定位。如果用户暂停同步播放,导航到出版物的另一个部分,同步播放必须在这一点上恢复。例如,如果EPUB EPUB内容文件的具体某页是所需的位置,那么在媒体叠加里找到这个相同点,并且从这里开始播放。

这个同样的方法允许把用户在EPUB导航文件里选择的导航点和媒体叠加播放同步起来。阅读系统为那个文件加载媒体叠加,并基于导航点目标的ID(XML)找到开始播放的正确点。

媒体叠加文件也可以直接与导航文件关联,以提供其内容的同步播放,甚至不需要在spine里包含它所处的XHTML内容文件。阅读系统应保持导航文件的媒体叠加与用户在EPUB EPUB内容文件里面的当前位置同步。


媒体叠加文件元素可以和EPUB EPUB内容文件的表格等结构相关联。阅读系统应保持媒体叠加播放与用户导航里面的表格行和单元格同步。阅读系统也可播放单元格内容之前的对应表头。

####Embedded Audio and Video,嵌入的音频和视频
关联有媒体叠加的EPUB EPUB内容文件本身可能包含嵌入式视频和音频媒体,可以用媒体叠加元素指向它们。与文本和图像不同,视频和音频媒体有内在的时长。因此,当阅读系统渲染由媒体叠加所描述的同步时,必须作废嵌在EPUB内容文件的音频和视频媒体的默认播放行为。

注意下面的规则只适用于关联在EPUB内容文件里引用的(HTML5的)videoaudio元素引用。也就是说,规则只适用于在媒体叠加里由text元素指向的那些元素(即,通过src属性)。不是由媒体叠加元素引用的嵌入媒体不受这些规则的限制。

  • 所有的嵌入在EPUB EPUB内容文件内的音频和视频媒体引用,都必须有共同的停播界面(通常为:播放/暂停控制,时间滑块,音量等)。要求这种行为是为了避免在媒体叠加里定义的播放顺序,和由于用户互动或执行脚本而产生的任意播放行为发生冲突。因此,当阅读系统在播放模式下,它应该:

  • 从页面隐藏单个视频/声频的UI控制,它重写controls属性定义的默认行为。

  • 禁止嵌入在EPUB EPUB内容文件里的脚本调用播放视频/声频的JavaScript API(如,被制作成出版物行为的一部分)。建议内容制作者应该避免出版旨在 对嵌入的视频/声频媒体进行控制的脚本。这样,出版的媒体叠加能够完全掌控同步演示,而不必冒来自脚本使动的用户行为风险。

  • 所有的嵌入在EPUB EPUB内容文件内的音频和视频媒体引用,都必须初始化到“停播”状态,并且能够从内容流零位置开始播放(有可能显示用HTML5 poster属性指定的图像)。本要求重写HTML5 autoplay属性定义的默认行为。

  • 当一个EPUB内容文件元素变成活动的,不论那个元素的src属性指向的是何种内容类型,EPUB样式表的可视化高亮规则都起作用(例如,由active-class元数据属性定义的CSS类名,应该应用到主EPUB EPUB内容文件里的可见音视频播放控制)。

  • 除了为文本片段和图像设置的媒体叠加激活的默认行为,音视频播放还必须根据媒体叠加同步制作者所意味的时长开始和停止(根据标准的SMIL定时模式)。有两种可能的情形:

  • 当媒体叠加text元素在其父容器par里没有姊妹元素的时候,引用的EPUB EPUB内容文件音频或视频媒体必须播放到结束,在此位置text元素的寿命终止。在这种情况下,
    text元素的时长(以及通过推论得到父容器par的)是引用的音频或视频剪辑的时长。

  • 当媒体叠加text元素在其父容器par里有audio姊妹元素的时候,引用的EPUB EPUB内容文件音频或视频媒体的播放时长必须受audio姊妹元素的约束。在这种情况下,父容器par的时长
    是子audio剪辑的时长,而与text元素指向的音频或视频媒体的长度无关。这样的行为有可能导致嵌入的音频或视频媒体提前停止播放(在达到全部时长之前),或在并行媒体 叠加audio播放完成之前停止(在此情况下,最后播放的媒体画面要保持可见,直到父容器par最后结束)。本行为等价于携带(SMILendsync属性的媒体叠加audio元素。

  • 此外,阅读系统应该为用户暴露每个独立音轨的音量控制(即,从媒体叠加的audio元素,从EPUB EPUB内容文件里面的嵌入音频或视频媒体),以便于声频输出可以调节到
    听众的需要。注意,拥有重叠的音轨(overlapping audio tracks)通常是制作时候的考虑:内容制作者为了说明的目的通常为视频音轨添加一层声频信息。
    建议仔细检查叠加声频的情形,并且在制作阶段予以解决,因为不要求阅读系统以何种特殊方式同时处理多个音量级别。

  • 当一个text元素在媒体叠加里变成不活动,并且它指向嵌入的视频或声频时,被引用的媒体必须设置到初始“停播”状态,并且能够从内容流零位置开始播放(有可能显示经由HTML5标记指定的图像)。
    ####Text-to-Speech,语音合成
    当不带audio姊妹元素的媒体叠加text元素在目标EPUB EPUB内容文件里引用文本的时候,具有语音合成(TTS)功能的阅读系统应该使用TTS来渲染被引用的文本。
    按照阅读系统合规要求,在目标EPUB EPUB内容文件里提供的和语音有关的信息,应该作为媒体叠加渲染的一部分用来播放音频流。见Reading System Text-to-Speech Conformance RequirementsPublications301)。

媒体叠加text元素的寿命对应于相关语音合成的渲染时间。text元素的时长(以及籍推断得到的par父元素时长)取决于TTS引擎的执行,并且在创作时间是未知的(语速、暂停和其它韵律参数等因素影响音频输出)。

###Skippability and Escapability,快进和逸出
####Skippability,跳过

阅读时,用户可能需要打开或关闭出版物的某些功能,如侧栏、脚注、页码、或其他类型的次要内容。此功能称为跳过。阅读系统应使用的媒体叠加元素的epub:type属性所提供的语义信息来确定何时给用户提供跳过的功能选项。在下面的例子中,阅读系统应给用户提供打开和关闭分页/页号的选项。通常听这些东西很烦人。

下面的例子显示了有分页的媒体叠加文件

<smil xmlns="http://www.w3.org/ns/SMIL" 
      xmlns:epub="http://www.idpf.org/2007/ops"
      version="3.0">
    <body>
        <!-- a paragraph -->
        <par id="id1">
            <text src="chapter1.xhtml#para1"/>
            <audio src="chapter1_audio.mp3" clipBegin="0:23:22.000" clipEnd="0:24:15.000"/>
        </par>

        <!-- a page number -->
        <par id="id2" epub:type="pagebreak">
            <text src="chapter1.xhtml#pgbreak1"/>
            <audio src="chapter1_audio.mp3" clipBegin="0:24:15.000" clipEnd="0:24:18.123"/>
        </par>

        <!-- another paragraph -->
        <par id="id3">
            <text src="chapter1.xhtml#para2"/>
            <audio src="chapter1_audio.mp3" clipBegin="0:24:18.123" clipEnd="0:25:28.530"/>
        </par>
    </body>
</smil>

下面的例子显示了有分页的EPUB EPUB内容文件

<html … >
    …
    <body>
        <p id="para1">This is the paragraph before the pagebreak … </p>
        
        <br id="pgbreak1" epub:type="pagebreak" title="234"/>
        
        <p id="para2">This is the paragraph after the pagebreak …</p>
    </body>
</html>

下面从StructureVocab选出一组术语供参考,阅读系统应该为用户通过它们的跳过选项:

 Sidebar
 Practice
 Marginalia
 Annotation
 Help
 Note
 Footnote
 Rearnote
 Pagebreak

媒体叠加可以使用另外的词汇,方法是把它们定义在smil根元素的epub:prefix里。基于epub:type值的阅读系统,并不都支持跳过功能。

####Escapability,逸出

可逸出的项目是诸如表格、列表、侧栏之类的嵌套结构,听众有可能希望跳过,从嵌套结构后继续阅读。退出功能与跳过功能的不同之处在于,它不启用或禁用整个项目的类型,而是提供一个出口(例如,用户可以收听部分内容,然后选择退出)。阅读系统必须通过epub:type属性的值(如:glossary)确定嵌套结构的开始。并应给用户提供选项,以跳过该结构的播放,并继续其后的任何内容。

下面的例子显示用于EPUB文件的媒体叠加文件。前者含有一个paragraph、一个glossary和另一paragraph。支持可退出的阅读系统会给用户中断播放glossary的选择,并继续发挥文档中的段落。

<smil xmlns="http://www.w3.org/ns/SMIL" 
      xmlns:epub="http://www.idpf.org/2007/ops"
      version="3.0">
    <body>
        <!-- a paragraph, part of the regular document text -->
        <par id="id1">
            <text src="chapter1.xhtml#para1"/>
            <audio src="chapter1_audio.mp3" clipBegin="0:23:22.000" clipEnd="0:24:15.000"/>
        </par>

        <!-- a glossary, which is a nested structure -->
        <seq id="id2" epub:textref="chapter1.xhtml#g0" epub:type="glossary">
            <par id="id3" epub:type="glossterm">
                <text src="chapter1.xhtml#g1"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:24:15.000" clipEnd="0:24:18.123"/>
            </par>
            <par id="id4" epub:type="glossdef">
                <text src="chapter1.xhtml#g2"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:24:18.123" clipEnd="0:25:28.530"/>
            </par>
            <par id="id5" epub:type="glossterm">
                <text src="chapter1.xhtml#g3"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:25:28.530" clipEnd="0:25:45.515"/>
            </par>
            <par id="id6" epub:type="glossdef">
                <text src="chapter1.xhtml#g4"/>
                <audio src="chapter1_audio.mp3" clipBegin="0:25:45.515" clipEnd="0:27:04.123"/>
            </par>
        </seq>

        <!-- another paragraph, part of the document text that comes after the glossary -->
        <par id="id7">
            <text src="chapter1.xhtml#para2"/>
            <audio src="chapter1_audio.mp3" clipBegin="0:27:04.123" clipEnd="0:27:59.000"/>
        </par>
    </body>
</smil>

##附录A. Media Overlays Schema,媒体叠加构架
媒体叠加的schema见http://www.idpf.org/epub/301/schema/media-overlay-30.nvdl。
使用本架构进行验证,处理器需要支持NVDLRelaxNGISO SchematronXSD-DATATYPES

 注
 NVDL schema可以用多关验证来代替,即使用嵌入的RELAX NG和独立ISO Schematron schemas。

##附录B. Examples of Clock Values 时钟值例子
本附录只是说明

下面的例子是允许的时钟值:
 5:34:31.396 = 5 hours, 34 minutes, 31 seconds and 396 milliseconds
 124:59:36 = 124 hours, 59 minutes and 36 seconds
 0:05:01.2 = 5 minutes, 1 second and 200 milliseconds
 0:00:04 = 4 minutes
 09:58 = 9 minutes and 58 seconds
 00:56.78 = 56 seconds and 780 milliseconds
 76.2s = 76.2 seconds = 76 seconds and 200 milliseconds
 7.75h = 7.75 hours = 7 hours and 45 minutes
 13min = 13 minutes
 2345ms = 2345 milliseconds
 12.345 = 12 seconds and 345 milliseconds

#C. Acknowledgements and Contributor,附录C. 致谢与贡献人

本附录不是规范内容(翻译省略,原文点此

⚠️ **GitHub.com Fallback** ⚠️