javascript - 如何更改 html5 视频元素的默认轨道?

标签 javascript jquery html5-video

我的页面包含这个 <video>带有多个副标题的标签 <track>秒。我想通过使用 jquery 单击相应的国旗来动态启用轨道:

  <div id="lang">
    <img src="mini/ita.png" class="it" alt="Italiano" title="Italiano" />
    <img src="mini/eng.png" class="en" alt="English"  title="English"  />        
  </div>


<video controls="controls" >

  <source src="webcast.webm" />
  <source src="webcast.mp4"  />
  <source src="webcast.ogv"  />

  <track kind="subtitles" src="./sub-en.vtt" srclang="en" />
  <track kind="subtitles" src="./sub-it.vtt" srclang="it" />

</video>

<script>
$('#lang img').click(function(){
    language=$(this).attr('class');

    $('video track').removeAttr('default');
    $('video track[srclang='+language+']').attr('default','default');
});
</script>

“默认”属性已正确插入,但没有显示字幕。手动插入默认属性效果很好(在 chrome 和 opera 上)。

最佳答案

<script>
$('#lang img').click(function(){
    var language=$(this).attr('class');

    $($('video').prop('textTracks')).prop('mode', function(){
        return this.language == language ? 'showing' : 'disabled';
    });
});
</script>

关于javascript - 如何更改 html5 视频元素的默认轨道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13494971/

相关文章:

javascript - 为 Canvas 形状创建鼠标事件处理程序

jquery - 如何在最大宽度点给出断线?

google-chrome - 为什么 html5 视频循环每次迭代都会创建请求

android - 在浏览器跨设备中播放视频

javascript - 允许在加盖自定义动态图章后编辑表单字段

javascript - 检查 CSV 文件内容并将其拆分为 2 个单独的文件

javascript - 使用 jQuery 比较 <select> 元素中的每个 <option>

JavaScript:onMouseOver 事件无法与其他事件一起正常工作

html - 谷歌浏览器 <video> 问题

javascript - 调试 HTML 时,有没有办法使用 JavaScript 或 jQuery 监听 div 宽度变化?