VideoTrack

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

VideoTrack 介面代表來自 <video> 元素的單個影片軌道。

訪問 VideoTrack 物件最常見的用途是切換其 selected 屬性,從而使其成為其 <video> 元素的活動影片軌道。

例項屬性

selected

一個布林值,用於控制影片軌道是否處於活動狀態。在任何給定時間只能有一個影片軌道處於活動狀態,因此將一個軌道的此屬性設定為 true,而另一個軌道處於活動狀態時,將使該另一個軌道失效。

id 只讀

一個字串,唯一標識媒體中的軌道。此 ID 可用於透過呼叫 VideoTrackList.getTrackById() 來定位影片軌道列表中的特定軌道。如果媒體支援按媒體片段進行查詢(根據 Media Fragments URI 規範),則該 ID 也可以用作 URL 的片段部分。

kind 只讀

一個字串,指定軌道的所屬類別。例如,主影片軌道的 kind"main"

label 只讀

一個字串,為軌道提供人類可讀的標籤。例如,kind"sign" 的軌道可能有一個 label"A sign-language interpretation"。如果未提供標籤,則此字串為空。

language 只讀

一個字串,指定影片軌道的首選語言,如果未知則為空字串。語言指定為 BCP 47 語言標記,例如 "en-US""pt-BR"

sourceBuffer 只讀

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

用法說明

要獲取給定媒體元素的 VideoTrack,請使用該元素的 videoTracks 屬性,該屬性返回一個 VideoTrackList 物件,您可以透過該物件獲取媒體中包含的各個軌道。

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

然後,您可以使用陣列語法或像 forEach() 這樣的函式來訪問媒體的各個軌道。

第一個示例獲取媒體上的第一個影片軌道

js
const firstTrack = tracks[0];

下一個示例將遍歷媒體的所有影片軌道,啟用使用者首選語言(來自變數 userLanguage)的第一個影片軌道。

js
for (const track of tracks) {
  if (track.language === userLanguage) {
    track.selected = true;
    break;
  }
}

language 指定為有效的 BCP 47 語言標記,例如,美國英語為 "en-US"

規範

規範
HTML
# videotrack

瀏覽器相容性