繁体   English   中英

动态更改字幕视频 - HTML5

[英]Change subtitle dynamically video - HTML5

我正在尝试使用以下代码行动态更改字幕轨道。但它不会更改字幕。为什么?

 $('#turnoff').click(function(){ $('.player-content-video track').attr('default',false); }); $('#english').click(function(){ $('.player-content-video track').attr('default',false); $('.player-content-video track').eq(0).attr('default',false); }); $('#chinese').click(function(){ $('.player-content-video track').eq(1).attr('default',false); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <video class="player-content-video"> <track src="sample_video-en.vtt" srclang="en" kind="subtitles" default="true"> <track src="sample_video-ch.vtt" default="false" srclang="ch" kind="subtitles"> <source src="http://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4"> </video> <br/> <button id="turnoff" >NO SUBTITLE</button> <button id="english" >ENGLISH</button> <button id="chinese" >CHINESE</button> 

注意:此示例中的track src仅用于代码演示。

如果您需要更改track标记的default属性,可以使用以下脚本:

工作示例,请检查DOM以查看结果(因为视频和轨道src不存在):

https://jsfiddle.net/3hh9kvgd/

您可以通过以下方式使用jQuery :eq() Selector 更多信息可以在这里找到。

$('.player-content-video track:eq(0)')

顺便使用:eq()使你的代码依赖于你在DOM中的<track>位置,并且当用户点击按钮时需要横向所有DOM,这在术语可维护性和性能方面不是很好的方法。

您可以使用id引用<track> ,并在使用jQuery时缓存DOM选择。


    $('#turnoff').click(function(){
       $('.player-content-video track').attr('default',false);
    });

    $('#english').click(function(){
       $('.player-content-video track').attr('default',false);
       $('.player-content-video track:eq(0)').attr('default',true);
    });

    $('#chinese').click(function(){
       $('.player-content-video track').attr('default',false);
       $('.player-content-video track:eq(1)').attr('default',true);
    });

<video class="player-content-video">
  <track src="sample_video-en.vtt" srclang="en" kind="subtitles" default="true">
  <track src="sample_video-ch.vtt" default="false" srclang="ch" kind="subtitles">
  <source src="myvideo.mp4" type="video/mp4">
</video>
<br/>
<button id="turnoff" >NO SUBTITLE</button>
<button id="english" >ENGLISH</button>
<button id="chinese" >CHINESE</button>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM