【发布时间】:2018-06-03 20:28:04
【问题描述】:
我的页面包含多个带有不同标题的 HTML5 视频 (webvtt)。视频控件被隐藏。我有一个 ID 为 #check 的按钮«添加字幕»。如果用户选中此按钮,所有视频都应显示字幕,如果未选中,字幕应隐藏。到目前为止我所拥有的:
默认隐藏字幕:
var video = document.querySelector('.video');
var tracks = video.textTracks;
var track = tracks[0];
$(document).ready(function() {
track.mode = 'hidden';
});
如果按钮被选中/取消选中,显示/隐藏标题:
$(function() {
$('#check').click(function() {
if($(this).is(':checked')) {
track.mode = 'showing';
} else {
track.mode = 'hidden';
}
});
});
这非常有效,但仅适用于第一个视频(因为轨道 [0] 仅提供第一个轨道的值)。有什么办法可以解决这个问题,还是我走错了路?
【问题讨论】:
-
您应该使用 querySelectorAll 并循环播放所有视频。另外,如果您已经在使用 jQuery,为什么还要使用 querySelector?
-
谢谢!不幸的是,querySelectorAll 返回 TypeError “tracks is undefined”。
标签: jquery captions closed-captions webvtt vtt