12

我有两个问题。一旦我将轨道标签放在我的视频元素中,视频的默认控制器就会显示出来。我有自定义控件,所以这是个很大的问题。

第二。我找不到关闭字幕的方法。

HTML:

<video id="trailers" poster="images/poster/poster.jpg">
                <source src="media/vLast.mp4" type="video/mp4">
                <source src="media/vLast.webm" type="video/webm">
                <track id="mytrack" label="English Subtitles" src="subtitles.vtt" srclang="en" default />
 </video> 

 <button id="cc">CC</button>

JS:

  var cc = document.getElementById('cc');
function cc(){
       var video= document.getElementById('media');
       var track1 = video.textTracks[0];
       var mytrack = document.getElementById('mytrack');
       var track2 = mytrack.track;
       console.log(track1);
       console.log(track2);
    }
    cc.addEventListener('click',cc,false);
4

2 回答 2

16

controls如果您在标签中删除任何<video>应保持控件隐藏的引用(它们可能会在首次加载时闪烁,但一旦加载视频,它们将保持隐藏状态)该controls项目是布尔值:如果它存在,那么它们将显示,如果它不'然后他们不会。

要显示和隐藏字幕,您需要将其设置mode为“显示”或“隐藏”,如下所示

<video autoplay loop id="v">
    <source src="Video.mp4" type="video/mp4">
    <track id="enTrack" src="entrack.vtt" label="English" kind="subtitles" srclang="en" default> 
    HTML5 video not supported
</video>
.
.
.  
<script>
.
v = document.getElementById("v")
v.textTracks[0].mode = "hidden";  // "showing" will make them reappear
    // if you want to show the controls
v.controls = true;
.
</script>

请注意,YMMV 作为不同的浏览器在字幕方面有不同的行为。这适用于 OSX 和 IE10 上的 Chrome/Safari(尽管在 Safari 和 IE 上注意模式的值是“0”表示隐藏,“2”表示显示,但使用文本设置它们似乎有效。尚未在 iOS 上测试

于 2013-02-17T03:28:26.603 回答
0

要完全禁用控件显示(对于 webkit 浏览器 - chrome、safari 等),您还可以添加以下 css 以避免原始控件的“闪烁”效果。

::-webkit-media-controls {
  display:none !important;
}
video::-webkit-media-controls {
  display:none !important;
}
video::-webkit-media-controls-enclosure {
  display:none !important;
}
于 2018-11-22T20:34:40.037 回答