Я хотел бы получить реплики из файла глав, загруженного в мой объект Video.js. Я уже нашел, как получить трек, но мне нужен его id
, чтобы получить к нему доступ.Получение реплик с треков глав VTT с Video.js
player.textTracks().getTrackById(<trackID>);
Я узнал, где id
определяется в Video.js 5.14.0 библиотеки:
// video.js/dist/video.js (line 19195)
var trackProps = {
id: options.id || 'vjs_track_' + Guid.newGUID(),
kind: options.kind || '',
label: options.label || '',
language: options.language || ''
};
кажется, что вы можете определить свой собственный id
, передавая объект функции:
// video.js/dist/video.js (line 19178)
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
я загружаю главу трек следующим образом:
<track kind="chapters" src="chapters.vtt" srclang="en" default>
Я читал, что вы можете динамически добавлять файлы треков, но вам придется перезагрузить объект Video.js.
Спасибо за ваш ответ. Объект 'textTracks' не возвращает элемент трека, хотя я могу видеть свой трек в его атрибуте' tracks_' с консоли при использовании 'console.log (vvplayer.textTracks());'. Этот атрибут теперь может быть закрытым. –
Просто протестирован с video.js 5.14.0 и 5.14.1. Этот метод работает для меня, но похоже, что текстовые треки не всегда готовы, когда вызывается обратный вызов video.js, поэтому мне пришлось обернуть код в прослушиватель для события 'loadedmetadata', что заставило его работать надежно для меня, по крайней мере. Обновленный ответ с этим. – Hyddan
Большое спасибо за ваши тесты и ваши качественные ответы, мне жаль, что у меня не было отладочного инструмента, предоставляющего информацию об асинхронных вызовах. –