Подпись к видео
Базовая поддержка Широко распространена *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Интерфейс TextTrack API WebVTT представляет собой подпись к элементу мультимедиа.
Объект этого типа владеет списком объектов VTTCue, которые будут отображаться над видео в различные моменты времени.
Объекты TextTrack могут быть добавлены к элементу HTMLVideoElement или HTMLAudioElement с помощью метода HTMLMediaElement.addTextTrack(), что эквивалентно добавлению подписей декларативно с помощью элементов <track> внутри элементов <video> или <audio>. Объекты TextTrack хранятся в списке TextTrackList, который можно получить с помощью свойства HTMLMediaElement.textTracks.
Свойства экземпляра
Этот интерфейс также наследует свойства от EventTarget.
-
TextTrack.activeCuesТолько для чтения -
Объект
TextTrackCueList, содержащий список активных подписей. Подписи активны, если текущая позиция воспроизведения медиа находится между начальным и конечным временем подписи. Таким образом, для отображаемых подписей, таких как субтитры или титры, активные подписи отображаются в данный момент. -
TextTrack.cuesТолько для чтения -
Список
TextTrackCueListсодержащий все подписи к треку. -
TextTrack.idТолько для чтения -
Строка, идентифицирующая подпись, если она есть. Если идентификатор отсутствует, то это пустая строка (
""). Если подпись связана с элементом<track>, то идентификатор подписи совпадает с идентификатором элемента. -
TextTrack.inBandMetadataTrackDispatchTypeТолько для чтения -
Возвращает строку, указывающую тип диспетчеризации данных внутри подписи.
-
TextTrack.kindТолько для чтения -
Возвращает строку, обозначающую тип подписи, которую описывает
TextTrack. Она должна соответствовать одному из разрешенных значений. -
TextTrack.labelТолько для чтения -
Строка, понятная пользователю, которая содержит метку подписи, если она есть; в противном случае это пустая строка (
""), в этом случае может потребоваться сгенерировать пользовательскую метку кодом, используя другие атрибуты подписи, если метка подписи должна быть показана пользователю. -
TextTrack.languageТолько для чтения -
Строка, которая определяет язык текста, на котором написан контент подписи. Значение должно соответствовать формату, указанному в RFC 5646: Метки для идентификации языков (также известные как BCP 47), так же как и атрибут HTML
lang. Например, это может быть"en-US"для английского языка США или"pt-BR"для бразильского португальского. TextTrack.mode-
Строка, определяющая текущий режим подписи, которая должна соответствовать одному из допустимых значений. Изменение этого свойства изменяет текущий режим подписи в соответствии с ним. По умолчанию это
disabled, если атрибут boolean элемента<track>defaultне установлен вtrue— в этом случае режим по умолчаниюshowing. -
sourceBufferТолько для чтения -
Буфер
SourceBuffer, который создал подпись. Возвращает null, если подпись не была создана буферомSourceBufferили буферSourceBufferбыл удалён из атрибутаMediaSource.sourceBuffersего родительского источника медиа.
Методы экземпляра
Этот интерфейс также наследует методы от EventTarget.
Примечание: Интерфейс TextTrackCue является абстрактным классом, используемым в качестве родителя для других интерфейсов подписей, таких как VTTCue. Следовательно, при добавлении или удалении подписи вы передаете один из типов подписи, унаследованных от TextTrackCue.
TextTrack.addCue()-
Добавляет подпись (указанную как объект
TextTrackCue) в список подписей трека. TextTrack.removeCue()-
Удаляет подпись (указанную как объект
TextTrackCue) из списка подписей трека.
События
cuechange-
Срабатывает при входе и выходе подписей. Определенная подпись появляется при входе и исчезает при выходе. Также доступно через свойство
oncuechange.
Пример
В следующем примере добавляется новая подпись к видео, а затем устанавливается её отображение с помощью TextTrack.mode.
let video = document.querySelector("video");
let track = video.addTextTrack("captions", "Captions", "en");
track.mode = "showing";
Спецификации
| Спецификация |
|---|
| HTML # texttrack |
Совместимость с браузерами
| Рабочий стол | Мобильный телефон | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
TextTrack |
23 | 12 | 31В версиях Firefox до Firefox 50 субтитры не отображались при воспроизведении медиа без одной или нескольких дорожек видео. |
≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
activeCues |
23 | 12 | 31Начиная с Firefox 69, субтитры больше не загружаются неправильно, когдаTextTrack mode disabled; в этом случае возвращаемый список пуст. |
≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
addCue |
23 | 12 | 31 | ≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
cuechange_event |
23 | 12 | 31 | ≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
cues |
23 | 12 | 31Начиная с Firefox 69, субтитры больше не загружаются неправильно, когдаTextTrack mode disabled; в этом случае возвращаемый список пуст. |
≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
id |
33 | 18 | 31 | 20 | 8 | 33 | 31 | 20 | 8 | 2.0 | 4.4.3 |
inBandMetadataTrackDispatchType |
Нет | 12–79 | 31 | Нет | 8 | Нет | 31 | Нет | 8 | Нет | Нет |
kind |
23 | 12 | 31 | ≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
label |
23 | 12 | 31 | ≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
language |
23 | 12 | 31 | ≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
mode |
23 | 12 | 31До Firefox 52, использование JavaScript для изменения режима текстовой дорожки, являющейся частью элемента медиа, отправляло одно событие изменения в TextTrackList элемента textTracks для каждого изменения, даже если несколько изменений выполняются за один проход по циклу событий Firefox. Начиная с Firefox 52, эти изменения отражаются одним событием. |
≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
removeCue |
23 | 12 | 31 | ≤12.1 | 6 | 25 | 31 | ≤12.1 | 7 | 1.5 | 4.4 |
sourceBuffer |
Нет | Нет | Нет | Нет | 8 | Нет | Нет | Нет | 13Доступно в Mobile Safari на iPad, но не на iPhone. |
Нет | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/TextTrack