Добавление Google Chrome javascript не добавляет все узлы
Здравствуйте, у меня есть простой код Javascript для добавления транскрипции видео в div, используя Video.js
а также videojs-transcript
. Он отлично работает в Firefox, но в Google Chrome, когда транскрипция слишком длинная, добавляется меньше половины. Также, когда я обновляюсь, он останавливается каждый раз в другом узле.
Простой тестовый код для выявления ошибки:
<head>
<script src="https://vjs.zencdn.net/4.12/video.js"></script>
<script src="https://walsh9.github.io/videojs-transcript/dist/videojs-transcript.js"></script>
</head>
<body>
<video id="video" crossorigin="anonymous">
<source src="https://pvclouddev.blob.core.windows.net/filescontainer/15TestLarge_1587760757304.mp4" type="video/mp4">
<track kind="captions" src="https://pvclouddev.blob.core.windows.net/filescontainer/790d31e9-d38d-48f4-87d5-9e9959acc39a.vtt" srclang="en" label="English" default>
</video>
<div id="transcript"></div>
<script>
var video = videojs('video').ready(function(){
// Set up any options.
var options = {
showTitle: false,
showTrackSelector: false,
};
// Initialize the plugin.
var transcript = this.transcript(options);
// Then attach the widget to the page.
var transcriptContainer = document.querySelector('#transcript');
transcriptContainer.appendChild(transcript.el());
});
</script>
</body>
Изменить: в videojs-transcript
файл, когда я пытаюсь alert(cues.length)
в createTranscriptBody
функции он показывает намного меньше, чем то, что я получил в Firefox.
Изменить 2: я обнаружил, что проблема в методе createTranscriptBody
в videojs-transcript.js
. Он начинает добавлять реплики в div до полной загрузки файла vtt. Есть ли способ заставить его ждать полной загрузки vtt без использования тайм-аута?
1 ответ
Исправлено изменением версии videoJs с 4.12 на 7.6.6, и это ссылка js:https://vjs.zencdn.net/4.12/video.js