<track>: Встраиваемая текстовая дорожка

HTML-элемент <track>  используется как дочерний элемент медиа-элементов <audio> and <video>. Позволяет указать синхронизированные текстовые дорожки (или данные на основе времени), например, для автоматической обработки субтитров. Файлы треков используют формат WebVTT (.vtt файлы) — Web Video Text Tracks или Timed Text Markup Language (TTML).

Категории контента Нет
Разрешённое содержимое Нет, это пустой элемент.
Пропуск тегов Так как это пустой элемент, то открывающий тег обязателен, закрывающего не должно быть.
Неявная ARIA-роль Нет соответствующей роли
Разрешённые родители Медиа элемент, перед любым потоковым контентом.
Разрешённые ARIA-роли Нет
DOM интерфейс HTMLTrackElement

Атрибуты

Этот элемент использует глобальные атрибуты.

default
Этот атрибут указывает, что дорожка должна быть включена, если пользовательские настройки не указывают, что другая дорожка является более подходящей. Может использоваться только для одного элемента track в элементе мультимедиа.
kind
Как текстовый трек должен быть использован. Если значение опущено, тип по умолчанию — subtitles (субтитры). Если атрибут отсутствует, будет использоваться subtitles. Если атрибут содержит недопустимое значение, оно принимает значение metadata. (Версии Chrome ранее 52 рассматривали недопустимое значение как subtitles.) Допускаются следующие ключевые слова:
  • subtitles
    • Субтитры обеспечивают перевод контента, который не может быть понят зрителем. Например, диалог или текст, который не является английским, в фильме на английском языке.
    • Субтитры могут содержать дополнительный контент, обычно дополнительную справочную информацию. Например, текст в начале фильмов «Звездных войн» или дата, время и место действия сцены.
  • captions
    • Подписи обеспечивают транскрипцию и, возможно, перевод аудио.
    • Подписи могут включать важную невербальную информацию, такую ​​как музыкальные сигналы или звуковые эффекты. Возможно указывать источник сигналов (например, музыка, текст, персонаж).
    • Подходит для пользователей со слабым слухом или когда звук отключен.
  • descriptions
    • Текстовое описание видеоконтента.
    • Подходит для слепых пользователей или там, где видео не видно.
  • chapters
    • Названия глав предназначены для использования при навигации по медиа-ресурсу.
  • metadata
    • Данные, используемые скриптами. Не видны пользователю.
label
Видимый пользователю заголовок текстовой дорожки, который используется браузером при выводе списка доступных текстовых дорожек.
src
Адрес файла текстовой дорожки (.vtt файл). Должен быть действительным URL. Этот атрибут должен быть указан, а его значение URL должно иметь то же происхождение, что и документ — исключая случаи, когда родительский <audio> или <video> данного track элемента имеет атрибут crossorigin.
srclang
Язык текстовых данных трека. Это должен быть валидный BCP 47 языковой тег (см. также языковые тэги в HTML и XML). Если для атрибута kind установлено значение subtitles, должен быть определён атрибут srclang.

Примечания по использованию

Типы данных дорожки

Тип данных, которые трек добавляет на носитель, задается в атрибуте kind, который может принимать значения subtitles, captions, descriptions, chapters или metadata. Элемент указывает на исходный файл, содержащий синхронизированный по времени текст, который браузер предоставляет, когда пользователь запрашивает дополнительные данные.

Отдельный media элемент не может иметь элементы track с одинаковыми значениями kind, srclang и label.

Обнаружение изменений сигнала

The underlying TextTrack, indicated by the track property, receives a cuechange event every time the currently-presented cue is changed. This happens even if the track isn't associated with a media element.

If the track is associated with a media element, using the <track> element as a child of the <audio> or <video> element, the cuechange event is also sent to the HTMLTrackElement.

let textTrackElem = document.getElementById("texttrack");

textTrackElem.addEventListener("cuechange", (event) => {
  let cues = event.target.track.activeCues;
});

In addition, you can use the oncuechange event handler:

let textTrackElem = document.getElementById("texttrack");

textTrackElem.oncuechange = (event) => {
  let cues = event.target.track.activeCues;
});

Пример

<video controls poster="/images/sample.gif">
   <source src="sample.mp4" type="video/mp4">
   <source src="sample.ogv" type="video/ogv">
   <track kind="captions" src="sampleCaptions.vtt" srclang="en">
   <track kind="descriptions"
     src="sampleDescriptions.vtt" srclang="en">
   <track kind="chapters" src="sampleChapters.vtt" srclang="en">
   <track kind="subtitles" src="sampleSubtitles_de.vtt" srclang="de">
   <track kind="subtitles" src="sampleSubtitles_en.vtt" srclang="en">
   <track kind="subtitles" src="sampleSubtitles_ja.vtt" srclang="ja">
   <track kind="subtitles" src="sampleSubtitles_oz.vtt" srclang="oz">
   <track kind="metadata" src="keyStage1.vtt" srclang="en"
     label="Key Stage 1">
   <track kind="metadata" src="keyStage2.vtt" srclang="en"
     label="Key Stage 2">
   <track kind="metadata" src="keyStage3.vtt" srclang="en"
     label="Key Stage 3">
   <!-- Fallback -->
   ...
</video>

Спецификации

Specification Status Comment
HTML Living Standard
Определение 'track element' в этой спецификации.
Живой стандарт
HTML5
Определение 'track element' в этой спецификации.
Рекомендация Initial definition

Поддержка браузерами

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
trackChrome Полная поддержка 23Edge Полная поддержка 12Firefox Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 6WebView Android Полная поддержка Да
Замечания
Полная поддержка Да
Замечания
Замечания Doesn't work for fullscreen video.
Chrome Android Полная поддержка 25
Замечания
Полная поддержка 25
Замечания
Замечания Doesn't work for fullscreen video.
Firefox Android Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android ? Safari iOS Полная поддержка 6Samsung Internet Android Полная поддержка 1.5
Замечания
Полная поддержка 1.5
Замечания
Замечания Doesn't work for fullscreen video.
defaultChrome Полная поддержка 23Edge Полная поддержка 12Firefox Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 6WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android ? Safari iOS ? Samsung Internet Android Полная поддержка 1.5
kindChrome Полная поддержка 23Edge Полная поддержка 12Firefox Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 6WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android ? Safari iOS ? Samsung Internet Android Полная поддержка 1.5
labelChrome Полная поддержка 23Edge Полная поддержка 12Firefox Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 6WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android ? Safari iOS ? Samsung Internet Android Полная поддержка 1.5
srcChrome Полная поддержка 23Edge Полная поддержка 12Firefox Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 6WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android ? Safari iOS ? Samsung Internet Android Полная поддержка 1.5
srclangChrome Полная поддержка 23Edge Полная поддержка 12Firefox Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Полная поддержка 10Opera Полная поддержка 12.1Safari Полная поддержка 6WebView Android Полная поддержка 4.4Chrome Android Полная поддержка 25Firefox Android Полная поддержка 31
Полная поддержка 31
Нет поддержки 24 — 50
Отключено
Отключено From version 24 until version 50 (exclusive): this feature is behind the media.webvtt.enabled preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android ? Safari iOS ? Samsung Internet Android Полная поддержка 1.5

Легенда

Полная поддержка  
Полная поддержка
Совместимость неизвестна  
Совместимость неизвестна
Смотрите замечания реализации.
Смотрите замечания реализации.
Пользователь должен сам включить эту возможность.
Пользователь должен сам включить эту возможность.

Смотри также