Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态更改字幕视频-HTML5_Javascript_Jquery_Html_Video - Fatal编程技术网

Javascript 动态更改字幕视频-HTML5

Javascript 动态更改字幕视频-HTML5,javascript,jquery,html,video,Javascript,Jquery,Html,Video,我正在尝试使用以下代码行动态更改按钮单击时的字幕轨迹。但它没有更改字幕。为什么 $(“#关闭”)。单击(函数(){ $('.player content video track').attr('default',false); }); $(“#英语”)。单击(函数(){ $('.player content video track').attr('default',false); $('.player content video track').eq(0).attr('default',fal

我正在尝试使用以下代码行动态更改按钮单击时的字幕轨迹。但它没有更改字幕。为什么

$(“#关闭”)。单击(函数(){
$('.player content video track').attr('default',false);
});
$(“#英语”)。单击(函数(){
$('.player content video track').attr('default',false);
$('.player content video track').eq(0).attr('default',false);
});
$(“#中文”)。单击(函数(){
$('.player content video track').eq(1).attr('default',false);
});


没有字幕 英语
中文
如果需要更改
曲目
标记上的
默认
属性,可以使用以下脚本:

例如,请检查DOM以查看结果(因为视频和曲目src不存在):

可以按以下方式使用jQuery
:eq()选择器

$('.player内容视频曲目:eq(0))

顺便说一下,使用
:eq()
使您的代码依赖于您在DOM中的
位置,并且当用户单击一个按钮时,需要使用所有DOM,这在可维护性和性能方面不是很好的方法

相反,您可以在使用jQuery时通过id引用
,并缓存您的DOM选择





没有字幕 英语 中国人
检查有关此主题的MDN文章您需要更改
视频中项目的
模式。textTracks
数组属性注意,stacksnippets处
track
元素的源路径不完整trach src仅用于demonstration@ShijinTR你可以再详细一点吗?我的答案中的代码根据用户选择的曲目更改DOM是否添加默认标记。请创建一个完整的小提琴与您的真实曲目,以便我们可以调试您的问题正确。DOM正在更改,但在视频上的曲目没有updateing@ShijinTR感谢您的报道,您的曲目有什么问题吗?您能提供一个真实的例子吗?如果我们不能访问您的曲目,那么调试您的代码是很困难的。顺便说一下,如果你认为我的答案甚至部分地帮助了你的问题,请考虑投票或接受它:)但是我的问题是改变轨道而不是用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>