Javascript 动态更改视频字幕语言

Javascript 动态更改视频字幕语言,javascript,jquery,video,Javascript,Jquery,Video,我想以友好的方式更改视频字幕语言。 下面的代码根本不起作用 <video class='vtop' controls><source src='video/lorem.mp4' type='video/mp4'> <track src="sub/enlorem.vtt" kind="subtitles" srclang="en" label="EN"> <track src="sub/yulorem.vtt" kind="subtitles" srcla

我想以友好的方式更改视频字幕语言。
下面的代码根本不起作用

<video class='vtop' controls><source src='video/lorem.mp4' type='video/mp4'>
<track src="sub/enlorem.vtt" kind="subtitles" srclang="en" label="EN">
<track src="sub/yulorem.vtt" kind="subtitles" srclang="sr" label="YU" default>
</video>

<div class='vbtn' id='ensubs'>EN</div>
<div class='vbtn' id='yusubs'>YU</div>
加载后,您的
元素将处理它播放的曲目,而不会回顾
元素。因此,如果要更改活动轨迹,请从其属性进行更改:

document.queryselectoral(“按钮”).forEach(el=>el.onclick=switchVTT);
功能开关VTT(e){
const required=e.target.dataset[“lang”];
const video=document.getElementById(“视频”);
const tracks=[…video.textTracks];
const active=tracks.find(track=>track.mode==“显示”);
如果(活动){
如果(active.language==必需){//已处于活动状态
返回;
}
active.mode=“disabled”;//禁用上一个活动的
}   
const targeted=tracks.find(track=>track.language==required);
如果(有针对性){
targeted.mode=“显示”;
}
};
//只是为了让VTT可以在代码段中访问
document.querySelector(“track[srclang='en']”).src=maketestvttur(35,“一些文本”);
document.querySelector(“track[srclang='kl']”)。src=maketestvttur(35,“'op bIngDaq ghItlh leghlu'”);
函数makeTestVTTUrl(持续时间,text=”“){
设vttext=`WEBVTT`;
对于(设i=0;i 00:00:${t2}.000
测试${i}${text}`
}
const vttBlob=新Blob([vttext]{
键入:“文本/普通”
});
返回URL.createObjectURL(vttBlob);
}
video{最大高度:计算(100vh-50px);}
::提示{字体大小:20px}
英语
克林贡
一旦加载,您的
元素将处理它播放的曲目,而不会回头查看
元素。因此,如果您希望更改活动曲目,请从其属性执行此操作:

document.queryselectoral(“按钮”).forEach(el=>el.onclick=switchVTT);
功能开关VTT(e){
const required=e.target.dataset[“lang”];
const video=document.getElementById(“视频”);
const tracks=[…video.textTracks];
const active=tracks.find(track=>track.mode==“显示”);
如果(活动){
如果(active.language==必需){//已处于活动状态
返回;
}
active.mode=“disabled”;//禁用上一个活动的
}   
const targeted=tracks.find(track=>track.language==required);
如果(有针对性){
targeted.mode=“显示”;
}
};
//只是为了让VTT可以在代码段中访问
document.querySelector(“track[srclang='en']”).src=maketestvttur(35,“一些文本”);
document.querySelector(“track[srclang='kl']”)。src=maketestvttur(35,“'op bIngDaq ghItlh leghlu'”);
函数makeTestVTTUrl(持续时间,text=”“){
设vttext=`WEBVTT`;
对于(设i=0;i 00:00:${t2}.000
测试${i}${text}`
}
const vttBlob=新Blob([vttext]{
键入:“文本/普通”
});
返回URL.createObjectURL(vttBlob);
}
video{最大高度:计算(100vh-50px);}
::提示{字体大小:20px}
英语
克林贡
$('#ensubs').on('click', function(){
    $('.vtop track').attr('default',false);
    $('.vtop track').eq(0).attr('default',true);
});

$('#yusubs').on('click', function(){
    $('.vtop track').attr('default',false);
    $('.vtop track').eq(1).attr('default',true);
});