注意

本文件為W3C於2019年05月08日發布之EPUB Media Overlays 3.2的翻譯版本。此翻譯版本係由台灣數位出版聯盟(Taiwan Digital Publishing Forum, TDPF)自願翻譯,譯者盡可能維持英文原文本意與翻譯品質,唯翻譯內容仍可能有所錯誤。如有發現錯誤或不妥之處,請透過GitHub與譯者聯繫、修正或建立issue。

本翻譯文件僅供參考,唯一的正式版本請以W3C網站發布之英文原文版為準。

翻譯版本最後更新日期:2022年01月23日

EPUB媒體層疊3.2

最終社群小組規格

最新編輯草稿:
https://w3c.github.io/epub-specs/archive/epub32/spec/epub-mediaoverlays.html
編輯:
Marisa DeMeglio (DAISY Consortium)
Daniel Weck (DAISY Consortium)
協助參與:
GitHub w3c/publ-epub-revision
提出問題
版本紀錄
修改要求

概要

本規格定義了如何使用 [SMIL3] (同步多媒體整合語言, Synchronized Multimedia Integration Language)、包裝文件、CSS樣式表與EPUB®內容文件,以表現聲音和EPUB內容文件的同步。

媒體層疊可以讓文字與聲音同步,以增進無障礙輔助性給難以閱讀傳統書籍上文字的使用者。媒體層疊也提供因各種理由無法閱讀文字的讀者連續聆聽的體驗,且傳統嵌入聲音技術無法提供。甚至在某些方面提供了傳統思維無法提供的無障礙輔助性考量(例如,為了語言學習或能閱讀商售有聲書)。

本規格屬於組成 [EPUB32] 的規格群之一,其為基於XML與Web標準的數位出版品交換與遞送格式。要了解整體EPUB 3規格,需要與其他規格一併閱讀且理解。

可參考 [EPUB32Changes] 以了解本規格與其前版本的差異資訊。

本文件狀態

本規格由EPUB 3社群小組所發表。並非W3C標準也不在W3C標準程序上。請注意本規格適用於W3C社群完整規範協議(FSA)。可進一步了解W3C社群與業界小組

如果你想要對本文件提出意見,請寄送到public-epub3@w3.org訂閱存檔)。

1. 導論

1.1 與其他規格的關係

本章節為非規範性。

1.1.1 與SMIL的關係

本規格依靠於 [SMIL3] 之子集,其中EPUB媒體層疊元素與屬性定義於媒體層疊文件中的定義出自其延伸。

1.2 術語

專屬於EPUB 3的術語在本文件中以括號(譯注:英文版為首字大寫。範例如「作者」,「閱讀系統」)。術語與定義的完整清單提供於 [EPUB32] 。

每章節術語第一次出現時才會連結至其定義。

1.3 適用性

除了標註為非規範性的章節,本規格中所有製作指針、圖表、範例與注意事項都為非規範性。其餘本規格中的內容皆為規範性。

關鍵字:可以(MAY)必需(MUST)不得(MUST NOT)非必要(NOT REQUIRED)選擇性(OPTIONAL)推薦(RECOMMENDED)必要(REQUIRED)應該(SHOULD)不應(SHOULD NOT)應該以 [RFC2119] 之記述解釋。

1.4 命名空間字首對應

為求方便,以下命名空間字首 [XML-NAMES] 用於本規格而無需另外宣告。若要使用其他字首在EPUB內容文件中,宣告為必要

字首 URI
epub http://www.idpf.org/2007/ops

2. 媒體層疊文件定義

2.1 導論

本章節為非規範性。

同步語音朗讀使用於主流電子書、教育工具以及作為專為閱讀印刷品有障礙者所調整的電子書。在EPUB 3中,這些類型的書籍可以使用媒體層疊文件製作,以描述預先錄製的語音朗讀之時間點,以及如何與EPUB內容文件標記關聯。供媒體層疊使用的檔案格式定義如 [SMIL3] 的子集,其為W3C推薦標準,使用XML作為呈現同步多媒體資訊之用。

媒體層疊功能在設計上,對於不支援的EPUB閱讀系統顯示為透明。所以在EPUB出版品中包含媒體層疊不會影響到不支援媒體層疊閱讀系統對EPUB排版的能力,因為媒體層疊不會呈現。

本規格的未來版本可能會加入對影片媒體的支援(例如同步文字/手語書籍),但本版本僅支援與EPUB內容文件的聲音媒體同步。

2.2 內容適用性

媒體層疊文件必需>符合以下領域需求:

文件特性

  必需符合定義於XML適用性 [EPUB32] 中對XML文件的適用性限制。

  必需合乎定義在附錄A,媒體層疊綱要中的媒體層疊綱要,以及符合所有在媒體層疊文件定義中表述的適用性限制。

  必需在製作上反應所關聯的EPUB內容文件的結構,如在結構中所述。

  可以參照多於一個的EPUB內容文件,但是一份EPUB內容文件不得被多於一個的內容覆蓋文件所參照。

  必需呼應嵌入媒體的需求。

  應該使用適當的語意標記,如在語意變化中說明。

  必需EPUB出版品一起被包裝,如包裝中所呈現。

檔案特性

  媒體層疊檔案檔名應該使用副檔名.smil

2.3 閱讀系統適用性

EPUB閱讀系統對於媒體層疊的支援為選擇性。閱讀系統若支援媒體層疊必需符合以下領域需求:

不支援媒體層疊的閱讀系統必需符合以下領域需求:

2.4 媒體層疊文件定義

除另外指定,本章所有定義的元素 [XML] 都屬於https://www.w3.org/ns/SMIL命名空間 [XML-NAMES] 。

2.4.1 smil元素

smil元素為所有媒體層疊文件的根元素。

元素名稱

smil

用法

smil元素為媒體層疊文件的根元素。

屬性
version [必要]

指定 [SMIL3] 規格的版本數字,表示媒體層疊所使用的版本。

該屬性值必需為「3.0」。

id [選擇性]

元素的ID [XML] ,在整份文件中必需為唯一。

epub:prefix [選擇性]

宣告額外的詮釋資料用語字首。

請參考語意變化以取得更多資訊。

內容模型

依此順序:

2.4.2 head元素

head元素在媒體層疊文件中為詮釋資料容器。

元素名稱

head

用法

head元素為smil元素選擇性的第一個子元素。

屬性

內容模型

metadata [零或一個]

由於本規格不定義任何必須出現於媒體層疊文件的詮釋資料特性,故head元素為選擇性

2.4.3 metadata元素

metadata元素表示媒體層疊文件的詮釋資料。metadata元素為一延伸點,其允許包含使用任何詮釋資訊結構語言的詮釋資料。

元素名稱

metadata

用法

作為head元素的子元素。

屬性

內容模型

[零或多個] 來自任何命名空間的元素

本規格未定義任何必需出現在媒體層疊文件的詮釋資料特性;metadata元素供客製化詮釋資料需求使用。

2.4.4 body元素

body元素為媒體層疊文件中包含呈現的開始點。其包含了parseq元素的主要序列。

元素名稱

body

用法

body元素為smil元素必要的第二個子元素。

屬性
epub:type [選擇性]

結構語意表述用以對應在EPUB內容文件中呼應的元素。

其值為由空白分隔的特性 [Packages32] 類別列表。請參考語意變化以獲得更多資訊。

id [選擇性]

元素的ID [XML] ,在整份文件中必需為唯一。

epub:textref [選擇性]

相對的IRI參照 [RFC3987] 以呼應EPUB內容文件,包含一個斷片識別碼用以參照特定的元素如 [XPTRSH] 。

內容模型

以任何順序:

  • seq [零或多個]

  • par [零或多個]

至少必要一個parseq元素。

2.4.5 seq元素

seq元素包含需要被依序處理的媒體物件。

元素名稱

seq

用法

一或多個seq元素可以作為body元素以及seq元素的子元素。

屬性
epub:type [選擇性]

結構語意表述用以對應在EPUB內容文件中呼應的元素。

其值為由空白分隔的特性 [Packages32] 類別列表。請參考語意變化以獲得更多資訊。

id [選擇性]

元素的ID [XML] ,在整份文件中必需為唯一。

epub:textref [必要]

相對IRI參照 [RFC3987] 以呼應EPUB內容文件,包含一個斷片識別碼用以參照特定的元素如 [XPTRSH] 。

請參考結構以取得更多資訊。

內容模型

以任何順序:

  • seq [零或多個]

  • par [零或多個]

至少必要一個parseq元素。

2.4.6 par元素

par元素包含要被平行處理的媒體物件。

元素名稱

par

用法

一或多個par元素可以作為body元素以及seq元素的子元素。

屬性
epub:type [選擇性]

結構語意表述用以對應在EPUB內容文件中呼應的元素。

其值為由空白分隔的特性類別列表 [Packages32] 類別。請參考語意變化以獲得更多資訊。

id [選擇性]

元素的ID [XML] ,在整份文件中必需為唯一。

內容模型

以任何順序:

audio元素為選擇性,僅當其對應的text元素參照到聲音或者影片媒體(請見嵌入媒體)或者對應到文字內容供處理文字轉換語音(TTS)所用。

2.4.7 text元素

text元素參照到EPUB內容文件中的元素。text元素一般參照到文字性質的元素,但也可以參照到其他EPUB內容文件的媒體元素(請見嵌入媒體)。

元素名稱

text

用法

par元素的必要子元素。

屬性
src [必要]

相對IRI參照 [RFC3987] 以呼應EPUB內容文件,包含一個斷片識別碼用以參照特定的元素如 [XPTRSH] 。

id [選擇性]

元素的ID [XML] ,在整份文件中必需為唯一。

內容模型

2.4.8 audio元素

audio元素表示聲音媒體的片段。

元素名稱

audio

用法

par元素的必要子元素,除非其對應的text元素參照到聲音或者影片媒體,或者對應到文字內容供處理文字轉換語音(TTS)所用,這些狀況則為選擇性(請見嵌入媒體)。

屬性
id [選擇性]

元素的ID [XML] ,在整份文件中必需為唯一。

src [必要]

相對或絕對IRI參照 [RFC3987] 至聲音檔案。該聲音檔案必需為列於核心媒體類型資源 [EPUB32] 表格中的聲音格式之一。

clipBegin [選擇性]

一個時間值以指定物理媒體的時間點,呼應到該聲音片段的開始點。

必需為 [SMIL3] 的時間值

請見 附錄B,時間值範例

clipEnd [選擇性]

一個時間值以指定物理媒體的時間點,呼應到該聲音片段的結束點。

必需為 [SMIL3] 的時間值

請見附錄B,時間值範例

時間邏輯上的時間點,其結束位置必需在指定於clipBegin屬性開始時間點之後。

內容模型

3. 製作媒體層疊

3.1 導論

本章節為非規範性。

出版品中預先錄製好的配音可以一系列的聲音片段呈現,個別對應到EPUB內容文件的一部分。一個單獨的聲音片段,舉個例子,一般呈現單一句子或者段落,但沒辦法和其他片段或文件中的文字建立順序關係。媒體層疊則解決了同步的問題,使用 [SMIL3] 標記以連結有結構的旁白聲音到EPUB內容文件中對應的文字(或者其他媒體)。媒體層疊實際上為SMIL 3.0簡化了的子集以允許播放所定義的片段序列。

SMIL元素主要用於結構化媒體層疊的元素為body(用於主要序列)、seq(序列)以及par(平行)。(請參照媒體層疊文件定義以獲得更多這些與其他SMIL元素的資訊)。

par元素為覆蓋的基本建構區塊,其呼應到EPUB內容文件的詞句。該元素提供了兩個關鍵資訊片段以供內容同步:1)聲音片段其包含對詞句的旁白;以及2)指出相關聯的EPUB內容文件斷片。par元素使用兩個媒體子元素以呈現該資訊:一個audio元素以及一個text元素。由於par元素平行處理其子元素,所以聲音片段以及EPUB內容文件斷片將會同時播放,結果為同步呈現。

text元素的src屬性透過其IRI參照對應相關連的詞語、句子,或者其他EPUB內容文件的斷片。audio元素的src屬性相同地參照對應聲音片段的位址,以及加入選擇性clipBeginclipEnd屬性以指出該片段中的特定時間點。

par元素依序列配置在一起,以建構一系列的詞語或句子。並非所有EPUB內容文件中的元素都要在媒體層疊中呼應par元素,僅有與聲音旁白相關者需要。

par元素也能加到seq元素中來定義更多複雜的結構,如部分或者章節(請見結構)。

3.2 與EPUB內容文件的關係

注意事項

於本章節中,EPUB內容文件假定為一份XHTML內容文件。儘管媒體層疊可被用於SVG內容文件,但播放行為可能不恆定,而無法保證其互通性。

3.2.1 結構

媒體層疊文件的body包含兩個元素:par元素與seq元素。這些元素的順序必需符合EPUB內容文件的預設閱讀順序。

par元素代表詞句。每一個元素定義了一段文字與聲音元件,在播放時同步。

seq元素代表序列。其用於代表巢狀容器如章節、次要內容、標題、腳註等。其允許承繼這些容器結構並且在媒體層疊文件中被取得。

seq元素必需包含一個epub:textref屬性。該屬性的IRI [RFC3987] 值必需參照EPUB內容文件中對應的結構元素。因為seq元素不提供同步程序,這項屬性允許閱讀系統能靜態匹配該元素到文字的位置上。

以下範例呈現一份具備巢狀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>

            <!-- a figure -->
            <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>

            <!-- more sentences in the chapter (outside the figure) -->
            <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元素的原因是,這麼做可以在播放時識別它們的開始與結束位置。閱讀系統可以透過此針對該內容釋義的版面提供播放選項,例如跳過一段長圖說、關閉對換頁的處理(請見可跳過性與可跳出性),或者調整閱讀模式以適合結構,像是表格。

3.2.2 粒度(Granularity)

本章節為非規範性。

媒體層疊text元素之src屬性透過其ID [XML] 參照到EPUB內容文件的元素上。故此,媒體層疊的粒度等級依附於EPUB內容文件如何被標記。如果最細的標記等級落在段落層級上,那麼就會是媒體層疊同步能夠發布的可能最細等級。同理,如果有著子段落標記,例如使用 [HTML] span元素來代表詞句或句子,則可以在媒體層疊中提供更細的粒度。越細的粒度越可以讓使用者得到更精準的同步播放結果,無論在按照字或詞句導覽時,還是在搜尋文字時,但也會增加媒體層疊文件的檔案尺寸。

3.2.3 嵌入媒體

任何與媒體層疊相關連的EPUB內容文件可以包含嵌入媒體像是影片、聲音或者圖片。該媒體層疊text元素可以用於透過其ID [XML] 值來用於參照這些嵌入媒體。

當一個text元素參照包含聲音的嵌入媒體時,其匹配的audio元素為選擇性

作者應該避免使用腳本來控制所參照在EPUB內容文件中的嵌入媒體播放,這可能會與媒體層疊播放行為產生衝突。

3.2.4 文字轉換語音

本規格允許在預錄的聲音斷片外,使用文字轉換語音(TTS)。當媒體層疊text元素沒有對應的audio元素參照到目標EPUB內容文件元素時,該參照元素的內容必需能夠使用TTS處理。例如,其可以為文字性質的EPUB內容文件元素,或者包含文字的回退。

3.3 語意變化

為了表達語意變化,epub:type屬性 [ContentDocs32] 可以添加到媒體層疊parseqbody元素。

媒體層疊epub:type屬性的值限制需與EPUB內容文件中的epub:type屬性一致。請參考語意變化 [ContentDocs32] 以了解細節。

epub:type屬性可使閱讀系統行為適用於所指示的語意類型。這些行為的範例為可跳過性與可跳出性注意事項

本規格採用用語相關機制定義於用語關聯 [ContentDocs32] 且沒有任何變更。來自預設用語集的術語必需在覆蓋文件中以無字首的方式使用。

媒體層疊可以使用額外的用語,透過epub:prefix屬性在根smil元素中進行定義。

3.4 連結樣式資訊

正在播放的EPUB內容文件元素之視覺表現資訊可以透過CSS樣式表中作者定義的class來表述。這些作者定義的class名稱應該包裝文件的詮釋資料中使用詮釋資料特性active-classplayback-active-class來進行宣告。這些class名稱才可被閱讀系統發現。

active-classplayback-active-class特性不得refines屬性 [Packages32] 一起使用,由於這些特性一般視為要套用在整份內容釋義

本範例展示作者如何連結樣式資訊與正在播放的EPUB內容文件。

注意事項

儘管本範例使用class名稱-epub-media-overlay-active-epub-media-overlay-playing,但可使用任何class名稱。選擇的class名稱可使用所有支援的CSS功能。

本範例中,閱讀系統可以套用作者定義的-epub-media-overlay-activeclass到每一個在EPUB內容文件中在播放時啟用的文字元素。反過來說,當元素不再播放時,要移除其class名稱。使用者將會看到每一個EPUB內容文件元素在播放時將會套用黃色背景的樣式。

閱讀系統也可以套用作者定義的-epub-media-overlay-playingclass,當媒體層疊開始時,套用到該EPUB內容文件的文件元素。當播放結束時,class名稱將會被移除。以XHTML內容文件為例,class名稱將會套用到html元素。對SVG內容文件而言,將會套用到svg元素。使用者將會在媒體層疊播放時,看到所有未在作用的文字元素變成灰色。當播放停止,所有元素的顏色又會回到其預設值。

3.5 包裝

3.5.1 包含媒體層疊

EPUB內容文件整體或者部分被媒體層疊參照時,其宣告item元素 [Packages32] 必需包含一個media-overlay屬性。其屬性必需為對應的媒體層疊文件在宣告item中的ID [XML] 。

media-overlay屬性不得被套用在宣告item元素中未被參照的EPUB內容文件上。

供媒體層疊文件使用的宣告項目必需媒體類型為application/smil+xml

3.5.2 包裝詮釋資料

包裝文件必需meta元素duration特性中包含整個內容釋義的音檔長度。

此外每一個EPUB內容文件與相關媒體層疊的音檔長度也必需個別提供。refines屬性 [Packages32] 用於連結每一段長度宣告到呼應的宣告item [Packages32] 。

作者可以在包裝文件中包含旁白narrator的資訊,也可以將作者定義的CSS class名稱套用到正在播放的EPUB內容文件元素上。

注意事項

字首media:在 [Packages32] 中保留供於包裝的詮釋資料中包含這些特性所用。

4. 播放行為

4.1 載入媒體層疊

EPUB閱讀系統載入包裝文件時,其必需參考宣告item元素media-overlay屬性,用以發現EPUB內容文件中對應的媒體層疊。播放必需開始於媒體層疊元素所對應到的EPUB內容文件之開始點。請注意EPUB內容文件的開始可以對應到一份媒體層疊的開始元素或者中間的元素。當媒體層疊文件結束播放時,閱讀系統應該載入下一個EPUB內容文件(如在包裝文件書脊中指定)同時載入其對應的媒體層疊文件以提供內容。

4.2 基本播放

4.2.1 時間與同步

閱讀系統必需立即處理序列中body元素中緊接的子元素。必需依序處理seq元素的子元素,當最後一個子元素結束播放時,播放完畢。必需平行處理(每一個都需要同時開始)par元素的子元素,當所有子元素結束播放時,播放完畢。當body元素的最後一個子元素播放結束時,媒體層疊文件也播放結束。

4.2.2 處理聲音

當呈現媒體層疊的audio元素時,閱讀系統必需播放src屬性中參照的聲音資源,片段的時間點透過所給予的clipBegin屬性開始,並透過所給予的clipEnd屬性結束。必需注意以下規則:

  • clipBegin未被指定時,其值預想為「0」。

  • clipEnd未被指定時,其值預想為實體媒體的完整長度。

  • clipEnd超過實體媒體的完整長度時,其值預想為實體媒體的完整長度。

使用者可控制的聲音播放選項應該包含倍速調整,但在變更播放比例時不可以使音調失真,推薦的範圍為半速與倍速。

4.2.3 處理EPUB內容文件元素

當呈現媒體層疊text元素時,閱讀系統應該確實透過src屬性參照EPUB內容文件中的元素,在顯示範圍中可見。當媒體層疊播放時,若閱讀系統有顯示範圍,則應該在EPUB內容文件中添加於詮釋資料特性中所給予的active-class>及playback-active-class之class名稱到適當的元素上。反之,在播放狀態改變時class名稱應該被移除,如連結樣式資訊所解釋。

active-classplayback-active-class詮釋資料特性為選擇性,當沒有時,閱讀系統行為由實裝端指定。

4.3 與EPUB內容文件互動

4.3.1 導覽

由於媒體層疊與EPUB內容文件緊密連結,所以閱讀系統可以很簡單地利用目前媒體層疊播放的位置來尋找到EPUB內容文件中的位置。當使用者中斷同步播放並且導覽轉移到EPUB出版品的不同部分時,同步播放必需從該點繼續。例如,當在EPUB內容文件中指定的頁碼為想要前往的位置時,則需從媒體層疊中相同位置的點開始播放。

相同的方法允許在使用者選擇EPUB導覽文件中導覽點時同步播放媒體層疊。閱讀系統載入供該檔案的媒體層疊並且尋找正確的點來開始播放,依據其導覽點目標的ID [XML] 。

注意事項

媒體層疊文件可以直接與導覽文件相關連,以提供其內容的同步播放,無論該XHTML內容文件是否包含於書脊中。請見EPUB導覽文件以了解更多資訊。

注意事項

媒體層疊文件元素可以與EPUB內容文件結構相關連,例如表格。閱讀系統需要確保媒體層疊播放在使用者導覽表格之行及資料格時保持同步。閱讀系統也可以在處理表格內容前播放對應的表格標題。

4.3.2 嵌入影音

與與媒體層疊關聯的EPUB內容文件,自身可以包含嵌入的影片與聲音媒體,並且可以透過媒體層疊元素指向。不像文字與圖片,影片與聲音媒體自身具備播放長度。結果上,當閱讀系統按照媒體層疊同步處理時,相關EPUB內容文件中預設嵌入聲音與影片媒體的預設播放行為必需要被覆蓋。

請注意以下規則僅套用到相關連EPUB內容文件中參照的 [HTML] videoaudio元素。也就是說,規則僅套用到在媒體層疊中text元素所指向的元素(即為,透過src屬性)。沒有被媒體層疊元素所參照的嵌入媒體無須遵從這些規則。

  • 所有在EPUB內容文件中受參照的嵌入聲音與影片媒體必需使其公開的播放介面不啟動(一般為:播放/暫停控制,時間軸,音量等)。此項行為為必要,以避免在媒體層疊定義中所排定的播放序列與透過使用者互動或者執行腳本的任意播放行為相互干擾。做為結果,當閱讀系統在播放模式時,其應該

    • 隱藏頁面上個別影音使用者介面控制列,其取代定義在 [HTML] 中controls屬性的預設行為。

    • 避免嵌入於EPUB內容文件的腳本啟動JavaScript影音播放API(即為,寫成部分預設行為)。也推薦內容製作者不要嵌入腳本來控制播放嵌入影音媒體。發佈的媒體層疊因此可以取得對同步呈現的完整控制,而無須面對任何受到腳本啟動客製化行為的風險。

  • 所有EPUB內容文件中參照的嵌入影音媒體必需初始化到「停止」狀態,並且準備由其內容流的零點位置播放(最好能使用 [HTML] poster屬性指定的圖片顯示)。這項需求取代了由 [HTML] autoplay屬性所定義的預設行為。

  • 當EPUB內容文件元素啟動時,需套用CSS樣式表的視覺強調規則,無論該元素之src屬性所參照的內容類型(例如,在詮釋資料特性active-class定義的CSS class名稱應該被套用在承載其之EPUB內容文件中可見的影音播放器控制項上)。

  • 除了媒體層疊啟動時對文字斷片以及圖片的預設行為外,影音播放必需按照指定的媒體層疊同步長度開始以及停止(根據標準 [SMIL3] 計時模型)。會有兩種可能的狀態:

    • 當在par母容器中,媒體層疊text元素沒有匹配的audio時,被參照的EPUB內容文件中影音媒體必需播放到其結束,於該點text元素的生命週期終結。在這案例中,text元素所默認的播放長度(以及靠該母par容器推斷)為其參照的影音片段。

    • 當在par母容器中,媒體層疊text元素有匹配的audio時,被參照的EPUB內容文件中影音媒體必需受到其匹配的audio播放長度所限制。在這案例中,母par容器實際的播放長度為其子聲音片段,而忽略text元素所指向的影音媒體自身的播放長度。這樣的行為結果會讓嵌入影音媒體播放提早結束(在到達其完整播放長度前),或者在結束平行媒體層疊聲音結束前結束(在這案例中,最後播放的影片影格應該在母par容器真正結束前保持可見)。這項行為等同於媒體層疊audio元素所隱含乘載的 [SMIL3] endsync屬性行為。

      更進一步,閱讀系統應該對每一個獨立聲音軌顯示音量等級的使用者控制條(例如,來自媒體層疊的audio元素,或者來自EPUB內容文件中嵌入的影音媒體),如此一來聲音輸出可以調整到符合聆聽者需求。請注意音檔的層疊一般為製作時的考量:內容製作者通常會為了說明用途在影片軌上添加一層聲音資訊。推薦在製作階段對於聲音層疊狀態進行仔細檢查,而閱讀系統並不需以特殊手段處理多重音量等級。

  • text元素於媒體層疊中結束啟動狀態,並且其指向到嵌入影音媒體,被參照的媒體必需被重置到初始的「停止」狀態,準備被從其內容流的零點位置準備被播放(最好能使用 [HTML] poster屬性指定的圖片顯示)。

4.3.3 文字轉換語音

當媒體層疊的text元素沒有匹配的audio元素參照到目標EPUB內容文件的文字時,支援文字轉換語音(TTS)的閱讀系統應該使用文字轉換語音處理受參照的文字。

如閱讀系統適用性需求所述,目標EPUB內容文件中提供的語音相關資訊應該被用於播放聲音流作為媒體層疊處理的一部分。請參照閱讀系統文字轉換語音適用性需求 [EPUB32] 。

媒體層疊text元素的生命週期呼應到相關語音合成的朗讀時間。該text元素所默認的長度(或者由從母par元素推測)透過文字轉換語音引擎處理而決定,所以在製作時無法提早知道(要素如語音速度、暫停以及其他音律參數都會影響到聲音輸出)。

4.4 可跳過性與可跳出性

4.4.1 可跳過性(Skippability)

當在閱讀時,使用者也許會希望開啟或關閉某些內容的功能,例如注釋、頁碼或者其他類型的次要內容。這項功能稱為可跳過性。閱讀系統應該使用媒體層疊元素中epub:type屬性所提供的語意資訊來判斷何時提供使用者跳過功能的選項。

以下非窮舉的清單列出 [EPUB-SSV] 的術語,閱讀系統可以依此提供可跳過性選項:

  • footnote(註解)

  • endnote(腳註)

  • pagebreak(換頁)

閱讀系統若支援可跳過性,其基於epub:type,則不應推斷其值。

4.4.2 可跳出性(Escapability)

可跳出的項目為巢狀結構,例如表格以及列表,使用者也許希望能夠跳過,直接從巢狀結構後開始繼續閱讀。可跳出性功能不同於可跳過性,差別在於不是開關項目的整個種類,而是提供了可離開的選擇(也就是,使用者會在決定要跳出前聽到一部分內容)。

閱讀系統應該允許跳出巢狀結構。閱讀系統必需透過epub:type屬性的值來判斷巢狀內容的開始,以及應該提供使用者選項以跳過對該結構的播放,並且無論後續內容為何都能繼續播放。

以下非窮舉的清單列出 [EPUB-SSV] 的術語,閱讀系統可以依此提供可跳出性選項:

  • table(表格)

  • table-row(表格行)

  • table-cell(表格內容)

  • list(列表)

  • list-item(列表項目)

  • figure(圖片組)

5. EPUB導覽文件

EPUB導覽文件XHTML內容文件,所以可以與聲音媒體層疊相關聯。不像傳統的XHTML內容文件,就不被包含在書脊閱讀系統必須將EPUB導覽文件呈現給使用者(請見EPUB導覽文件 — 閱讀系統適用性 [Packages32] )。結果而言,與媒體層疊相關的行為可能會在以下脈絡而有所差異:

注意事項

指定實作細節超乎本規格的目標。DAISY媒體層疊播放需求文件提供給作者最佳實踐,也提供給閱讀系統開發者的建議。

A. 媒體層疊綱要

供媒體層疊使用的綱要可由https://github.com/w3c/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/30/media-overlay-30.nvdl取得。

使用本綱要進行驗證需要支援 [NVDL] 、 [RelaxNG-Schema] 、 [ISOSchematron] 及 [XMLSCHEMA-2] 的處理器。

注意事項

NVDL綱要層可以被使用嵌入RELAX NG及獨立ISO Schematron綱要的多通道驗證所替代。

B. 時鐘值範例

本章節為非規範性。

以下為允許使用的時鐘值範例:

C. 媒體層疊詮釋資料用語

C.1 概要

C.1.1 關於本用語

本章節為非規範性。

用語中的特性可用於meta元素中的property屬性 [Packages32] 。

C.1.2 參考資料

本用語中供參考的基本IRI為http://www.idpf.org/epub/vocab/overlays/#

字首「media:保留供 [Packages] 與本詞彙中的特性一起使用,並且無須在包裝文件中宣告。

C.2 媒體層疊特性

C.2.1 active-class

名稱: active-class
說明: 作者定義的CSS class名稱,套用於目前正在播放的EPUB內容文件元素。
允許的值: xsd:string
基數: 零或一個
範例: <meta property="media:active-class">-epub-media-overlay-active</meta>

C.2.2 duration

名稱: duration
說明: 全部或者指定的媒體層疊之播放長度。指定的播放長度由聲音片段在製作時計算,所以需排除從外圍資源而來的現場直播以及語音合成。
允許的值:

必需為 [SMIL3] 時鐘值

基數: 對整個內容釋義 ,或對每個媒體層疊都為唯一。
範例: <meta property="media:duration">1:36:20</meta>

C.2.3 narrator

名稱: narrator
說明: 配音員的姓名。
允許的值: xsd:string
基數: 零或一個
範例: <meta property="media:narrator">Joe Speaker</meta>

C.2.4 playback-active-class

名稱: playback-active-class
說明: 作者定義的CSS class名稱,套用於播放時啟動中的EPUB內容文件元素。
允許的值: xsd:string
基數: 零或一個
範例: <meta property="media:playback-active-class">-epub-media-overlay-playing</meta>

D. 謝詞與貢獻者

本章節為非規範性。

EPUB 3由W3C EPUB 3社群小組所開發,並且與出版業界小組相互協力。

EPUB 3.2改版由以下主導:

此外向編輯群致敬,本版本EPUB若缺少以下人物的顯著貢獻,則不可能完成:

特別感謝IDPF的前會員,尤其是Markus Gylling與Bill McCoy,沒有他們EPUB不可能成真。

E. 參考資料

E.1 規範性文件

[ContentDocs32]
EPUB Content Documents 3.2. URL: epub-contentdocs.html
[EPUB-SSV]
EPUB Structural Semantics Vocabulary. IDPF. URL: http://www.idpf.org/epub/vocab/structure/
[EPUB32]
EPUB 3.2. URL: epub-spec.html
[HTML]
HTML. W3C. W3C Recommendation. URL: https://www.w3.org/TR/html/
[ISOSchematron]
ISO/IEC 19757-3: Rule-based validation — Schematron. 2006-06-01. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c040833_ISO_IEC_19757-3_2006(E).zip
[NVDL]
ISO/IEC 19757-4: NVDL (Namespace-based Validation Dispatching Language). 2006-06-01. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c038615_ISO_IEC_19757-4_2006(E).zip
[Packages]
EPUB Packages 3. URL: http://www.idpf.org/epub3/latest/packages
[Packages32]
EPUB Packages 3.2. URL: epub-packages.html
[RelaxNG-Schema]
Information technology -- Document Schema Definition Language (DSDL) -- Part 2: Regular-grammar-based validation -- RELAX NG. ISO/IEC. 2008. URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/c052348_ISO_IEC_19757-2_2008(E).zip
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[RFC3987]
Internationalized Resource Identifiers (IRIs). M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: https://tools.ietf.org/html/rfc3987
[SMIL3]
Synchronized Multimedia Integration Language (SMIL 3.0). Dick Bulterman. W3C. 1 December 2008. W3C Recommendation. URL: https://www.w3.org/TR/SMIL3/
[XML]
Extensible Markup Language (XML) 1.0 (Fifth Edition). Tim Bray; Jean Paoli; Michael Sperberg-McQueen; Eve Maler; François Yergeau et al. W3C. 26 November 2008. W3C Recommendation. URL: https://www.w3.org/TR/xml/
[XML-NAMES]
Namespaces in XML 1.0 (Third Edition). Tim Bray; Dave Hollander; Andrew Layman; Richard Tobin; Henry Thompson et al. W3C. 8 December 2009. W3C Recommendation. URL: https://www.w3.org/TR/xml-names/
[XMLSCHEMA-2]
XML Schema Part 2: Datatypes Second Edition. Paul V. Biron; Ashok Malhotra. W3C. 28 October 2004. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema-2/
[XPTRSH]
XPointer Shorthand Notation. 25 March 2003. URL: https://www.w3.org/TR/2003/REC-xptr-framework-20030325/

E.2 參考性文件

[EPUB32Changes]
EPUB 3.2 Changes. URL: epub-changes.html