TextTrack

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

* 此特性的某些部分可能存在不同級別的支援。

TextTrack 介面是 WebVTT API 的一部分,代表與媒體元素關聯的文字軌道。

此型別的物件擁有將在影片不同時間點顯示的 VTTCue 物件列表。

可以使用 HTMLMediaElement.addTextTrack() 方法將 TextTrack 物件新增到 HTMLVideoElementHTMLAudioElement 元素中,這與在 <video><audio> 元素中使用 <track> 元素宣告式新增文字軌道具有相同效果。TextTrack 物件儲存在 TextTrackList 中,可以透過 HTMLMediaElement.textTracks 屬性檢索。

EventTarget TextTrack

例項屬性

此介面還繼承了 EventTarget 的屬性。

TextTrack.activeCues 只讀

一個 TextTrackCueList 物件,列出了當前活動的文字軌道提示集。當媒體的當前播放位置介於提示的開始和結束時間之間時,軌道提示是活動的。因此,對於字幕等顯示提示,活動提示正在被顯示。

TextTrack.cues 只讀

一個 TextTrackCueList,其中包含軌道的所有提示。

TextTrack.id 只讀

一個字串,用於標識軌道(如果它有 ID)。如果沒有 ID,則此值為一個空字串 ("")。如果 TextTrack<track> 元素相關聯,則軌道的 ID 與元素的 ID 匹配。

TextTrack.inBandMetadataTrackDispatchType 只讀

返回一個字串,指示軌道的帶內元資料軌道分派型別。

TextTrack.kind 只讀

返回一個字串,指示 TextTrack 描述的是哪種型別的文字軌道。它必須是允許的值之一。

TextTrack.label 只讀

一個人類可讀的字串,包含文字軌道的標籤(如果存在);否則,這是一個空字串 (""),在這種情況下,如果軌道的標籤需要暴露給使用者,您的程式碼可能需要使用軌道的其他屬性生成自定義標籤。

TextTrack.language 只讀

一個字串,指定文字軌道內容的編寫語言。該值必須是有效的 BCP 47 語言標籤,例如,美國英語為 "en-US",巴西葡萄牙語為 "pt-BR"

TextTrack.mode

一個字串,指定軌道的當前模式,該模式必須是允許的值之一。更改此屬性的值會將軌道的當前模式更改為匹配。預設值為 disabled,除非 <track> 元素的 default 布林屬性設定為 true — 在這種情況下,預設模式為 showing

sourceBuffer 只讀

建立軌道的 SourceBuffer。如果軌道不是由 SourceBuffer 建立,或者 SourceBuffer 已從其父媒體源的 MediaSource.sourceBuffers 屬性中移除,則返回 null。

例項方法

此介面還繼承了 EventTarget 的方法。

注意:TextTrackCue 介面是一個抽象類,用作其他提示介面(如 VTTCue)的父類。因此,在新增或刪除提示時,您將傳入一個繼承自 TextTrackCue 的提示型別。

TextTrack.addCue()

將一個提示(指定為 TextTrackCue 物件)新增到軌道的提示列表中。

TextTrack.removeCue()

從軌道的提示列表中刪除一個提示(指定為 TextTrackCue 物件)。

事件

cuechange

當提示進入和退出時觸發。給定的文字提示在進入時出現,在退出時消失。也可透過 oncuechange 屬性訪問。

示例

以下示例向影片新增一個新的 TextTrack,然後使用 TextTrack.mode 設定其顯示。

js
let video = document.querySelector("video");
let track = video.addTextTrack("captions", "Captions", "en");
track.mode = "showing";

規範

規範
HTML
# texttrack

瀏覽器相容性

另見