2

我正在尝试构建一个视频库之类的东西,您可以通过单击其缩略图来选择要显示的视频。现在我正处于为所选视频加载适当字幕的阶段。感谢谷歌,我知道 videojs 有一种方法可以帮助我,称为 addTextTrack() 但不幸的是,它没有一个好的示例或文档。毕竟我试图通过阅读 video.dev.js 代码来找到它的参数和行为。但据我了解,这种方法只有三个参数(种类、标签、语言),我不明白的是:如何设置 src 以加载字幕文件。我认为这是一个错误,它不能正常工作,如果你同意我的观点,我想报告它。

下面的代码给播放器添加了cc图标但是没有显示字幕(我没有告诉他要加载的URL怎么能显示)

var myPlayer = videojs('video-id');
myPlayer.addTextTrack('captions', 'En', 'English');

我检查了 videojs 5.0.0 addTextTrack 方法,没有任何重大变化。

4

2 回答 2

4

大约一个月没有回答我的问题后,我还不知道为什么 addTextTrack() 不能正常工作。但是感谢上帝,我找到了实现目标的方法:

动态更改所有文本轨道

var oldTracks = player.remoteTextTracks();
var i = oldTracks.length;
while (i--) {
  player.removeRemoteTextTrack(oldTracks[i]);
}
myNewTracks.forEach(function(track) {
  player.addRemoteTextTrack(track);
});
于 2015-11-07T13:39:19.043 回答
1

文本轨道从未动态更新,经过长时间的搜索,我找到了解决问题的方法。当我更改视频源时,我替换了文本轨道并将其设置为 mode="showing":

let player = videojs('first-player');
player.addRemoteTextTrack({
            kind: 'captions',
            src: 'my-track-path.vtt',
            mode: 'showing'
}, false);
于 2021-07-20T14:33:36.580 回答