如何在视频开始播放视频时不显示字幕?

时间:2015-03-17 18:53:00

标签: javascript jquery video.js

我将Video.js用于自定义视频播放器,默认情况下,它会在视频开始播放时显示字幕。如何在启动/自动播放时禁用隐藏式字幕?

var myPlayer = _V_("myPlayer");
var videoPlaying = true;

// video captions button
var myCaption = myPlayer.controlBar.addChild("button");

// Styling to empty button
$(".vjs-control-text").empty();

// Add class to captions
myCaption.addClass("vjs-captions-icon");
myCaption.addClass("vjs-captions-icon-on");

// Adding functionality to captions button
$(".vjs-captions-icon").on('touchstart', function() {
  $('div.vjs-captions.vjs-text-track').toggle();
  $('.vjs-control-bar .vjs-captions-icon').toggleClass('vjs-captions-icon-on').toggleClass('vjs-captions-icon-off');
});
.vjs-captions-icon-on {
  background: url(../img/caption_button.png);
  background-size: 100% 100%;
}
.vjs-captions-icon-off {
  background: url(../img/caption_button_off.png);
  background-size: 100% 100%;
}
<video id="myPlayer" class="video-js vjs-sublime-skin" width="1024px" height="768px" controls autoplay preload data-setup='{"nativeControlsForTouch": false}'>
  <source src="../video/brandt.mp4" type='video/mp4' />
  <track class="caption" kind="captions" src="../video/brandt.vtt" type="text/plain" srclang="en" label="English" default/>
</video>

2 个答案:

答案 0 :(得分:2)

分享来自gkatsev的答案,回答https://github.com/videojs/video.js/issues/2124

从那里引用。

  

显示 - 文本轨道可见并更新和触发事件
  禁用 - 轨道轨迹不可见且未触发事件
  隐藏 - 轨道轨迹不可见,但它正在发射事件。

     

因此,要隐藏曲目,您可以执行以下操作:

player.textTracks()[0].mode = 'disabled';

答案 1 :(得分:0)

我知道这很老了-但是我正在研究这个问题,并使用可接受的答案制定了一个脚本,直到意识到:

<track>标签中,只需删除其末尾的默认标签即可。

例如代替

<track class="caption" kind="captions" src="../video/brandt.vtt" type="text/plain" srclang="en" label="English" default/>    

<track class="caption" kind="captions" src="../video/brandt.vtt" type="text/plain" srclang="en" label="English"/>    
相关问题