HTMLMediaElement: textTracks 屬性

Baseline 已廣泛支援

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

HTMLMediaElement 物件上只讀的 textTracks 屬性返回一個 TextTrackList 物件,該物件列出了代表媒體元素的文字軌道的所有 TextTrack 物件,其順序與文字軌道列表中的順序相同。

您可以使用 addtrackremovetrack 事件來檢測軌道何時被新增到 <audio><video> 元素以及何時被從中移除。但是,這些事件不會直接傳送到媒體元素本身。相反,它們會發送到與新增到元素中的軌道型別相對應的 HTMLMediaElement 的軌道列表物件。

返回的列表是即時的;也就是說,當軌道被新增到媒體元素或從中移除時,列表的內容會動態更改。一旦您有了列表的引用,您就可以監視它以檢測何時添加了新的文字軌道或移除了現有的軌道。

有關監視媒體元素的軌道列表更改的更多資訊,請參閱 TextTrackList 事件

一個代表媒體元素中包含的文字軌道列表的 TextTrackList 物件。可以使用 textTracks[n] 從物件的文字軌道列表中獲取第 n 個文字軌道,或者使用 textTracks.getTrackById() 方法來訪問軌道列表。

每個軌道都由一個 TextTrack 物件表示,該物件提供有關軌道的資訊。

示例

我們從一個具有多個 <track> 子元素的 <video> 開始。

html
<video controls>
  <source src="/shared-assets/videos/sintel-short.webm" type="video/webm" />
  <source src="/shared-assets/videos/sintel-short.mp4" type="video/mp4" />
  <track
    kind="subtitles"
    src="/shared-assets/misc/sintel-en.vtt"
    srclang="en"
    label="English" />
  <track
    kind="subtitles"
    src="/shared-assets/misc/sintel-de.vtt"
    srclang="de"
    label="Deutsch" />
  <track
    kind="subtitles"
    src="/shared-assets/misc/sintel-es.vtt"
    srclang="es"
    label="Español" />
</video>

HTMLMediaElement.textTracks 返回一個 TextTrackList,我們可以透過它進行迭代。在這裡,我們將所有三個軌道設定為同時顯示。

js
const tracks = document.querySelector("video").textTracks;

for (const track of tracks) {
  track.mode = "showing";
}

規範

規範
HTML
# dom-media-texttracks-dev

瀏覽器相容性

另見